Compare commits

..
Author SHA1 Message Date
Carmelo Messina 2ba2115028 Rebase to 144.0.7559.97 2026-01-25 10:24:53 +01:00
uazo e5fa7d55df [AUTO][FILECONTROL] - version 144.0.7559.97 (#2651)
[AUTO][FILECONTROL] - version 144.0.7559.97
2026-01-24 17:34:54 +00:00
uazo 22d97d6bd0 [AUTO][DOC] Generate patches doc for master branch (#2672)
[AUTO][DOC] Generate patches doc for master branch
2026-01-24 17:34:15 +00:00
Carmelo Messina 4f2dcb8c1f Bump to 144.0.7559.97 2026-01-24 18:33:12 +01:00
uazo c4503f35da [AUTO][DOC] Generate patches doc for master branch 2026-01-24 17:32:39 +00:00
Carmelo Messina 547f5f900f [TOOLS] removed gn arg enable_ppapi no longer active 2026-01-24 18:31:38 +01:00
Carmelo Messina c7216dbf62 Disable minikin hyphenation: disable minikin engine (#697) - moved from gn.args to patch 2026-01-24 18:30:47 +01:00
Carmelo Messina a449898e86 Backport Fix CtrlW to close current tab: backport 7435408 - Fix Ctrl+W to close current tab when tab highlighting is disabled (#2628) commit https://chromium-review.googlesource.com/c/chromium/src/+/7435408 2026-01-24 18:28:22 +01:00
Carmelo Messina 6d334c8b39 Immediately destroy shared workers when closing the page: Chromium is planning to keep shared workers active even after the page is closed,
up to a timeout, to compensate for the permanent deactivation of the unload event.
This feature is used to send pings from the page.
Cromite already does not allow any information to be sent via the network to the unload event.
2026-01-24 18:26:38 +01:00
Carmelo Messina 34ce904d75 Restore Simplified NTP launch: fix crash with pinned items (#2653) 2026-01-24 18:21:36 +01:00
Carmelo Messina 644698ea2f Modify default preferences: disable kHttpsFirstDialogUi by default (#2654) 2026-01-24 18:20:30 +01:00
Carmelo Messina 6a62f6c5bc Keyboard protection flag: removes the hiding of the Alt key press (#2603) 2026-01-24 18:19:46 +01:00
Carmelo Messina fac0478f88 High Resolution Timing Mitigation: enable by default (#1966) 2026-01-24 18:18:23 +01:00
Carmelo Messina a975b69283 Experimental support for extensions on Android: remove unwanted link hover status bar (#2660), fix the flickering of the extensions button (#2657), fix crash when loading an unpacked extension (#2579) 2026-01-24 18:17:48 +01:00
Carmelo Messina db10f20ff4 Enable ImprovedBookmarks by default: always open bookmark page in the same tab (#2608) 2026-01-24 18:13:47 +01:00
Carmelo Messina 870bc31b7f Enable ClientHello Segmentation: enable feature by default (#2403) and reduce timeout to 2 seconds 2026-01-24 18:12:36 +01:00
Carmelo Messina 4aa9ca084d Enable Android Dynamic Performance Framework: fix build errors in Android 32 bit 2026-01-24 18:11:36 +01:00
Carmelo Messina 84d5f71b1a Cromite Branding: fix year in about settings, fix unwanted browser closures when closing the bookmarks page with the back gesture (#1606 #2576), fix policy file reading from /etc/chromium/policies to /etc/cromite/policies (#2169) 2026-01-24 18:10:58 +01:00
Carmelo Messina a27512888d Android fonts fingerprinting mitigation: fix rendering of emojii icons (#2655) 2026-01-24 18:05:52 +01:00
Carmelo Messina 02f8c36abe Allow building without supervised users: disable another function 2026-01-24 18:05:01 +01:00
Carmelo Messina a086bfc8bf Add an always-incognito mode: fix crash in history page (#2662) 2026-01-24 18:03:59 +01:00
Carmelo Messina 7287383fb1 Add a proxy configuration page: enable support to multiple proxy chain (https://github.com/uazo/cromite/issues/2594#issuecomment-3791605530) 2026-01-24 18:02:21 +01:00
uazo 75027203d5 [AUTO][FILECONTROL] - version 144.0.7559.97 2026-01-21 03:44:49 +00:00
uazo 4e72b80bf8 [AUTO][DOC] Generate patches doc for master branch (#2650)
[AUTO][DOC] Generate patches doc for master branch
2026-01-20 15:29:09 +00:00
uazo 0d33718df5 [AUTO][FILECONTROL] - version 144.0.7559.76 (#2635)
[AUTO][FILECONTROL] - version 144.0.7559.76
2026-01-20 15:28:23 +00:00
uazo 7843b67b48 [AUTO][DOC] Generate patches doc for master branch 2026-01-20 15:27:53 +00:00
uazo d102353b1b Rebase to v144 (#2639)
Rebase to v144
2026-01-20 15:27:33 +00:00
uazo 65ef4d754b [TOOLS] Add error handling to gn args commands 2026-01-19 15:24:01 +00:00
uazo 4a5ca46798 Modify gn gen commands to ignore errors
Added '|| true' to gn gen commands to prevent failures.
2026-01-19 15:14:38 +00:00
uazo 054d093802 [AUTO] Patches auto-rebase for next-144 branch (#2646)
[AUTO] Patches auto-rebase for next-144 branch
2026-01-19 13:45:12 +00:00
uazo 6cb4f95cb0 [AUTO] Patches auto-rebase 2026-01-19 13:26:00 +00:00
Carmelo Messina 90c3c80a4e Bump to 144.0.7559.76 2026-01-19 14:22:12 +01:00
Carmelo Messina e77ef4cb3a Disable CpuPerformance api and DBSC 2026-01-19 14:16:28 +01:00
Carmelo Messina 245b33a600 Set the screen frame rate to 60 Hz: fix blink freeze with viewtransitions (#2582) 2026-01-19 14:10:42 +01:00
Carmelo Messina 5f09697d4c Patches for v144 2026-01-19 14:09:28 +01:00
Carmelo Messina c82c4d77cf Bump to 144.0.7559.59 2026-01-15 13:00:07 +01:00
Carmelo Messina 0f2a45495e Patches for 144 (need some checks) 2026-01-15 12:59:32 +01:00
Carmelo Messina 558348760f Drop patch in 144 2026-01-15 12:59:11 +01:00
Carmelo Messina cb29ab20ad Patches for v144 2026-01-15 12:58:05 +01:00
uazo e447987993 [AUTO][FILECONTROL] - version 144.0.7559.76 2026-01-15 03:43:09 +00:00
Carmelo Messina c713b95df6 Rebase to 143.0.7499.147 2026-01-12 13:59:01 +01:00
Carmelo Messina 3010fc430e Bump to 143.0.7499.147 2025-12-17 16:36:49 +01:00
Carmelo Messina 90f190c76c [TOOLS] Update runner to 2.329.0 2025-12-17 11:32:24 +01:00
Carmelo Messina 8e844cf64f [TOOLS] Fix missing dependency at build time 2025-12-12 08:34:51 +01:00
uazo 197769948d [AUTO][FILECONTROL] - version 143.0.7499.110 (#2568)
[AUTO][FILECONTROL] - version 143.0.7499.110
2025-12-11 16:38:35 +00:00
uazo 5bb45c09fe [AUTO][DOC] Generate patches doc for master branch (#2573)
[AUTO][DOC] Generate patches doc for master branch
2025-12-11 16:38:13 +00:00
uazo 9c055b9658 [AUTO][DOC] Generate patches doc for master branch 2025-12-11 16:36:29 +00:00
Carmelo Messina b679afd33e Rebase to 143.0.7499.110 2025-12-11 17:35:40 +01:00
Carmelo Messina c65ef30a0c Bump to 143.0.7499.110 2025-12-11 14:49:54 +01:00
Carmelo Messina 43bed8c2c3 Supporting Dangling Ptr Detection via BackupRefPtr (disabled by default)
Enable Dangling Ptr Detection (DPD) via BackupRefPtr (BRP) (disabled by default)
and additional safety checks that are too expensive to have on by default.
Enable checking raw_ptr do not become dangling during their lifetime.
Write a fixed cookie pattern at the end of each allocation to ensure there is no OOB write.

Enable MTE in Android for enabled devices (flag disabled by default) (#2444)

BRP and MTE activate additional checks related to memory usage at the expense of
performance and increased memory usage, but guarantee the user that the browser
will not suffer from development errors related to memory management.
2025-12-11 14:49:27 +01:00
Carmelo Messina ff33bbeb52 Enable extensions in android: allow use with always incognito (#2519 #2511) and fix dangling raw_ptr on destruction 2025-12-11 14:40:17 +01:00
Carmelo Messina 224c227ee0 Restore Simplified NTP launch: fix dangling raw_ptr on destruction 2025-12-11 14:37:06 +01:00
Carmelo Messina d2dd0ffb31 Restore chrome password store: display the keyboard accessory only if a password is registered (#2368) 2025-12-11 14:35:57 +01:00
Carmelo Messina f1114a452e Move navigation bar to bottom: adjust the keyboard size on devices with 3-button navigation (#2543) 2025-12-11 14:34:39 +01:00
Carmelo Messina 6605e1bf7e Improve the browser sandbox: checks at each restart whether the network process sandbox can be activated instead of each major (#2544) 2025-12-11 14:33:33 +01:00
Carmelo Messina c11c063b9e Experimental user scripts support: adjusts the initial sending phase of the script list to the rendering process (#2550) 2025-12-11 14:32:11 +01:00
uazo 0693a0e0f4 [AUTO][FILECONTROL] - version 143.0.7499.110 2025-12-11 03:37:24 +00:00
Carmelo Messina c17ff9e500 [TOOLS] Improve folder permission setup 2025-12-03 18:00:47 +01:00
Carmelo Messina 73028c53c5 [TOOLS] update fdroid repo: use rclone 1.72, bug fixed (https://github.com/rclone/rclone/issues/8892) 2025-12-03 08:55:16 +01:00
uazo 2cec47c918 [AUTO] Patches auto-rebase for master branch (#2538)
[AUTO] Patches auto-rebase for master branch
2025-12-02 16:32:51 +00:00
uazo 7b2759322a [AUTO][DOC] Generate patches doc for master branch (#2537)
[AUTO][DOC] Generate patches doc for master branch
2025-12-02 16:32:26 +00:00
uazo 56c7cd99cd [AUTO][FILECONTROL] - version 143.0.7499.40 (#2516)
[AUTO][FILECONTROL] - version 143.0.7499.40
2025-12-02 16:32:07 +00:00
uazo 4648b0a301 [AUTO] Patches auto-rebase 2025-12-02 16:04:05 +00:00
Carmelo Messina 03ac6cfc47 Add bookmark import/export actions: remove the 10 MB limit for importing bookmarks (#2527) 2025-12-02 17:01:28 +01:00
Carmelo Messina 8a6d940119 Experimental-support-for-extensions-on-Android: remove the temporarily fix (pop-up crash issue) (#2476) 2025-12-02 16:59:14 +01:00
Carmelo Messina 07e31cfb37 Client hints overrides: fix crash on duckduckgo android app (#2528) 2025-12-02 16:58:00 +01:00
Carmelo Messina 4987ea1cfd Enable extensions in incognito: allow use in always incognito mode (#2519) 2025-12-02 16:56:37 +01:00
Carmelo Messina cf3ef61d87 Add an always-incognito mode: allow extensions to be installed with always incognito (#2511 #256) 2025-12-02 16:55:24 +01:00
uazo be1a99221e [AUTO][DOC] Generate patches doc for master branch 2025-12-02 15:51:03 +00:00
uazo 9e9b0660ce Rebase to 143 (#2522)
Rebase to 143
2025-12-02 15:50:46 +00:00
Carmelo Messina 2e7927fab9 Backport-v144-android-extensions-changes: fix patch name (143 -> 144) 2025-11-26 18:02:38 +01:00
Carmelo Messina 7d5f515019 Enable ProcessBoundStringEncryption by default: drop patch, feature enabled by default from upstream 2025-11-26 18:01:45 +01:00
Carmelo Messina 1398295c85 Patches for v143 (final version) 2025-11-26 18:00:07 +01:00
Carmelo Messina b1cdb6763e Bump to 143.0.7499.40 2025-11-22 16:29:47 +01:00
Carmelo Messina ee072254f9 Patches for v143 (need some work) 2025-11-22 16:29:25 +01:00
Carmelo Messina 3cf5e136d8 Patches for v143 2025-11-22 16:25:29 +01:00
uazo 2251675be7 [AUTO][FILECONTROL] - version 143.0.7499.40 2025-11-21 03:24:23 +00:00
Carmelo Messina 97d638e44a Enable extensions in incognito: Full activation of incognito mode in extensions on Android (#2511 #256) 2025-11-20 16:43:45 +01:00
uazo f39022cb0c Update README with RendererAppContainer instructions (#2509)
Added note about running icacls for RendererAppContainer flag.
2025-11-20 07:20:31 +00:00
uazo 2124fd8aa7 [AUTO][FILECONTROL] - version 142.0.7444.176 (#2506)
[AUTO][FILECONTROL] - version 142.0.7444.176
2025-11-18 17:15:56 +00:00
uazo d47193be86 [AUTO] Patches auto-rebase for master branch (#2508)
[AUTO] Patches auto-rebase for master branch
2025-11-18 17:15:34 +00:00
uazo b7e11987a4 [AUTO] Patches auto-rebase 2025-11-18 17:12:43 +00:00
Carmelo Messina a749ff3ef3 Bump to 142.0.7444.176 2025-11-18 18:09:12 +01:00
uazo d83e1c3adf [AUTO][FILECONTROL] - version 142.0.7444.176 2025-11-18 03:24:18 +00:00
uazo 62ad38bed7 [TOOLS] Improve folder permission setup 2025-11-17 16:38:05 +00:00
uazo ec099bf550 [TOOLS] Update ownership for working directory in build script
Ensure ownership of the working directory for user 'lg'.
2025-11-17 16:33:33 +00:00
uazo 71e8a62e51 [TOOLS] Add HOME environment variable to build configuration 2025-11-17 08:21:48 +00:00
uazo 830a6d560f [AUTO][FILECONTROL] - version 142.0.7444.163 (#2486)
[AUTO][FILECONTROL] - version 142.0.7444.163
2025-11-16 16:50:17 +00:00
uazo 0ce3d27376 [AUTO] Patches auto-rebase for master branch (#2503)
[AUTO] Patches auto-rebase for master branch
2025-11-16 16:49:32 +00:00
uazo f6863b03cd [AUTO] Patches auto-rebase 2025-11-16 16:47:55 +00:00
Carmelo Messina d306ffe4ae Bump to 142.0.7444.163 2025-11-16 17:44:20 +01:00
Carmelo Messina 4a807a53f9 Restore chrome password store: Do not delete the password database on startup (#2449) 2025-11-16 17:43:19 +01:00
Carmelo Messina 887cafc2b7 Move navigation bar to bottom: disable overlay mode for the virtual keyboard (#2442) 2025-11-16 17:27:44 +01:00
Carmelo Messina f44cbf8576 Keep disabled FetchLaterAPI: fix the bypass for same-site requests (#2456) 2025-11-16 17:26:27 +01:00
Carmelo Messina ec71bf728c Experimental-support-for-extensions-on-Android: temporarily fixes the pop-up crash issue (#2476)
The cause is a mismatch between the tab list model in incognito mode and the new profile-unbound browser interface, as indicated in https://github.com/uazo/cromite/issues/256#issuecomment-3515404729
2025-11-16 17:24:39 +01:00
Carmelo Messina 56d2a9895f Client hints overrides: Allow the use of client hints model and platformversion by setting the value as an empty string. (#2448)
Storage is limited to the user session, lasts 1 minute, and is not permitted in iframes.
This change is necessary to bypass certain checks performed by websites without having to send any information.
2025-11-16 17:20:02 +01:00
Carmelo Messina 3ba00871a0 Add site engagement flag: fix failed DCHECK 2025-11-16 17:15:41 +01:00
Carmelo Messina cc9036b369 Add option to not persist tabs across sessions: clears the list of tab groups (#2445) 2025-11-16 17:15:09 +01:00
uazo ccf4ab91aa [AUTO][FILECONTROL] - version 142.0.7444.163 2025-11-12 03:21:33 +00:00
Carmelo Messina ed7af684bf [TOOLS] fix RELEASE file path (#2364) 2025-11-08 09:37:28 +01:00
Carmelo Messina 851be9370b Rebase to 142.0.7444.138 2025-11-06 19:27:16 +01:00
uazo 26d25d0ada [AUTO][FILECONTROL] - version 142.0.7444.138 (#2459)
[AUTO][FILECONTROL] - version 142.0.7444.138
2025-11-06 15:48:57 +00:00
uazo ea1f596cfa [AUTO][DOC] Generate patches doc for master branch (#2465)
[AUTO][DOC] Generate patches doc for master branch
2025-11-06 15:47:34 +00:00
uazo fa513ce101 [AUTO][DOC] Generate patches doc for master branch 2025-11-06 15:47:04 +00:00
Carmelo Messina 4549bfee99 Bump to 142.0.7444.138 2025-11-06 16:45:50 +01:00
Carmelo Messina d04c8d8c7d Experimental-support-for-extensions-on-Android: Enable experimental support for extensions in Android. (#256)
The feature is disabled by default: to enable it, go to Settings/Developer Options.
A Clear all data used by the extension button is available in App info/Storage and cache/Clear storage to completely remove the extensions folder in case of a crash on startup.
2025-11-06 16:44:36 +01:00
Carmelo Messina 32f70ea69a Android Pixel Perfect Mode: only patch context change 2025-11-06 16:34:48 +01:00
Carmelo Messina f0704a2e31 Disable Android AppRestrictions: disable policy provider 2025-11-06 16:34:03 +01:00
Carmelo Messina 8f2d973a11 Cromite Branding: removes the word “Google” from storage management 2025-11-06 16:33:21 +01:00
Carmelo Messina f280140de8 Enable component updater: uses the chromium key to verify CRX files 2025-11-06 16:30:51 +01:00
Carmelo Messina 020f02b474 Viewport Protection flag: disable viewport protection in extension action popups 2025-11-06 16:29:20 +01:00
Carmelo Messina 5d614511d4 Internal firewall: disable parallelizable download not compatible with extension downloads 2025-11-06 16:28:08 +01:00
uazo 512449d26d [AUTO][FILECONTROL] - version 142.0.7444.138 2025-11-06 03:32:10 +00:00
Carmelo Messina 8f68189b3b [TOOLS] Use vpython3 for supersize (#2425) 2025-10-30 08:48:50 +01:00
uazo 28351d9704 [AUTO][FILECONTROL] - version 142.0.7444.60 (#2429)
[AUTO][FILECONTROL] - version 142.0.7444.60
2025-10-29 18:07:37 +01:00
uazo 2eaadd2c39 [AUTO][DOC] Generate patches doc for master branch (#2441)
[AUTO][DOC] Generate patches doc for master branch
2025-10-29 18:07:17 +01:00
uazo 69273cc9bb [AUTO][DOC] Generate patches doc for master branch 2025-10-29 17:06:30 +00:00
Carmelo Messina d22565d5db Bump to 142.0.7444.60 2025-10-29 18:05:35 +01:00
Carmelo Messina 0867a78ab4 [GN ARGS] Update cromite gn args for v142 2025-10-29 18:04:44 +01:00
uazo 334b7a02b2 Rebase to 142 (#2435)
Rebase to 142
2025-10-29 18:02:02 +01:00
Carmelo Messina bdb2a4ef22 Temp use PREVIEW for IDCompositionDevice5: Temporarily restore the statement from v141 while waiting to update the Windows SDK.
See "Remove preview usage of DynamicTexture DComp APIs" bugid 6902339
2025-10-29 17:54:25 +01:00
Carmelo Messina af12a65ed4 Disable Sticky User Activation Across Same Origin Navigation: do not retains the user activation status after navigating from one page to another page of the same origin.
It is currently not possible to remove activation once it has been granted.
2025-10-29 17:53:19 +01:00
Carmelo Messina 705a8e4ee7 Patches for v142 (final version) 2025-10-29 17:46:16 +01:00
uazo 106f3bbdd7 [AUTO][FILECONTROL] - version 142.0.7444.60 2025-10-29 03:26:42 +00:00
Carmelo Messina 409ac177ee Bump to 142.0.7444.52 2025-10-27 13:58:45 +01:00
Carmelo Messina 5e90c335b9 Patches for 142 (must be checked) 2025-10-27 13:58:16 +01:00
Carmelo Messina ea944bb5e6 Patches for v142 2025-10-27 13:57:27 +01:00
Carmelo Messina 86a6475730 [TOOLS] Force use vpython3 for siso (#2425) 2025-10-22 11:45:57 +02:00
uazo 6901f5c95c [AUTO][FILECONTROL] - version 141.0.7390.127 (#2423)
[AUTO][FILECONTROL] - version 141.0.7390.127
2025-10-22 10:25:07 +02:00
Carmelo Messina 2b1534e8fa Bump to 141.0.7390.127 2025-10-22 10:13:05 +02:00
uazo 70b8bc3b69 [AUTO][FILECONTROL] - version 141.0.7390.127 2025-10-22 07:54:28 +00:00
Carmelo Messina af0c2dc9ba Move navigation bar to bottom: fix toolbar in search widget (#1927) 2025-10-18 11:46:53 +02:00
Carmelo Messina 863f91eb53 [TOOLS] Replace ninja with siso (#1266) 2025-10-18 09:43:19 +02:00
uazo 33b5ec3a17 [AUTO][FILECONTROL] - version 141.0.7390.111 (#2408)
[AUTO][FILECONTROL] - version 141.0.7390.111
2025-10-17 22:15:42 +08:00
uazo 8472488087 [AUTO] Patches auto-rebase for master branch (#2414)
[AUTO] Patches auto-rebase for master branch
2025-10-17 22:15:12 +08:00
uazo 54be9ddb29 [AUTO] Patches auto-rebase 2025-10-17 14:10:30 +00:00
Carmelo Messina 8e1e69162a Bump to 141.0.7390.111 2025-10-17 16:04:13 +02:00
Carmelo Messina f670a4f607 Move navigation bar to bottom: fix toolbar in search widget (#1927) 2025-10-17 15:59:17 +02:00
Carmelo Messina 540865281e Cromite Branding: add some visual enhancements in android
- do not exit the application when pressing the back button if the tab was not opened by external application (#1606)
- move the new tab button to the right in the hub
- activate search among open tabs in the hub
- only show active groups in the hub
2025-10-17 15:57:05 +02:00
Carmelo Messina 6eca697ffb [TOOLS] promote the build of the arm64 webview (#2364)
Since I've halved the build time, I think we can try building the webview as well, starting with arm for now.
2025-10-16 15:44:11 +02:00
uazo f9b2decefe [AUTO][DOC] Generate patches doc for master branch (#2412)
[AUTO][DOC] Generate patches doc for master branch
2025-10-16 01:15:16 -12:00
uazo 57388ab4e3 [AUTO][DOC] Generate patches doc for master branch 2025-10-16 13:08:36 +00:00
Carmelo Messina cb240536bf Enable ClientHello Segmentation: allows the ClientHello packet to be sent by segmenting it into multiple packets (#2403).
Can be useful for circumventing censorship via DIP introspection.
The patch automatically disables the mode in case of outdated or incompatible servers, if the TLS handshake fails or times out.
The mode is accessible via the flag clienthello-fragmentation and is currently disabled.
2025-10-16 15:07:47 +02:00
uazo a679a6763b [AUTO][FILECONTROL] - version 141.0.7390.111 2025-10-15 03:12:53 +00:00
Carmelo Messina 5cf1c61c79 [TOOLS] Use correct win sdk folder for release 2025-10-10 09:43:43 +02:00
uazo fb75694894 [AUTO] Patches auto-rebase for master branch (#2394)
[AUTO] Patches auto-rebase for master branch
2025-10-09 09:12:52 -08:00
uazo 95f5d33c06 [AUTO] Patches auto-rebase 2025-10-09 17:11:38 +00:00
Carmelo Messina fdfab76bcb Bump to 141.0.7390.70 2025-10-09 17:57:05 +02:00
uazo 99ab223de2 [AUTO][DOC] Generate patches doc for master branch (#2393)
[AUTO][DOC] Generate patches doc for master branch
2025-10-09 06:58:09 -03:00
uazo 25f72a0f55 [AUTO][DOC] Generate patches doc for master branch 2025-10-09 09:45:53 +00:00
Carmelo Messina 6fa2e7b98f Add setting to enable Credman for passkeys: enable CredentialManager APIs for A14+ (#2296 #329)
thanks to jhult
2025-10-09 11:45:09 +02:00
Carmelo Messina 873bc4ea61 Content settings infrastructure: fix crash on desktop due to api change 2025-10-09 11:34:50 +02:00
Carmelo Messina 84c145ee0f Keep disabled WebViewMediaIntegrityApi: fix webview build 2025-10-09 11:33:41 +02:00
Carmelo Messina 04ddfbf174 Set the screen frame rate to 60 Hz: added switch in settings (#2336 #1538) 2025-10-09 11:33:09 +02:00
Carmelo Messina b2824377c3 Force use vpython3 for some scripts: add third_party/perfetto to NOEXPORT
Remove third_party/perfetto subrepo
2025-10-02 11:31:25 +02:00
uazo 97edd08128 [AUTO][FILECONTROL] - version 141.0.7390.55 (#2355)
[AUTO][FILECONTROL] - version 141.0.7390.55
2025-10-01 18:27:11 +03:00
uazo 94a94e3723 [AUTO][DOC] Generate patches doc for master branch (#2373)
[AUTO][DOC] Generate patches doc for master branch
2025-10-01 18:26:37 +03:00
Carmelo Messina c8b3003365 [GN ARGS] remove use_sysroot = true 2025-10-01 17:25:46 +02:00
Carmelo Messina 24bcd5b5e8 Set the screen frame rate to 60 Hz: fix lag issues (#2336 #1538) 2025-10-01 17:20:43 +02:00
Carmelo Messina 1e9da1d4e3 Add option to disable snapshots: fix for 141 2025-10-01 17:16:44 +02:00
uazo 46d25fdcee [AUTO][DOC] Generate patches doc for master branch 2025-10-01 14:17:25 +00:00
uazo 5f64f84227 Rebase to 141 (#2366)
Rebase to 141
2025-10-01 17:16:23 +03:00
uazo d053c28503 [AUTO] Patches auto-rebase for next-141 branch (#2372)
[AUTO] Patches auto-rebase for next-141 branch
2025-10-01 17:14:45 +03:00
uazo cf1d9c00eb [AUTO] Patches auto-rebase 2025-10-01 14:13:36 +00:00
Carmelo Messina ad41529d2c Bump to 141.0.7390.55 2025-10-01 16:06:00 +02:00
Carmelo Messina 0c64054227 Patches for 141: drop Temporarily-disable-Tab-Group-Sync-Android.patch 2025-10-01 16:05:19 +02:00
Carmelo Messina 2c5a3eafdb Patches for 141 (no changes) 2025-10-01 16:04:45 +02:00
Carmelo Messina 610064ef2d Patches for 141 (final) 2025-10-01 16:04:10 +02:00
uazo f36bbcc871 [AUTO][FILECONTROL] - version 141.0.7390.55 2025-10-01 03:29:20 +00:00
Carmelo Messina 52aa63df2f Bump to 141.0.7390.43 2025-09-29 11:51:54 +02:00
Carmelo Messina 5a30f6fe3a Patches for 141 (need works) 2025-09-29 11:51:24 +02:00
Carmelo Messina 8e5a82cb9e Patches for 141 2025-09-29 11:50:52 +02:00
947 changed files with 45692 additions and 25817 deletions
@@ -111,7 +111,6 @@ jobs:
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_arm64:/home/lg/working_dir/chromium/src/out/chr_arm64 - /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_arm64:/home/lg/working_dir/chromium/src/out/chr_arm64
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_x64:/home/lg/working_dir/chromium/src/out/chr_x64 - /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/chr_x64:/home/lg/working_dir/chromium/src/out/chr_x64
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64_webview:/home/lg/working_dir/chromium/src/out/x64_webview - /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64_webview:/home/lg/working_dir/chromium/src/out/x64_webview
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64_webview:/home/lg/working_dir/chromium/src/out/arm64_webview
- /tmp/proxy:/tmp/proxy - /tmp/proxy:/tmp/proxy
- /win_sdk:/win_sdk - /win_sdk:/win_sdk
@@ -129,7 +128,7 @@ jobs:
http_proxy= http_proxy=
https_proxy= https_proxy=
# set out folder permissions # setup folder permissions
test -d chromium/src/out/chr_arm || sudo mkdir -p chromium/src/out/chr_arm && \ test -d chromium/src/out/chr_arm || sudo mkdir -p chromium/src/out/chr_arm && \
sudo chown lg chromium/src/out && sudo chown lg chromium/src/out &&
sudo chown lg chromium/src/out/chr_arm sudo chown lg chromium/src/out/chr_arm
@@ -146,9 +145,9 @@ jobs:
sudo chown lg chromium/src/out && sudo chown lg chromium/src/out &&
sudo chown lg chromium/src/out/x64_webview sudo chown lg chromium/src/out/x64_webview
test -d chromium/src/out/arm64_webview || sudo mkdir -p chromium/src/out/arm64_webview && \ sudo chown lg /home/lg/working_dir
sudo chown lg chromium/src/out && test -d /github/home/.config/depot_tools || sudo mkdir -p /github/home/.config/depot_tools
sudo chown lg chromium/src/out/arm64_webview sudo chown lg /github/home/.config/depot_tools
sudo mkdir -p /run/user/1000/ sudo mkdir -p /run/user/1000/
sudo chown lg /run/user/1000/ sudo chown lg /run/user/1000/
@@ -177,27 +176,9 @@ jobs:
gn args out/x64_webview/ --list >out/x64_webview/gn_list gn args out/x64_webview/ --list >out/x64_webview/gn_list
echo "::endgroup::" echo "::endgroup::"
ninja -C out/x64_webview system_webview_apk system_webview_shell vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/x64_webview system_webview_apk system_webview_shell --offline
cp ../../cromite/build/RELEASE out/x64_webview cp ../../cromite/build/RELEASE out/x64_webview
- name: Build Cromite System WebView arm64
shell: bash
run: |
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen"
gn gen --args="target_os = \"android\" target_cpu = \"arm64\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) system_webview_package_name=\"com.android.webview\" enable_trybot_verification=false " out/arm64_webview
echo "::endgroup::"
echo "::group::-------- gn args"
gn args out/arm64_webview/ --list --short
gn args out/arm64_webview/ --list >out/arm64_webview/gn_list
echo "::endgroup::"
ninja -C out/arm64_webview system_webview_apk system_webview_shell
cp ../../cromite/build/RELEASE out/arm64_webview
- name: Prepare Build Container for vanilla chromium - name: Prepare Build Container for vanilla chromium
shell: bash shell: bash
run: | run: |
@@ -224,7 +205,7 @@ jobs:
gn args out/chr_x64/ --list >out/chr_x64/gn_list gn args out/chr_x64/ --list >out/chr_x64/gn_list
echo "::endgroup::" echo "::endgroup::"
ninja -C out/chr_x64 chrome_public_apk vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/chr_x64 chrome_public_apk --offline
cp ../../cromite/build/RELEASE out/chr_x64 cp ../../cromite/build/RELEASE out/chr_x64
@@ -243,7 +224,7 @@ jobs:
gn args out/chr_arm64/ --list >out/chr_arm64/gn_list gn args out/chr_arm64/ --list >out/chr_arm64/gn_list
echo "::endgroup::" echo "::endgroup::"
ninja -C out/chr_arm64 chrome_public_apk vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/chr_arm64 chrome_public_apk --offline
cp ../../cromite/build/RELEASE out/chr_arm64 cp ../../cromite/build/RELEASE out/chr_arm64
@@ -262,6 +243,6 @@ jobs:
gn args out/chr_arm/ --list >out/chr_arm/gn_list gn args out/chr_arm/ --list >out/chr_arm/gn_list
echo "::endgroup::" echo "::endgroup::"
ninja -C out/chr_arm chrome_public_apk vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/chr_arm chrome_public_apk --offline
cp ../../cromite/build/RELEASE out/chr_arm cp ../../cromite/build/RELEASE out/chr_arm
+55 -27
View File
@@ -177,11 +177,12 @@ jobs:
USELOCALIMAGE: true # CUSTOM RUNNER: permit use of local images USELOCALIMAGE: true # CUSTOM RUNNER: permit use of local images
USEINTERNALNETWORK: true # CUSTOM RUNNER: create the docker network as internal USEINTERNALNETWORK: true # CUSTOM RUNNER: create the docker network as internal
WORKSPACE: /home/lg/working_dir WORKSPACE: /home/lg/working_dir
HOME: /home/lg/working_dir
# kythe # kythe
KYTHE_CORPUS: chromium.googlesource.com/chromium/src KYTHE_CORPUS: chromium.googlesource.com/chromium/src
KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe
# cross build # cross build (change also release.yaml)
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.26100.0/ DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/sdks/Win11SDK_10.0.26100.0/
WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/" WINDOWSSDKDIR: "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/"
GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.26100.0/ GYP_MSVS_OVERRIDE_PATH: /win_sdk/sdks/Win11SDK_10.0.26100.0/
@@ -197,6 +198,7 @@ jobs:
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64:/home/lg/working_dir/chromium/src/out/x64 - /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64:/home/lg/working_dir/chromium/src/out/x64
- /storage/images/${{ github.event.inputs.sha }}/linux/${{ github.event.inputs.debug }}/lin64:/home/lg/working_dir/chromium/src/out/lin64 - /storage/images/${{ github.event.inputs.sha }}/linux/${{ github.event.inputs.debug }}/lin64:/home/lg/working_dir/chromium/src/out/lin64
- /storage/images/${{ github.event.inputs.sha }}/win/x64:/home/lg/working_dir/chromium/src/out/win64 - /storage/images/${{ github.event.inputs.sha }}/win/x64:/home/lg/working_dir/chromium/src/out/win64
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64_webview:/home/lg/working_dir/chromium/src/out/arm64_webview
- /tmp/proxy:/tmp/proxy - /tmp/proxy:/tmp/proxy
- /win_sdk:/win_sdk - /win_sdk:/win_sdk
@@ -214,7 +216,7 @@ jobs:
http_proxy= http_proxy=
https_proxy= https_proxy=
# set out folder permissions # setup folder permissions
test -d chromium/src/out/arm || sudo mkdir -p chromium/src/out/arm && \ test -d chromium/src/out/arm || sudo mkdir -p chromium/src/out/arm && \
sudo chown lg chromium/src/out && sudo chown lg chromium/src/out &&
sudo chown lg chromium/src/out/arm sudo chown lg chromium/src/out/arm
@@ -235,6 +237,14 @@ jobs:
sudo chown lg chromium/src/out && sudo chown lg chromium/src/out &&
sudo chown lg chromium/src/out/lin64 sudo chown lg chromium/src/out/lin64
test -d chromium/src/out/arm64_webview || sudo mkdir -p chromium/src/out/arm64_webview && \
sudo chown lg chromium/src/out &&
sudo chown lg chromium/src/out/arm64_webview
sudo chown lg /home/lg/working_dir
test -d /github/home/.config/depot_tools || sudo mkdir -p /github/home/.config/depot_tools
sudo chown lg /github/home/.config/depot_tools
# make kythe output directory # make kythe output directory
test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY
@@ -261,16 +271,16 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen" echo "::group::-------- gn gen"
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/x64 gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/x64 || true
echo "::endgroup::" echo "::endgroup::"
echo "::group::-------- gn args" echo "::group::-------- gn args"
gn args out/x64/ --list --short gn args out/x64/ --list --short || true
gn args out/x64/ --list >out/x64/gn_list gn args out/x64/ --list >out/x64/gn_list || true
echo "::endgroup::" echo "::endgroup::"
ninja -C out/x64 chrome_public_bundle vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/x64 chrome_public_bundle --offline
ninja -C out/x64 chrome_public_apk vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/x64 chrome_public_apk --offline
cp ../../cromite/build/RELEASE out/x64 cp ../../cromite/build/RELEASE out/x64
@@ -290,15 +300,15 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen" echo "::group::-------- gn gen"
gn gen --args="target_os = \"win\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/win64 gn gen --args="target_os = \"win\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/win64 || true
echo "::endgroup::" echo "::endgroup::"
echo "::group::-------- gn args" echo "::group::-------- gn args"
gn args out/win64/ --list --short gn args out/win64/ --list --short || true
gn args out/win64/ --list >out/win64/gn_list gn args out/win64/ --list >out/win64/gn_list || true
echo "::endgroup::" echo "::endgroup::"
ninja -C out/win64 chrome vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/win64 chrome --offline
cp ../../cromite/build/RELEASE out/win64 cp ../../cromite/build/RELEASE out/win64
@@ -318,16 +328,16 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen" echo "::group::-------- gn gen"
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm64\" " out/arm64 gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm64\" " out/arm64 || true
echo "::endgroup::" echo "::endgroup::"
echo "::group::-------- gn args" echo "::group::-------- gn args"
gn args out/arm64/ --list --short gn args out/arm64/ --list --short || true
gn args out/arm64/ --list >out/arm64/gn_list gn args out/arm64/ --list >out/arm64/gn_list || true
echo "::endgroup::" echo "::endgroup::"
ninja -C out/arm64 chrome_public_bundle vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64 chrome_public_bundle --offline
ninja -C out/arm64 chrome_public_apk vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64 chrome_public_apk --offline
cp ../../cromite/build/RELEASE out/arm64 cp ../../cromite/build/RELEASE out/arm64
@@ -347,7 +357,7 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- generating breakpad symbols" echo "::group::-------- generating breakpad symbols"
ninja -C out/arm64 minidump_stackwalk dump_syms vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64 minidump_stackwalk dump_syms --offline
components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/arm64 \ components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/arm64 \
--symbols-dir=out/arm64/symbols/ --binary=out/arm64/lib.unstripped/libchrome.so \ --symbols-dir=out/arm64/symbols/ --binary=out/arm64/lib.unstripped/libchrome.so \
--platform=android --clear --verbose --platform=android --clear --verbose
@@ -363,7 +373,7 @@ jobs:
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
tools/binary_size/supersize archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v vpython3 tools/binary_size/libsupersize/main.py archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v
- name: Build Cromite Android arm - name: Build Cromite Android arm
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm' || github.event.inputs.build == 'all') }} if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm' || github.event.inputs.build == 'all') }}
@@ -373,16 +383,16 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen" echo "::group::-------- gn gen"
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm\" " out/arm gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm\" " out/arm || true
echo "::endgroup::" echo "::endgroup::"
echo "::group::-------- gn args" echo "::group::-------- gn args"
gn args out/arm/ --list --short gn args out/arm/ --list --short || true
gn args out/arm/ --list >out/arm/gn_list gn args out/arm/ --list >out/arm/gn_list || true
echo "::endgroup::" echo "::endgroup::"
ninja -C out/arm chrome_public_bundle vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm chrome_public_bundle --offline
ninja -C out/arm chrome_public_apk vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm chrome_public_apk --offline
cp ../../cromite/build/RELEASE out/arm cp ../../cromite/build/RELEASE out/arm
@@ -402,15 +412,15 @@ jobs:
cd $WORKSPACE/chromium/src cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen" echo "::group::-------- gn gen"
gn gen --args="target_os = \"linux\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/lin64 gn gen --args="target_os = \"linux\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/lin64 || true
echo "::endgroup::" echo "::endgroup::"
echo "::group::-------- gn args" echo "::group::-------- gn args"
gn args out/lin64/ --list --short gn args out/lin64/ --list --short || true
gn args out/lin64/ --list >out/lin64/gn_list gn args out/lin64/ --list >out/lin64/gn_list || true
echo "::endgroup::" echo "::endgroup::"
ninja -C out/lin64 chrome chrome_sandbox vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/lin64 chrome chrome_sandbox --offline
cp ../../cromite/build/RELEASE out/lin64 cp ../../cromite/build/RELEASE out/lin64
@@ -422,6 +432,24 @@ jobs:
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/lin64/.ninja_log >$WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json $WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/lin64/.ninja_log >$WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
- name: Build Cromite System WebView arm64
shell: bash
run: |
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
cd $WORKSPACE/chromium/src
echo "::group::-------- gn gen"
gn gen --args="target_os = \"android\" target_cpu = \"arm64\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) system_webview_package_name=\"com.android.webview\" enable_trybot_verification=false " out/arm64_webview || true
echo "::endgroup::"
echo "::group::-------- gn args"
gn args out/arm64_webview/ --list --short || true
gn args out/arm64_webview/ --list >out/arm64_webview/gn_list || true
echo "::endgroup::"
vpython3 /home/lg/working_dir/depot_tools/siso.py ninja -C out/arm64_webview system_webview_apk system_webview_shell --offline
cp ../../cromite/build/RELEASE out/arm64_webview
- name: Generate clangd index for Android arm64 - name: Generate clangd index for Android arm64
if: ${{ github.event.inputs.clangd == 'true' }} if: ${{ github.event.inputs.clangd == 'true' }}
shell: bash shell: bash
+16 -4
View File
@@ -37,6 +37,7 @@ jobs:
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/ OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64/
OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/ OUTPUTFILE_WIN: /storage/images/${{ github.event.inputs.sha }}/win/x64/
OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/ OUTPUTFILE_LIN: /storage/images/${{ github.event.inputs.sha }}/linux/false/lin64/
OUTPUTFILE_WV_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64_webview/
steps: steps:
- name: Login to Docker Hub - name: Login to Docker Hub
@@ -130,7 +131,7 @@ jobs:
cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_proxy.exe chrome-win/
cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe chrome-win/ cp $OUTPUTFILE_WIN/chrome_pwa_launcher.exe chrome-win/
cp $OUTPUTFILE_WIN/chrome_wer.dll chrome-win/ cp $OUTPUTFILE_WIN/chrome_wer.dll chrome-win/
cp "/win_sdk/10.0.22621.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/ cp "/win_sdk/sdks/Win11SDK_10.0.26100.0/Windows Kits/10/Redist/D3D/x64/d3dcompiler_47.dll" chrome-win/
cp $OUTPUTFILE_WIN/elevation_service.exe chrome-win/ cp $OUTPUTFILE_WIN/elevation_service.exe chrome-win/
cp "$OUTPUTFILE_WIN/First Run" chrome-win/ cp "$OUTPUTFILE_WIN/First Run" chrome-win/
cp $OUTPUTFILE_WIN/headless_lib_data.pak chrome-win/ cp $OUTPUTFILE_WIN/headless_lib_data.pak chrome-win/
@@ -184,6 +185,7 @@ jobs:
$GH release upload $VERSION-$CROMITE_SHA chrome-lin64.tar.gz $GH release upload $VERSION-$CROMITE_SHA chrome-lin64.tar.gz
echo "::endgroup::" echo "::endgroup::"
# android arm64 symbols
echo "::group::-------- arm64 symbols" echo "::group::-------- arm64 symbols"
zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \ zip arm64_symbols.zip ${{ env.OUTPUTFILE_ARM64 }}/dump_syms \
${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \ ${{ env.OUTPUTFILE_ARM64 }}/minidump_stackwalk \
@@ -191,6 +193,19 @@ jobs:
$GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip $GH release upload $VERSION-$CROMITE_SHA arm64_symbols.zip
echo "::endgroup::" echo "::endgroup::"
# android arm64
echo "::group::-------- android systemwebview arm64"
sudo cp ${{ env.OUTPUTFILE_WV_ARM64 }}/apks/SystemWebView.apk arm64_SystemWebView.apk
sudo chown runner arm64_SystemWebView.apk
sudo cp ${{ env.OUTPUTFILE_WV_ARM64 }}/apks/SystemWebViewShell.apk arm64_SystemWebViewShell.apk
sudo chown runner arm64_SystemWebViewShell.apk
echo Uploading arm64_SystemWebView
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebView.apk
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebViewShell.apk
echo "::endgroup::"
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 $OUTPUTFILE_WIN/RELEASE);revision=1;commit=$CROMITE_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-$CROMITE_SHA updateurl.txt $GH release upload $VERSION-$CROMITE_SHA updateurl.txt
@@ -201,7 +216,4 @@ jobs:
$GH release edit $VERSION-$CROMITE_SHA --draft=false $GH release edit $VERSION-$CROMITE_SHA --draft=false
fi fi
VERSION=$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE)
docker push uazo/cromite:$VERSION-$CROMITE_SHA
docker push uazo/cromite-build:$VERSION-$CROMITE_SHA
@@ -24,7 +24,6 @@ jobs:
runs-on: ${{ github.event.inputs.type }} runs-on: ${{ github.event.inputs.type }}
env: env:
IS_DRAFT: ${{ github.event.inputs.draft }} IS_DRAFT: ${{ github.event.inputs.draft }}
OUTPUTFILE_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/arm64_webview/
OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64_webview/ OUTPUTFILE_X64: /storage/images/${{ github.event.inputs.sha }}/android/false/x64_webview/
OUTPUTFILE_CHR_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm64/ OUTPUTFILE_CHR_ARM64: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm64/
OUTPUTFILE_CHR_ARM: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm/ OUTPUTFILE_CHR_ARM: /storage/images/${{ github.event.inputs.sha }}/android/false/chr_arm/
@@ -48,7 +47,7 @@ jobs:
- name: Create release - name: Create release
shell: bash shell: bash
run: | run: |
VERSION=v$(cat ${{ env.OUTPUTFILE_ARM64 }}/RELEASE) VERSION=v$(cat ${{ env.OUTPUTFILE_X64 }}/RELEASE)
cd cromite/tools cd cromite/tools
@@ -58,19 +57,6 @@ jobs:
echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token echo ${{ secrets.GITHUB_TOKEN }} | $GH auth login --with-token
# android arm64
echo "::group::-------- android systemwebview arm64"
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/SystemWebView.apk arm64_SystemWebView.apk
sudo chown runner arm64_SystemWebView.apk
sudo cp ${{ env.OUTPUTFILE_ARM64 }}/apks/SystemWebViewShell.apk arm64_SystemWebViewShell.apk
sudo chown runner arm64_SystemWebViewShell.apk
echo Uploading arm64_SystemWebView
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebView.apk
$GH release upload $VERSION-$CROMITE_SHA arm64_SystemWebViewShell.apk
echo "::endgroup::"
# android x64 # android x64
echo "::group::-------- android systemwebview x64" echo "::group::-------- android systemwebview x64"
sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/SystemWebView.apk x64_SystemWebView.apk sudo cp ${{ env.OUTPUTFILE_X64 }}/apks/SystemWebView.apk x64_SystemWebView.apk
+3 -3
View File
@@ -37,9 +37,9 @@ jobs:
apt update apt update
DEBIAN_FRONTEND=noninteractive apt update && apt install -y wget unzip DEBIAN_FRONTEND=noninteractive apt update && apt install -y wget unzip
wget https://github.com/rclone/rclone/releases/download/v1.64.0/rclone-v1.64.0-linux-amd64.zip wget https://github.com/rclone/rclone/releases/download/v1.72.0/rclone-v1.72.0-linux-amd64.zip
unzip rclone-v1.64.0-linux-amd64.zip unzip rclone-v1.72.0-linux-amd64.zip
export rclone=rclone-v1.64.0-linux-amd64/rclone export rclone=rclone-v1.72.0-linux-amd64/rclone
mkdir -p ~/.config/rclone mkdir -p ~/.config/rclone
echo "${{ secrets.RCLONE_CONF }}" > ~/.config/rclone/rclone.conf echo "${{ secrets.RCLONE_CONF }}" > ~/.config/rclone/rclone.conf
+1
View File
@@ -133,6 +133,7 @@ you can activate (highly recommended) the 'RendererAppContainer' flag from the c
``` ```
--enable-features=RendererAppContainer --enable-features=RendererAppContainer
``` ```
In this case, it is also necessary to run icacls as indicated above.
### Auto-update setup for linux ### Auto-update setup for linux
working in progress in https://github.com/uazo/cromite/issues/771 working in progress in https://github.com/uazo/cromite/issues/771
+1 -1
View File
@@ -1 +1 @@
140.0.7339.186 144.0.7559.97
+6 -9
View File
@@ -8,7 +8,6 @@ disable_fieldtrial_testing_config=true
enable_hangout_services_extension=false enable_hangout_services_extension=false
enable_iterator_debugging=false enable_iterator_debugging=false
enable_mdns=false enable_mdns=false
enable_nacl=false
enable_remoting=false enable_remoting=false
enable_reporting=false enable_reporting=false
enable_vr=false enable_vr=false
@@ -24,7 +23,6 @@ use_debug_fission=true
use_errorprone_java_compiler=false use_errorprone_java_compiler=false
use_official_google_api_keys=false use_official_google_api_keys=false
use_rtti=false use_rtti=false
use_sysroot=false
webview_includes_weblayer=false webview_includes_weblayer=false
enable_arcore=false enable_arcore=false
enable_openxr=false enable_openxr=false
@@ -65,16 +63,11 @@ if (target_os == "android" || target_os == "win") {
# disable passthrough audio codecs # disable passthrough audio codecs
enable_platform_dts_audio = false enable_platform_dts_audio = false
enable_passthrough_audio_codecs = false
# disabled the use of the context snapshot # disabled the use of the context snapshot
# see https://github.com/uazo/cromite/pull/317 for context # see https://github.com/uazo/cromite/pull/317 for context
use_v8_context_snapshot = false use_v8_context_snapshot = false
# disable minikin engine
# see https://github.com/uazo/cromite/issues/697
use_minikin_hyphenation = false
# disable automatic update of sync-related cookies # disable automatic update of sync-related cookies
# initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad # initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad
enable_bound_session_credentials = false enable_bound_session_credentials = false
@@ -89,6 +82,12 @@ enable_request_header_integrity = false
# Disable precompiled headers because they are incompatible with the unsafe_buffers configuration # Disable precompiled headers because they are incompatible with the unsafe_buffers configuration
enable_precompiled_headers = false enable_precompiled_headers = false
# Disable integration with Gemini
enable_glic = false
# Disable TFLite with XNNPACK
build_tflite_with_xnnpack = false
declare_args() { declare_args() {
_is_debug_build = "" _is_debug_build = ""
build_webview = false build_webview = false
@@ -157,7 +156,6 @@ if (target_os == "win") {
enable_pdf = true enable_pdf = true
pdf_is_complete_lib = true pdf_is_complete_lib = true
enable_plugins = true enable_plugins = true
enable_ppapi = false
chrome_pgo_phase = 2 # enable pgo chrome_pgo_phase = 2 # enable pgo
@@ -173,7 +171,6 @@ if (target_os == "linux") {
enable_pdf = true enable_pdf = true
pdf_is_complete_lib = true pdf_is_complete_lib = true
enable_plugins = true enable_plugins = true
enable_ppapi = false
use_sysroot = true use_sysroot = true
chrome_pgo_phase = 2 # enable pgo chrome_pgo_phase = 2 # enable pgo
+14 -7
View File
@@ -1,5 +1,4 @@
Do-not-link-with-libatomic.patch Do-not-link-with-libatomic.patch
Do-not-check-for-the-presence-of-use-remoteexec.patch
bromite-build-utils.patch bromite-build-utils.patch
Add-cromite-flags-support.patch Add-cromite-flags-support.patch
Force-use-vpython3-for-some-scripts.patch Force-use-vpython3-for-some-scripts.patch
@@ -10,7 +9,6 @@ Restore-chrome-password-store.patch
Remove-EV-certificates.patch Remove-EV-certificates.patch
do-not-hide-.orig-files.patch do-not-hide-.orig-files.patch
do-not-add-suffix-to-package-name.patch do-not-add-suffix-to-package-name.patch
exit-on-failure-of-inclusion.patch
Move-some-account-settings-back-to-privacy-settings.patch Move-some-account-settings-back-to-privacy-settings.patch
kill-Vision.patch kill-Vision.patch
kill-Location-fall-back-to-system.patch kill-Location-fall-back-to-system.patch
@@ -99,7 +97,6 @@ Block-gateway-attacks-via-websockets.patch
Enable-darken-websites-checkbox-in-themes.patch Enable-darken-websites-checkbox-in-themes.patch
Remove-blocklisted-URLs-upon-bookmark-creation.patch Remove-blocklisted-URLs-upon-bookmark-creation.patch
Disable-the-DIAL-repeating-discovery.patch Disable-the-DIAL-repeating-discovery.patch
Block-qjz9zk-or-trk-requests.patch
Hardening-against-incognito-mode-detection.patch Hardening-against-incognito-mode-detection.patch
Restore-Simplified-NTP-launch.patch Restore-Simplified-NTP-launch.patch
Add-option-to-use-home-page-as-NTP.patch Add-option-to-use-home-page-as-NTP.patch
@@ -156,7 +153,6 @@ Enable-Certificate-Transparency.patch
Invalidate-components-public-key.patch Invalidate-components-public-key.patch
Improve-plain-text-rendering-on-mobile.patch Improve-plain-text-rendering-on-mobile.patch
Remove-segmentation-platform.patch Remove-segmentation-platform.patch
Follow-only-system-dark-mode.patch
Remove-window-name-on-cross-origin-navigation.patch Remove-window-name-on-cross-origin-navigation.patch
Remove-preload-of-com.google.android.gms.fonts.patch Remove-preload-of-com.google.android.gms.fonts.patch
Partition-Blink-memory-cache.patch Partition-Blink-memory-cache.patch
@@ -287,7 +283,6 @@ Disable-Posture-API.patch
PublicKeyCredential-fingerprinting-mitigations.patch PublicKeyCredential-fingerprinting-mitigations.patch
Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch
Enable-Cert-Management-UI.patch Enable-Cert-Management-UI.patch
Enable-ProcessBoundStringEncryption-by-default.patch
Prevent-mouse-wheel-fingerprinting-on-Windows.patch Prevent-mouse-wheel-fingerprinting-on-Windows.patch
Enable-component-updater.patch Enable-component-updater.patch
Android-fonts-fingerprinting-mitigation.patch Android-fonts-fingerprinting-mitigation.patch
@@ -304,19 +299,27 @@ Android-Pixel-Perfect-Mode.patch
Set-caret-blink-interval-to-default.patch Set-caret-blink-interval-to-default.patch
Set-the-screen-frame-rate-to-60-Hz.patch Set-the-screen-frame-rate-to-60-Hz.patch
Disable-Device-Attributes-API.patch Disable-Device-Attributes-API.patch
Add-setting-to-enable-Credman-for-passkeys.patch
Temp-disable-UseContextSnapshot.patch Temp-disable-UseContextSnapshot.patch
Enable-ClientHello-Segmentation.patch
Disable-Sticky-User-Activation-Across-Same-Origin-Navigation.patch
Supporting-Dangling-Ptr-Detection-via-BackupRefPtr.patch
Disable-device-bound-session.patch
Keep-disabled-CpuPerformance.patch
Immediately-destroy-shared-workers-when-closing-the-page.patch
Disable-minikin-hyphenation.patch
# temporary or wip patches # temporary or wip patches
Temp-PerformanceNavigationTiming-privacy-fix.patch
Temp-disable-predictive-back-gesture.patch Temp-disable-predictive-back-gesture.patch
TEMP-Add-a-log-to-track-strange-behavior.patch TEMP-Add-a-log-to-track-strange-behavior.patch
Temp-guard-FileSystemAccessPersistentPermissions.patch Temp-guard-FileSystemAccessPersistentPermissions.patch
Never-treat-Proguard-warnings-as-errors.patch Never-treat-Proguard-warnings-as-errors.patch
Temp-disable-experimental-web-platform-features.patch Temp-disable-experimental-web-platform-features.patch
Block-leakage-of-urls-in-sandbox-iframes.patch Block-leakage-of-urls-in-sandbox-iframes.patch
Temporarily-disable-Tab-Group-Sync-Android.patch
Fix-chromium-build-bugs.patch Fix-chromium-build-bugs.patch
Try-to-fix-2082.patch Try-to-fix-2082.patch
Temp-use-PREVIEW-for-IDCompositionDevice5.patch
Temp-Backport-Fix-CtrlW-to-close-current-tab.patch
# adblock patches # adblock patches
eyeo-133.0.6943.49-base.patch eyeo-133.0.6943.49-base.patch
@@ -325,3 +328,7 @@ eyeo-133.0.6943.49-android_api.patch
eyeo-133.0.6943.49-android_settings.patch eyeo-133.0.6943.49-android_settings.patch
eyeo-133.0.6943.49-extension_api.patch eyeo-133.0.6943.49-extension_api.patch
Eyeo-Adblock-for-Cromite.patch Eyeo-Adblock-for-Cromite.patch
# extension patches
Experimental-support-for-extensions-on-Android.patch
Enable-extension-in-incognito.patch
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -236,6 +236,7 @@ import org.chromium.content_public.browser.LoadUrlParams; @@ -255,6 +255,7 @@ import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ContentSwitches; import org.chromium.content_public.common.ContentSwitches;
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintManagerDelegateImpl;
import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl; import org.chromium.printing.PrintingControllerImpl;
@@ -985,6 +986,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -1096,6 +1097,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
super.onStartWithNative(); super.onStartWithNative();
ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier());
@@ -40,42 +40,42 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -184,6 +184,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -196,6 +196,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedPerformanceStudy, &feed::kFeedPerformanceStudy,
&feed::kFeedShowSignInCommand,
&feed::kFeedSignedOutViewDemotion,
+ &kAllowUserCertificates,
&feed::kFeedRecyclerBinderUnmountOnDetach, &feed::kFeedRecyclerBinderUnmountOnDetach,
&feed::kFeedShowSignInCommand,
+ &kAllowUserCertificates,
&feed::kFeedSignedOutViewDemotion,
&feed::kInterestFeedV2, &feed::kInterestFeedV2,
&feed::kWebFeedAwareness, &feed::kWebFeedAwareness,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { @@ -166,6 +166,7 @@ public abstract class ChromeFeatureList {
"AccountForSuppressedKeyboardInsets"; "AccountForSuppressedKeyboardInsets";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
"AdaptiveButtonInTopToolbarCustomizationV2"; "AdaptiveButtonInTopToolbarCustomizationV2";
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY =
"AdaptiveButtonInTopToolbarPageSummary"; "AdaptiveButtonInTopToolbarPageSummary";
public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = public static final String ANDROID_ANIMATED_PROGRESS_BAR_IN_BROWSER =
@@ -768,6 +769,8 @@ public abstract class ChromeFeatureList { @@ -820,6 +821,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn =
newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false); newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false, true);
public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true);
+ public static final CachedFlag sAllowUserCertificates = + public static final CachedFlag sAllowUserCertificates =
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false); + newCachedFlag(ALLOW_USER_CERTIFICATES, false);
public static final CachedFlag sAppSpecificHistoryViewIntent = public static final CachedFlag sAppSpecificHistoryViewIntent =
newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true); newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true);
public static final CachedFlag sAsyncNotificationManager = public static final CachedFlag sAsyncNotificationManager =
@@ -1080,6 +1083,7 @@ public abstract class ChromeFeatureList { @@ -1136,6 +1139,7 @@ public abstract class ChromeFeatureList {
sAccountForSuppressedKeyboardInsets, sAccountForSuppressedKeyboardInsets,
sAllowTabClosingUponMinimization, sAndroidAnimatedProgressBarInBrowser,
sAndroidAppIntegration, sAndroidAnimatedProgressBarInViz,
+ sAllowUserCertificates, + sAllowUserCertificates,
sAndroidAppIntegrationModule, sAndroidAppIntegrationModule,
sAndroidAppIntegrationMultiDataSource, sAndroidAppIntegrationMultiDataSource,
sAndroidAppIntegrationV2, sAndroidAutoMintedTwa,
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j
public static AndroidCertVerifyResult verifyServerCertificates( public static AndroidCertVerifyResult verifyServerCertificates(
byte[][] certChain, byte[][] certChain,
String authType, String authType,
@@ -637,6 +639,9 @@ public class X509Util { @@ -639,6 +641,9 @@ public class X509Util {
X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); X509Certificate root = verifiedChain.get(verifiedChain.size() - 1);
isIssuedByKnownRoot = isKnownRoot(root); isIssuedByKnownRoot = isKnownRoot(root);
} }
@@ -4,21 +4,22 @@ Subject: Add Alt+D hotkey to focus address bar
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 5 +++++ .../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 6 ++++++
1 file changed, 5 insertions(+) 1 file changed, 6 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -890,6 +890,11 @@ public class KeyboardShortcuts { @@ -904,6 +904,12 @@ public class KeyboardShortcuts {
KeyEvent.KEYCODE_B, KeyEvent.KEYCODE_ESCAPE,
(KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)); KeyEvent.META_CTRL_ON);
} }
+ addShortcut(context, + addShortcut(context,
+ shortcutGroupsById.get(R.string.keyboard_shortcut_chrome_feature_group_header), + shortcutGroupsById,
+ R.string.keyboard_shortcut_address_bar, + R.string.keyboard_shortcut_chrome_feature_group_header,
+ KeyEvent.KEYCODE_D, + R.string.keyboard_shortcut_address_bar,
+ KeyEvent.META_ALT_ON); + KeyEvent.KEYCODE_D,
+ KeyEvent.META_ALT_ON);
return new ArrayList<>(shortcutGroupsById.values()); return new ArrayList<>(shortcutGroupsById.values());
} }
@@ -44,7 +44,7 @@ new file mode 100644
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc
@@ -408,6 +408,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) { @@ -400,6 +400,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
} }
} }
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/base/features.cc b/base/features.cc diff --git a/base/features.cc b/base/features.cc
--- a/base/features.cc --- a/base/features.cc
+++ b/base/features.cc +++ b/base/features.cc
@@ -149,6 +149,10 @@ bool IsReducePPMsEnabled() { @@ -200,6 +200,10 @@ bool IsReducePPMsEnabled() {
return g_is_reduce_ppms_enabled.load(std::memory_order_relaxed); return g_is_reduce_ppms_enabled.load(std::memory_order_relaxed);
} }
@@ -23,21 +23,21 @@ diff --git a/base/features.cc b/base/features.cc
+SET_CROMITE_FEATURE_DISABLED(kPartialLowEndModeOnMidRangeDevices); +SET_CROMITE_FEATURE_DISABLED(kPartialLowEndModeOnMidRangeDevices);
+#endif +#endif
+ +
void Init(EmitThreadControllerProfilerMetadata void Init() {
emit_thread_controller_profiler_metadata) {
g_is_reduce_ppms_enabled.store(FeatureList::IsEnabled(kReducePPMs), g_is_reduce_ppms_enabled.store(FeatureList::IsEnabled(kReducePPMs),
std::memory_order_relaxed);
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc
--- a/content/renderer/render_process_impl.cc --- a/content/renderer/render_process_impl.cc
+++ b/content/renderer/render_process_impl.cc +++ b/content/renderer/render_process_impl.cc
@@ -7,6 +7,7 @@ @@ -2,6 +2,7 @@
#pragma allow_unsafe_libc_calls // Use of this source code is governed by a BSD-style license that can be
#endif // found in the LICENSE file.
+#include "base/features.h" +#include "base/features.h"
#include "content/renderer/render_process_impl.h" #include "content/renderer/render_process_impl.h"
#include "build/build_config.h" #include "build/build_config.h"
@@ -127,10 +128,18 @@ RenderProcessImpl::RenderProcessImpl() @@ -122,10 +123,18 @@ RenderProcessImpl::RenderProcessImpl()
base::CommandLine::ForCurrentProcess()->HasSwitch( base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisallowV8FeatureFlagOverrides); switches::kDisallowV8FeatureFlagOverrides);
if (!disallow_v8_feature_flag_overrides) { if (!disallow_v8_feature_flag_overrides) {
@@ -27,13 +27,14 @@ diff --git a/chrome/android/expectations/expectations.gni b/chrome/android/expec
+enable_libs_and_assets_verification = enable_trybot_verification && +enable_libs_and_assets_verification = enable_trybot_verification &&
!enable_chrome_android_internal && !is_component_build && !enable_chrome_android_internal && !is_component_build &&
!use_jacoco_coverage && is_official_build && !use_jacoco_coverage && is_official_build &&
(target_cpu == "arm64" && android_channel == "stable") ((target_cpu == "arm64" || target_cpu == "x64") &&
@@ -15,6 +19,6 @@ enable_libs_and_assets_verification = @@ -16,7 +20,7 @@ enable_libs_and_assets_verification =
# use_jacoco_coverage: Adds proguard flags. # use_jacoco_coverage: Adds proguard flags.
# android_channel: Manifest entries vary based on channel. # android_channel: Manifest entries vary based on channel.
# target_cpu: android:versionCode varies. # target_cpu: android:versionCode varies.
-enable_manifest_verification = -enable_manifest_verification =
+enable_manifest_verification = enable_trybot_verification && +enable_manifest_verification = enable_trybot_verification &&
!is_java_debug && !enable_chrome_android_internal && !use_jacoco_coverage && !is_java_debug && !enable_chrome_android_internal && !use_jacoco_coverage &&
(target_cpu == "arm64" && android_channel == "stable") ((target_cpu == "arm64" || target_cpu == "x64") &&
android_channel == "stable")
-- --
@@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -8690,9 +8690,9 @@ @@ -9195,9 +9195,9 @@
"expiry_milestone": 150 "expiry_milestone": 150
}, },
{ {
@@ -28,11 +28,11 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
+ "expiry_milestone": -1 + "expiry_milestone": -1
}, },
{ {
"name": "retain-omnibox-on-focus", "name": "rewriter-api-for-gemini-nano",
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
@@ -258,6 +258,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { @@ -262,6 +262,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)},
{wf::EnablePeriodicBackgroundSync, {wf::EnablePeriodicBackgroundSync,
raw_ref(features::kPeriodicBackgroundSync)}, raw_ref(features::kPeriodicBackgroundSync)},
@@ -56,7 +56,7 @@ new file mode 100644
diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc
--- a/device/gamepad/public/cpp/gamepad_features.cc --- a/device/gamepad/public/cpp/gamepad_features.cc
+++ b/device/gamepad/public/cpp/gamepad_features.cc +++ b/device/gamepad/public/cpp/gamepad_features.cc
@@ -36,4 +36,12 @@ bool IsGamepadMultitouchEnabled() { @@ -53,4 +53,12 @@ bool IsGamepadMultitouchEnabled() {
return false; return false;
} }
@@ -72,12 +72,17 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/publ
diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/public/cpp/gamepad_features.h diff --git a/device/gamepad/public/cpp/gamepad_features.h b/device/gamepad/public/cpp/gamepad_features.h
--- a/device/gamepad/public/cpp/gamepad_features.h --- a/device/gamepad/public/cpp/gamepad_features.h
+++ b/device/gamepad/public/cpp/gamepad_features.h +++ b/device/gamepad/public/cpp/gamepad_features.h
@@ -13,8 +13,10 @@ namespace features { @@ -17,6 +17,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch);
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(
kEnableWindowsGamingInputDataFetcher); kEnableSimulatedGamepadDataFetcher);
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch); GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kGamepadRawInputChangeEvent);
+GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess); +GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess);
#if BUILDFLAG(IS_WIN)
GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kIgnorePS5GamepadsInWgi);
@@ -27,6 +28,7 @@ GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kAllowlistHidrawGamepads);
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled(); GAMEPAD_FEATURES_EXPORT bool IsGamepadMultitouchEnabled();
+GAMEPAD_FEATURES_EXPORT bool IsRestrictGamepadAccessEnabled(); +GAMEPAD_FEATURES_EXPORT bool IsRestrictGamepadAccessEnabled();
@@ -91,10 +96,10 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
#include "base/auto_reset.h" #include "base/auto_reset.h"
#include "device/gamepad/public/cpp/gamepads.h" #include "device/gamepad/public/cpp/gamepads.h"
+#include "device/gamepad/public/cpp/gamepad_features.h" +#include "device/gamepad/public/cpp/gamepad_features.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h" #include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
@@ -114,6 +115,9 @@ void RecordGamepadsForIdentifiabilityStudy( #include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_gamepad_mapping_type.h"
@@ -86,6 +87,9 @@ NavigatorGamepad& NavigatorGamepad::From(Navigator& navigator) {
HeapVector<Member<Gamepad>> NavigatorGamepad::getGamepads( HeapVector<Member<Gamepad>> NavigatorGamepad::getGamepads(
Navigator& navigator, Navigator& navigator,
ExceptionState& exception_state) { ExceptionState& exception_state) {
@@ -104,10 +109,10 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
if (!navigator.DomWindow()) { if (!navigator.DomWindow()) {
// Using an existing NavigatorGamepad if one exists, but don't create one // Using an existing NavigatorGamepad if one exists, but don't create one
// for a detached window, as its subclasses depend on a non-null window. // for a detached window, as its subclasses depend on a non-null window.
@@ -420,6 +424,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { @@ -428,6 +432,8 @@ void NavigatorGamepad::MaybeDispatchGamepadEvents(
void NavigatorGamepad::DispatchGamepadConnectionChangedEvent(
void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name, const AtomicString& event_name,
Gamepad* gamepad) { Gamepad* gamepad) {
+ if (::features::IsRestrictGamepadAccessEnabled()) + if (::features::IsRestrictGamepadAccessEnabled())
+ return; + return;
// Ensure that we're blocking re-entrancy. // Ensure that we're blocking re-entrancy.
@@ -10,6 +10,7 @@ this implementation is the same as the one in ChromeOS which gets proxy informat
for the system network context; this is strictly not correct on Android because the network context is for the system network context; this is strictly not correct on Android because the network context is
never connected to any user profile and only gets proxy information from the system. never connected to any user profile and only gets proxy information from the system.
Existing settings on Profile are migrated to LocalState on startup. Existing settings on Profile are migrated to LocalState on startup.
Enable the support for multiple proxy chain via the bracketed [] sintax
Credits to @uazo for the LocalState integration. Credits to @uazo for the LocalState integration.
@@ -38,10 +39,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../proxy_config/proxy_config_dictionary.cc | 30 +- .../proxy_config/proxy_config_dictionary.cc | 30 +-
.../proxy_config/proxy_config_dictionary.h | 7 +- .../proxy_config/proxy_config_dictionary.h | 7 +-
.../proxy_config/proxy_policy_handler.cc | 2 +- .../proxy_config/proxy_policy_handler.cc | 2 +-
net/features.gni | 2 +-
net/proxy_resolution/pac_file_fetcher_impl.cc | 8 - net/proxy_resolution/pac_file_fetcher_impl.cc | 8 -
net/proxy_resolution/proxy_config.cc | 53 ++- net/proxy_resolution/proxy_config.cc | 53 ++-
net/proxy_resolution/proxy_config.h | 3 + net/proxy_resolution/proxy_config.h | 3 +
26 files changed, 986 insertions(+), 26 deletions(-) 27 files changed, 987 insertions(+), 27 deletions(-)
create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.css
create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.html
create mode 100644 chrome/browser/resources/proxy_config.js create mode 100644 chrome/browser/resources/proxy_config.js
@@ -78,7 +80,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -100,6 +100,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -102,6 +102,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection";
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
@@ -89,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -376,6 +376,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { @@ -411,6 +411,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); builtins_to_provide.push_back(chrome::kChromeUISettingsURL16);
#endif #endif
builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); builtins_to_provide.push_back(chrome::kChromeUIVersionURL16);
@@ -100,9 +102,9 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
--- a/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd
@@ -226,6 +226,9 @@ @@ -239,6 +239,9 @@
<if expr="_google_chrome">
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" /> <include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" />
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
</if> </if>
+ <!-- Bromite Proxy Configuration UI --> + <!-- Bromite Proxy Configuration UI -->
+ <include name="IDR_PROXY_CONFIG_HTML" file="resources\proxy_config.html" flattenhtml="true" type="BINDATA" compress="gzip" /> + <include name="IDR_PROXY_CONFIG_HTML" file="resources\proxy_config.html" flattenhtml="true" type="BINDATA" compress="gzip" />
@@ -113,7 +115,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
@@ -372,7 +372,7 @@ std::optional<base::Value::Dict> CreateProxyConfigDict( @@ -375,7 +375,7 @@ std::optional<base::Value::Dict> CreateProxyConfigDict(
return std::nullopt; return std::nullopt;
} }
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string, return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
@@ -197,7 +199,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -204,6 +204,8 @@ @@ -212,6 +212,8 @@
#include "printing/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h"
#include "rlz/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h"
@@ -206,7 +208,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#if BUILDFLAG(ENABLE_BACKGROUND_MODE) #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/extensions/background_mode_manager.h" #include "chrome/browser/background/extensions/background_mode_manager.h"
#endif #endif
@@ -1605,6 +1607,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { @@ -1314,6 +1316,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);
@@ -661,7 +663,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -169,6 +169,8 @@ static_library("ui") { @@ -158,6 +158,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h", "webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc", "webui/net_export_ui.cc",
"webui/net_export_ui.h", "webui/net_export_ui.h",
@@ -673,7 +675,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -58,6 +58,9 @@ @@ -59,6 +59,9 @@
#include "extensions/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h"
#include "printing/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h"
@@ -683,7 +685,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u
#if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER)
#include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h"
#endif #endif
@@ -422,7 +425,7 @@ void RegisterChromeWebUIConfigs() { @@ -438,7 +441,7 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(std::make_unique<glic::GlicUIConfig>()); map.AddWebUIConfig(std::make_unique<glic::GlicUIConfig>());
map.AddWebUIConfig(std::make_unique<glic::GlicFreUIConfig>()); map.AddWebUIConfig(std::make_unique<glic::GlicFreUIConfig>());
#endif #endif
@@ -1135,7 +1137,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,7 @@ bool IsSystemWebUIHost(std::string_view host) { @@ -53,6 +53,7 @@ bool IsSystemWebUIHost(std::string_view host) {
kChromeUILockScreenNetworkHost, kChromeUILockScreenNetworkHost,
kChromeUILockScreenStartReauthHost, kChromeUILockScreenStartReauthHost,
kChromeUIMobileSetupHost, kChromeUIMobileSetupHost,
@@ -1143,7 +1145,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
kChromeUIMultiDeviceSetupHost, kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost, kChromeUINetworkHost,
kChromeUINotificationTesterHost, kChromeUINotificationTesterHost,
@@ -71,6 +72,7 @@ bool IsSystemWebUIHost(std::string_view host) { @@ -74,6 +75,7 @@ bool IsSystemWebUIHost(std::string_view host) {
// These hosts will also be suggested by BuiltinProvider. // These hosts will also be suggested by BuiltinProvider.
base::span<const base::cstring_view> ChromeURLHosts() { base::span<const base::cstring_view> ChromeURLHosts() {
static constexpr auto kChromeURLHosts = std::to_array<base::cstring_view>({ static constexpr auto kChromeURLHosts = std::to_array<base::cstring_view>({
@@ -1154,7 +1156,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
@@ -188,6 +188,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; @@ -197,6 +197,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals";
inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/";
inline constexpr char kChromeUINewTabHost[] = "newtab"; inline constexpr char kChromeUINewTabHost[] = "newtab";
inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer"; inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer";
@@ -1166,24 +1168,25 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc
--- a/components/proxy_config/pref_proxy_config_tracker_impl.cc --- a/components/proxy_config/pref_proxy_config_tracker_impl.cc
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc +++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
@@ -253,14 +253,14 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig( @@ -550,7 +550,7 @@ PrefProxyConfigTrackerImpl::GetEffectiveProxyConfig(
// static // static
void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) { void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterDictionaryPref(proxy_config::prefs::kProxy, registry->RegisterDictionaryPref(proxy_config::prefs::kProxy,
- ProxyConfigDictionary::CreateSystem()); - ProxyConfigDictionary::CreateSystem());
+ ProxyConfigDictionary::CreateDirect()); + ProxyConfigDictionary::CreateDirect());
} registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules);
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
// static registry->RegisterIntegerPref(
@@ -562,7 +562,7 @@ void PrefProxyConfigTrackerImpl::RegisterPrefs(PrefRegistrySimple* registry) {
void PrefProxyConfigTrackerImpl::RegisterProfilePrefs( void PrefProxyConfigTrackerImpl::RegisterProfilePrefs(
PrefRegistrySimple* registry) { PrefRegistrySimple* registry) {
registry->RegisterDictionaryPref(proxy_config::prefs::kProxy, registry->RegisterDictionaryPref(proxy_config::prefs::kProxy,
- ProxyConfigDictionary::CreateSystem()); - ProxyConfigDictionary::CreateSystem());
+ ProxyConfigDictionary::CreateDirect()); + ProxyConfigDictionary::CreateDirect());
registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false); registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false);
} registry->RegisterListPref(proxy_config::prefs::kProxyOverrideRules);
#if !BUILDFLAG(IS_CHROMEOS)
@@ -405,6 +405,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( @@ -716,6 +716,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(
if (proxy_dict.GetBypassList(&proxy_bypass)) { if (proxy_dict.GetBypassList(&proxy_bypass)) {
proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass); proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass);
} }
@@ -1196,7 +1199,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
+++ b/components/proxy_config/proxy_config_dictionary.cc +++ b/components/proxy_config/proxy_config_dictionary.cc
@@ -30,6 +30,8 @@ const char kProxyPacMandatory[] = "pac_mandatory"; @@ -30,6 +30,8 @@ const char kProxyPacMandatory[] = "pac_mandatory";
// String containing proxy bypass rules. For a specification of the // String containing proxy bypass rules. For a specification of the
// expected syntax see net::ProxyBypassRules::ParseFromString(). // expected syntax see net::ProxyHostMatchingRules::ParseFromString().
const char kProxyBypassList[] = "bypass_list"; const char kProxyBypassList[] = "bypass_list";
+// Boolean telling whether to reverse the meaning of the bypass list. +// Boolean telling whether to reverse the meaning of the bypass list.
+const char kProxyReverseBypass[] = "reverse_bypass"; +const char kProxyReverseBypass[] = "reverse_bypass";
@@ -1329,6 +1332,18 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_
} }
break; break;
} }
diff --git a/net/features.gni b/net/features.gni
--- a/net/features.gni
+++ b/net/features.gni
@@ -62,7 +62,7 @@ declare_args() {
# Bracketed URIs parsing is only available for debug builds.
# TODO(crbug.com/365771838): Ensure tests are updated if needed if this
# feature is changed at all.
- enable_bracketed_proxy_uris = is_debug
+ enable_bracketed_proxy_uris = true
# General QUIC proxy support is only available for debug builds.
# TODO(crbug.com/367400641): If flag is changed or removed, ensure all
diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc
--- a/net/proxy_resolution/pac_file_fetcher_impl.cc --- a/net/proxy_resolution/pac_file_fetcher_impl.cc
+++ b/net/proxy_resolution/pac_file_fetcher_impl.cc +++ b/net/proxy_resolution/pac_file_fetcher_impl.cc
@@ -1420,7 +1435,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_config.h diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_config.h
--- a/net/proxy_resolution/proxy_config.h --- a/net/proxy_resolution/proxy_config.h
+++ b/net/proxy_resolution/proxy_config.h +++ b/net/proxy_resolution/proxy_config.h
@@ -107,6 +107,9 @@ class NET_EXPORT ProxyConfig { @@ -106,6 +106,9 @@ class NET_EXPORT ProxyConfig {
void ParseFromString(std::string_view proxy_rules, void ParseFromString(std::string_view proxy_rules,
bool allow_bracketed_proxy_chains = false, bool allow_bracketed_proxy_chains = false,
bool is_quic_allowed = false); bool is_quic_allowed = false);
File diff suppressed because it is too large Load Diff
@@ -164,7 +164,7 @@ new file mode 100644
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
+import org.chromium.components.content_settings.ContentSettingValues; +import org.chromium.components.content_settings.ContentSetting;
+import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.content_public.browser.BrowserContextHandle;
+ +
@@ -177,8 +177,8 @@ new file mode 100644
+public class BromiteAutoplayContentSetting extends BromiteCustomContentSetting { +public class BromiteAutoplayContentSetting extends BromiteCustomContentSetting {
+ public BromiteAutoplayContentSetting() { + public BromiteAutoplayContentSetting() {
+ super(/*contentSettingsType*/ ContentSettingsType.AUTOPLAY, + super(/*contentSettingsType*/ ContentSettingsType.AUTOPLAY,
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, + /*defaultEnabledValue*/ ContentSetting.ALLOW,
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, + /*defaultDisabledValue*/ ContentSetting.BLOCK,
+ /*allowException*/ true, + /*allowException*/ true,
+ /*preferenceKey*/ "autoplay", + /*preferenceKey*/ "autoplay",
+ /*profilePrefKey*/ "autoplay"); + /*profilePrefKey*/ "autoplay");
@@ -197,11 +197,11 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { + public int getCategorySummary(@Nullable @ContentSetting int value) {
+ switch (value) { + switch (value) {
+ case ContentSettingValues.ALLOW: + case ContentSetting.ALLOW:
+ return R.string.website_settings_category_autoplay_enabled; + return R.string.website_settings_category_autoplay_enabled;
+ case ContentSettingValues.BLOCK: + case ContentSetting.BLOCK:
+ return R.string.website_settings_category_autoplay_disabled; + return R.string.website_settings_category_autoplay_disabled;
+ default: + default:
+ return 0; + return 0;
@@ -229,8 +229,8 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { + public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
+ return value != ContentSettingValues.BLOCK; + return value != ContentSetting.BLOCK;
+ } + }
+} +}
diff --git a/components/browser_ui/strings/bromite_content_settings/autoplay.grdp b/components/browser_ui/strings/bromite_content_settings/autoplay.grdp diff --git a/components/browser_ui/strings/bromite_content_settings/autoplay.grdp b/components/browser_ui/strings/bromite_content_settings/autoplay.grdp
@@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
if (!IsLockedPendingUserGesture()) if (!IsLockedPendingUserGesture())
return false; return false;
@@ -458,6 +461,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { @@ -457,6 +460,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
} }
} }
@@ -14,10 +14,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/android/java/AndroidManifest.xml | 1 - chrome/android/java/AndroidManifest.xml | 1 -
.../menu/bookmark_toolbar_menu_improved.xml | 14 + .../menu/bookmark_toolbar_menu_improved.xml | 14 +
.../browser/TabbedModeTabDelegateFactory.java | 5 +- .../browser/TabbedModeTabDelegateFactory.java | 5 +-
.../app/bookmarks/BookmarkActivity.java | 31 ++ .../app/bookmarks/BookmarkActivity.java | 32 ++
.../native_page/NativePageFactory.java | 9 +- .../native_page/NativePageFactory.java | 9 +-
chrome/browser/BUILD.gn | 11 +- chrome/browser/BUILD.gn | 11 +-
.../bookmarks/android/bookmark_bridge.cc | 197 ++++++++++++ .../bookmarks/android/bookmark_bridge.cc | 193 ++++++++++++
.../bookmarks/android/bookmark_bridge.h | 30 +- .../bookmarks/android/bookmark_bridge.h | 30 +-
.../browser/bookmarks/BookmarkBridge.java | 39 +++ .../browser/bookmarks/BookmarkBridge.java | 39 +++
.../browser/bookmarks/BookmarkDelegate.java | 10 + .../browser/bookmarks/BookmarkDelegate.java | 10 +
@@ -51,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.cc | 4 +
ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_linux.h | 2 +
ui/shell_dialogs/select_file_dialog_win.cc | 5 + ui/shell_dialogs/select_file_dialog_win.cc | 5 +
40 files changed, 809 insertions(+), 24 deletions(-) 40 files changed, 806 insertions(+), 24 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc
@@ -65,8 +65,8 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/> - <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/> <uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
<uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<!-- Needed for allowing downloaded APKs to be installed. -->
diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
--- a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml --- a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
+++ b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml +++ b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
@@ -94,25 +94,25 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
@@ -13,6 +13,7 @@ import org.chromium.base.jank_tracker.JankTracker; @@ -10,6 +10,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
+import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
import org.chromium.chrome.browser.back_press.BackPressManager;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -61,7 +62,7 @@ import java.util.function.Supplier;
@@ -60,7 +61,7 @@ import java.util.List;
* ChromeTabbedActivity}.
*/ */
@NullMarked
public class TabbedModeTabDelegateFactory implements TabDelegateFactory { public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
- private final Activity mActivity; - private final Activity mActivity;
+ private final ChromeActivity mActivity; + private final ChromeActivity mActivity;
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate; private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier; private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier; private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
@@ -91,7 +92,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { @@ -93,7 +94,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private NativePageFactory mNativePageFactory; private final MultiInstanceManager mMultiInstanceManager;
public TabbedModeTabDelegateFactory( public TabbedModeTabDelegateFactory(
- Activity activity, - Activity activity,
@@ -123,15 +123,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
@@ -9,6 +9,7 @@ import static org.chromium.build.NullUtil.assumeNonNull; @@ -6,6 +6,8 @@ package org.chromium.chrome.browser.app.bookmarks;
import static org.chromium.build.NullUtil.assumeNonNull;
+import android.os.Bundle;
+
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.text.TextUtils; import android.text.TextUtils;
+import android.os.Bundle; @@ -35,6 +37,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.base.IntentUtils;
import org.chromium.build.annotations.NullMarked;
@@ -32,6 +33,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
@@ -141,9 +142,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
/** /**
* The activity that displays the bookmark UI on the phone. It keeps a {@link * The activity that displays the bookmark UI on the phone. It keeps a {@link
* BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should * BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should
@@ -46,6 +50,9 @@ public class BookmarkActivity extends SnackbarActivity { @@ -50,6 +55,9 @@ public class BookmarkActivity extends SnackbarActivity {
private @Nullable BookmarkManagerCoordinator mBookmarkManagerCoordinator;
private @Nullable BookmarkOpener mBookmarkOpener; private @Nullable BookmarkOpener mBookmarkOpener;
private @Nullable OnKeyDownHandler mOnKeyDownHandler;
+ private ActivityWindowAndroid mWindowAndroid; + private ActivityWindowAndroid mWindowAndroid;
+ private IntentRequestTracker mIntentRequestTracker; + private IntentRequestTracker mIntentRequestTracker;
@@ -151,10 +152,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override @Override
protected void onProfileAvailable(Profile profile) { protected void onProfileAvailable(Profile profile) {
super.onProfileAvailable(profile); super.onProfileAvailable(profile);
@@ -73,6 +80,14 @@ public class BookmarkActivity extends SnackbarActivity { @@ -82,6 +90,14 @@ public class BookmarkActivity extends SnackbarActivity {
mBookmarkManagerCoordinator.updateForUrl(url); mOnKeyDownHandler =
setContentView(mBookmarkManagerCoordinator.getView()); BackPressHelper.create(
BackPressHelper.create(this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator);
+ +
+ final boolean listenToActivityState = true; + final boolean listenToActivityState = true;
+ mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); + mIntentRequestTracker = IntentRequestTracker.createFromActivity(this);
@@ -166,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
} }
@Override @Override
@@ -91,6 +106,7 @@ public class BookmarkActivity extends SnackbarActivity { @@ -109,6 +125,7 @@ public class BookmarkActivity extends SnackbarActivity {
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
@@ -174,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
assumeNonNull(data); assumeNonNull(data);
BookmarkId bookmarkId = BookmarkId bookmarkId =
@@ -100,6 +116,21 @@ public class BookmarkActivity extends SnackbarActivity { @@ -118,6 +135,21 @@ public class BookmarkActivity extends SnackbarActivity {
} }
} }
@@ -199,33 +200,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -19,6 +19,7 @@ import org.chromium.base.supplier.ObservableSupplier; @@ -26,6 +26,7 @@ import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked;
import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R; import org.chromium.chrome.R;
+import org.chromium.chrome.browser.app.ChromeActivity; +import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.back_press.BackPressManager;
import org.chromium.chrome.browser.bookmarks.BookmarkPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; @@ -79,7 +80,7 @@ import java.util.function.Supplier;
@@ -63,7 +64,7 @@ import org.chromium.ui.util.ColorUtils;
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
*/ */
@NullMarked
public class NativePageFactory { public class NativePageFactory {
- private final Activity mActivity; - private final Activity mActivity;
+ private final ChromeActivity mActivity; + private final ChromeActivity mActivity;
private final BottomSheetController mBottomSheetController; private final BottomSheetController mBottomSheetController;
private final BrowserControlsManager mBrowserControlsManager; private final BrowserControlsManager mBrowserControlsManager;
private final Supplier<Tab> mCurrentTabSupplier; private final Supplier<@Nullable Tab> mCurrentTabSupplier;
@@ -87,7 +88,7 @@ public class NativePageFactory { @@ -104,7 +105,7 @@ public class NativePageFactory {
private static NativePage sTestPage; private final MultiInstanceManager mMultiInstanceManager;
public NativePageFactory( public NativePageFactory(
- @NonNull Activity activity, - Activity activity,
+ @NonNull ChromeActivity activity, + ChromeActivity activity,
@NonNull BottomSheetController sheetController, BottomSheetController sheetController,
@NonNull BrowserControlsManager browserControlsManager, BrowserControlsManager browserControlsManager,
@NonNull Supplier<Tab> currentTabSupplier, Supplier<@Nullable Tab> currentTabSupplier,
@@ -162,7 +163,7 @@ public class NativePageFactory { @@ -182,7 +183,7 @@ public class NativePageFactory {
@VisibleForTesting @VisibleForTesting
static class NativePageBuilder { static class NativePageBuilder {
@@ -234,20 +235,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController; private final BottomSheetController mBottomSheetController;
private final Supplier<NewTabPageCreationTracker> mNewTabPageCreationTracker; private final Supplier<NewTabPageCreationTracker> mNewTabPageCreationTracker;
private final BrowserControlsManager mBrowserControlsManager; private final BrowserControlsManager mBrowserControlsManager;
@@ -271,7 +272,7 @@ public class NativePageFactory { @@ -299,7 +300,7 @@ public class NativePageFactory {
mBrowserControlsManager,
mTabModelSelector, mTabModelSelector,
mEdgeToEdgeControllerSupplier), mEdgeToEdgeControllerSupplier),
- mActivity.getComponentName()); mActivity.getComponentName(),
+ mActivity.getComponentName(), mActivity); - mBackPressManager);
+ mBackPressManager, mActivity);
} }
protected NativePage buildDownloadsPage(Tab tab) { protected NativePage buildDownloadsPage(Tab tab) {
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -245,6 +245,8 @@ static_library("browser") { @@ -207,6 +207,8 @@ static_library("browser") {
"bluetooth/chrome_bluetooth_delegate_impl_client.h", "bad_message.h",
"bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.cc",
"bookmarks/bookmark_model_factory.h", "bookmarks/bookmark_model_factory.h",
+ "bookmarks/bookmark_html_writer.cc", + "bookmarks/bookmark_html_writer.cc",
@@ -255,9 +256,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.cc",
"bookmarks/chrome_bookmark_client.h", "bookmarks/chrome_bookmark_client.h",
"bookmarks/managed_bookmark_service_factory.cc", "bookmarks/managed_bookmark_service_factory.cc",
@@ -1721,6 +1723,13 @@ static_library("browser") { @@ -1573,6 +1575,13 @@ static_library("browser") {
] "webdata_services/web_data_service_factory.cc",
} ]
+ if (is_android) { + if (is_android) {
+ sources += [ + sources += [
@@ -269,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [ configs += [
"//build/config/compiler:wexit_time_destructors", "//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers", "//build/config:precompiled_headers",
@@ -3704,8 +3713,6 @@ static_library("browser") { @@ -3733,8 +3742,6 @@ static_library("browser") {
"bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker.h",
"bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.cc",
"bookmarks/bookmark_expanded_state_tracker_factory.h", "bookmarks/bookmark_expanded_state_tracker_factory.h",
@@ -281,7 +282,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
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
@@ -68,6 +68,28 @@ @@ -64,6 +64,28 @@
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "url/gurl.h" #include "url/gurl.h"
@@ -310,7 +311,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
// Must come after all headers that specialize FromJniType() / ToJniType(). // Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/browser/bookmarks/android/jni_headers/BookmarkBridge_jni.h" #include "chrome/browser/bookmarks/android/jni_headers/BookmarkBridge_jni.h"
@@ -296,6 +318,10 @@ BookmarkBridge::~BookmarkBridge() { @@ -292,6 +314,10 @@ BookmarkBridge::~BookmarkBridge() {
partner_bookmarks_shim_observation_.Reset(); partner_bookmarks_shim_observation_.Reset();
bookmark_model_observation_.Reset(); bookmark_model_observation_.Reset();
profile_observation_.Reset(); profile_observation_.Reset();
@@ -321,7 +322,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
} }
void BookmarkBridge::Destroy(JNIEnv* env) { void BookmarkBridge::Destroy(JNIEnv* env) {
@@ -847,6 +873,177 @@ jint BookmarkBridge::GetTotalBookmarkCount( @@ -843,6 +869,173 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count; return count;
} }
@@ -448,13 +449,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
+ return ""; + return "";
+ } + }
+ +
+ if (fileLength > 10 * 1024 * 1024) {
+ select_file_dialog_->ShowToast("Bookmark file is bigger than 10MB");
+ return "";
+ }
+
+ std::vector<char> buffer(fileLength); + std::vector<char> buffer(fileLength);
+ if (-1 == file.ReadAtCurrentPos(buffer.data(), fileLength)) { + base::span<uint8_t> buffer_span = base::as_writable_byte_span(buffer);
+ if (-1 == file.ReadAtCurrentPos(buffer_span)) {
+ select_file_dialog_->ShowToast("Could not read bookmarks file"); + select_file_dialog_->ShowToast("Could not read bookmarks file");
+ return ""; + return "";
+ } + }
@@ -681,16 +678,16 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
@@ -57,6 +57,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; @@ -57,6 +57,8 @@ import org.chromium.components.image_fetcher.ImageFetcherConfig;
import org.chromium.components.image_fetcher.ImageFetcherConfig;
import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.components.image_fetcher.ImageFetcherFactory;
import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.KeyboardVisibilityDelegate;
import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster;
+import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.base.ActivityWindowAndroid;
+import org.chromium.ui.modaldialog.ModalDialogManager; +import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
@@ -333,6 +335,13 @@ public class BookmarkManagerCoordinator @@ -344,6 +346,13 @@ public class BookmarkManagerCoordinator
// Public API implementation. // Public API implementation.
@@ -714,9 +711,9 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
+import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.base.ActivityWindowAndroid;
+import org.chromium.ui.modaldialog.ModalDialogManager; +import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.accessibility.AccessibilityState;
import org.chromium.ui.listmenu.ListMenu; import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.listmenu.ListMenuItemProperties; import org.chromium.ui.base.DeviceInput;
@@ -81,6 +83,47 @@ import java.util.function.BooleanSupplier; @@ -84,6 +86,47 @@ import java.util.function.BooleanSupplier;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Predicate; import java.util.function.Predicate;
@@ -764,7 +761,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** Responsible for BookmarkManager business logic. */ /** Responsible for BookmarkManager business logic. */
// TODO(crbug.com/40256938): Remove BookmarkDelegate if possible. // TODO(crbug.com/40256938): Remove BookmarkDelegate if possible.
@NullMarked @NullMarked
@@ -91,6 +134,9 @@ class BookmarkManagerMediator @@ -94,6 +137,9 @@ class BookmarkManagerMediator
private static boolean sPreventLoadingForTesting; private static boolean sPreventLoadingForTesting;
@@ -774,7 +771,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** Keeps track of whether drag is enabled / active for bookmark lists. */ /** Keeps track of whether drag is enabled / active for bookmark lists. */
private class BookmarkDragStateDelegate implements DragStateDelegate { private class BookmarkDragStateDelegate implements DragStateDelegate {
private BookmarkDelegate mBookmarkDelegate; private BookmarkDelegate mBookmarkDelegate;
@@ -597,6 +643,14 @@ class BookmarkManagerMediator @@ -646,6 +692,14 @@ class BookmarkManagerMediator
mNativePage = nativePage; mNativePage = nativePage;
} }
@@ -789,7 +786,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** See BookmarkManager(Coordinator)#updateForUrl */ /** See BookmarkManager(Coordinator)#updateForUrl */
void updateForUrl(String url) { void updateForUrl(String url) {
// Bookmark model is null if the manager has been destroyed. // Bookmark model is null if the manager has been destroyed.
@@ -769,6 +823,235 @@ class BookmarkManagerMediator @@ -818,6 +872,235 @@ class BookmarkManagerMediator
} }
} }
@@ -1028,7 +1025,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
@@ -15,6 +15,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; @@ -16,6 +16,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.native_page.BasicNativePage; import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.chrome.browser.ui.native_page.NativePageHost;
import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.embedder_support.util.UrlConstants;
@@ -1038,26 +1035,26 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/** A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. */ /** A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. */
@NullMarked @NullMarked
@@ -35,7 +38,8 @@ public class BookmarkPage extends BasicNativePage { @@ -37,7 +40,8 @@ public class BookmarkPage extends BasicNativePage {
SnackbarManager snackbarManager,
Profile profile, Profile profile,
NativePageHost host, NativePageHost host,
- @Nullable ComponentName componentName) { @Nullable ComponentName componentName,
+ @Nullable ComponentName componentName, - BackPressManager backPressManager) {
+ BackPressManager backPressManager,
+ ChromeActivity activity) { + ChromeActivity activity) {
super(host); super(host);
mTitle = host.getContext().getString(R.string.bookmarks);
@@ -56,6 +60,9 @@ public class BookmarkPage extends BasicNativePage { mTitle = host.getContext().getString(R.string.bookmarks);
PriceDropNotificationManagerFactory.create(profile), @@ -65,6 +69,9 @@ public class BookmarkPage extends BasicNativePage {
host::createEdgeToEdgePadAdjuster); backPressManager);
mBookmarkManagerCoordinator.setBasicNativePage(this); mBookmarkManagerCoordinator.setBasicNativePage(this);
+ mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(),
+ new ModalDialogManager( + new ModalDialogManager(
+ new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP)); + new AppModalPresenter(activity), ModalDialogManager.ModalDialogType.APP));
initWithView(mBookmarkManagerCoordinator.getView()); initWithView(mBookmarkManagerCoordinator.getView());
}
setBackPressHandler(mBookmarkManagerCoordinator, backPressManager);
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
@@ -1250,20 +1247,20 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
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
@@ -251,6 +251,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kBatchTabRestore, &kAuxiliarySearchHistoryDonation,
&kBlockIntentsWhileLocked, &kBlockIntentsWhileLocked,
&kBookmarkPaneAndroid, &kBookmarkPaneAndroid,
+ &kBookmarksExportUseSaf, + &kBookmarksExportUseSaf,
&kBrowserControlsDebugging, &kBrowserControlsDebugging,
&kBrowserControlsEarlyResize, &kBrowserControlsEarlyResize,
&kCacheActivityTaskID, &kBrowserControlsRenderDrivenShowConstraint,
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
@@ -689,6 +689,7 @@ public abstract class ChromeFeatureList { @@ -713,6 +713,7 @@ public abstract class ChromeFeatureList {
public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID =
"UseLibunwindstackNativeUnwinderAndroid"; "UseLibunwindstackNativeUnwinderAndroid";
public static final String VERIFY_QWACS = "VerifyQWACs";
public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService";
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend"; public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend";
@@ -1324,7 +1321,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/** Whether Chrome is set as the default browser. Default value is false. */ /** Whether Chrome is set as the default browser. Default value is false. */
public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser";
@@ -1017,6 +1019,7 @@ public final class ChromePreferenceKeys { @@ -1125,6 +1127,7 @@ public final class ChromePreferenceKeys {
AUXILIARY_SEARCH_SCHEMA_VERSION, AUXILIARY_SEARCH_SCHEMA_VERSION,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1335,7 +1332,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
@@ -249,6 +249,24 @@ CHAR_LIMIT guidelines: @@ -264,6 +264,24 @@ CHAR_LIMIT guidelines:
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]"> <message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
Sites Sites
</message> </message>
@@ -1363,7 +1360,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
--- a/chrome/utility/BUILD.gn --- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn
@@ -222,6 +222,13 @@ static_library("utility") { @@ -211,6 +211,13 @@ static_library("utility") {
deps += [ "//chrome/services/pdf:lib" ] deps += [ "//chrome/services/pdf:lib" ]
} }
@@ -1410,7 +1407,7 @@ diff --git a/components/headless/select_file_dialog/headless_select_file_dialog.
diff --git a/components/user_data_importer/content/content_bookmark_parser_utils.cc b/components/user_data_importer/content/content_bookmark_parser_utils.cc diff --git a/components/user_data_importer/content/content_bookmark_parser_utils.cc b/components/user_data_importer/content/content_bookmark_parser_utils.cc
--- a/components/user_data_importer/content/content_bookmark_parser_utils.cc --- a/components/user_data_importer/content/content_bookmark_parser_utils.cc
+++ b/components/user_data_importer/content/content_bookmark_parser_utils.cc +++ b/components/user_data_importer/content/content_bookmark_parser_utils.cc
@@ -89,6 +89,7 @@ std::optional<base::Time> GetTimeAttribute(const std::string& attribute_list, @@ -138,6 +138,7 @@ std::optional<bool> GetBoolAttribute(std::string_view attribute_list,
// Given the URL of a page and a favicon data URL, adds an appropriate record // Given the URL of a page and a favicon data URL, adds an appropriate record
// to the given favicon usage vector. // to the given favicon usage vector.
@@ -1418,7 +1415,7 @@ diff --git a/components/user_data_importer/content/content_bookmark_parser_utils
void DataURLToFaviconUsage(const GURL& link_url, void DataURLToFaviconUsage(const GURL& link_url,
const GURL& favicon_data, const GURL& favicon_data,
favicon_base::FaviconUsageDataList* favicons) { favicon_base::FaviconUsageDataList* favicons) {
@@ -438,9 +439,11 @@ BookmarkParser::ParsedBookmarks ParseBookmarksUnsafe( @@ -495,9 +496,11 @@ BookmarkParser::ParsedBookmarks ParseBookmarksUnsafe(
} }
parsing_result.bookmarks.push_back(std::move(entry)); parsing_result.bookmarks.push_back(std::move(entry));
@@ -1573,8 +1570,8 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
--- a/ui/shell_dialogs/select_file_dialog_android.cc --- a/ui/shell_dialogs/select_file_dialog_android.cc
+++ b/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc
@@ -171,6 +171,12 @@ void SelectFileDialogImpl::SelectFileImpl(Type type, @@ -196,6 +196,12 @@ void SelectFileDialogImpl::SelectFileImpl(Type type,
owning_window->GetJavaObject()); suggested_name.value(), owning_window->GetJavaObject());
} }
+void SelectFileDialogImpl::ShowToast(const std::string& message) { +void SelectFileDialogImpl::ShowToast(const std::string& message) {
@@ -1627,7 +1624,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_linux.h b/ui/shell_dialogs/sele
diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc 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 --- a/ui/shell_dialogs/select_file_dialog_win.cc
+++ b/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, @@ -192,6 +192,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog,
int index); int index);
bool HasMultipleFileTypeChoicesImpl() override; bool HasMultipleFileTypeChoicesImpl() override;
@@ -1635,7 +1632,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/selec
// Returns the filter to be used while displaying the open/save file dialog. // 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. // This is computed from the extensions for the file types being opened.
@@ -270,6 +271,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() { @@ -269,6 +270,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() {
return has_multiple_file_type_choices_; return has_multiple_file_type_choices_;
} }
+179 -178
View File
@@ -17,14 +17,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
base/android/feature_map.cc | 5 + base/android/feature_map.cc | 5 +
.../base/cached_flags/ValuesReturned.java | 2 +- .../base/cached_flags/ValuesReturned.java | 2 +-
base/feature_list.cc | 76 ++++++++ base/feature_list.cc | 76 ++++++++
base/feature_list.h | 80 +++++++- base/feature_list.h | 98 +++++++++-
build/android/gyp/java_cpp_features.py | 17 ++ build/android/gyp/java_cpp_features.py | 15 ++
chrome/android/java/res/values/values.xml | 3 + chrome/android/java/res/values/values.xml | 3 +
.../java/res/xml/privacy_preferences.xml | 4 + .../java/res/xml/privacy_preferences.xml | 4 +
.../homepage/settings/HomepageSettings.java | 2 +- .../homepage/settings/HomepageSettings.java | 2 +-
.../privacy/settings/PrivacySettings.java | 2 +- .../privacy/settings/PrivacySettings.java | 2 +-
.../settings/FragmentDependencyProvider.java | 10 +- .../settings/FragmentDependencyProvider.java | 10 +-
.../browser/settings/SettingsActivity.java | 42 ++++- .../browser/settings/SettingsActivity.java | 41 ++++-
.../tracing/settings/DeveloperSettings.java | 5 +- .../tracing/settings/DeveloperSettings.java | 5 +-
chrome/browser/about_flags.cc | 11 ++ chrome/browser/about_flags.cc | 11 ++
chrome/browser/browser_features.cc | 1 + chrome/browser/browser_features.cc | 1 +
@@ -35,7 +35,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/flags/ChromeFeatureList.java | 13 +- .../browser/flags/ChromeFeatureList.java | 13 +-
.../flags/cromite/include_all_directory.java | 1 + .../flags/cromite/include_all_directory.java | 1 +
.../java_template/CromiteCachedFlag.java.tmpl | 47 +++++ .../java_template/CromiteCachedFlag.java.tmpl | 47 +++++
chrome/browser/settings/BUILD.gn | 1 +
.../settings/ChromeBaseSettingsFragment.java | 50 +++++ .../settings/ChromeBaseSettingsFragment.java | 50 +++++
.../strings/android_chrome_strings.grd | 1 + .../strings/android_chrome_strings.grd | 1 +
.../Add-cromite-flags-support.grdp | 9 + .../Add-cromite-flags-support.grdp | 9 +
@@ -55,7 +54,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../core/offline_page_feature.cc | 1 + .../core/offline_page_feature.cc | 1 +
.../offline_pages/core/offline_page_feature.h | 1 + .../offline_pages/core/offline_page_feature.h | 1 +
.../browser/features/password_features.cc | 1 + .../browser/features/password_features.cc | 1 +
components/permissions/features.cc | 2 + components/permissions/features.cc | 1 +
...nthetic_trials_active_group_id_provider.cc | 4 +- ...nthetic_trials_active_group_id_provider.cc | 4 +-
...ynthetic_trials_active_group_id_provider.h | 4 +- ...ynthetic_trials_active_group_id_provider.h | 4 +-
components/webui/flags/flags_state.cc | 59 ++++++ components/webui/flags/flags_state.cc | 59 ++++++
@@ -107,7 +106,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
third_party/blink/public/common/features.h | 1 + third_party/blink/public/common/features.h | 1 +
ui/base/ui_base_features.cc | 1 + ui/base/ui_base_features.cc | 1 +
ui/base/ui_base_features.h | 1 + ui/base/ui_base_features.h | 1 +
94 files changed, 834 insertions(+), 31 deletions(-) 93 files changed, 846 insertions(+), 32 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp
@@ -153,7 +152,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
sources = [ sources = [
"allocator/allocator_check.cc", "allocator/allocator_check.cc",
"allocator/allocator_check.h", "allocator/allocator_check.h",
@@ -1043,7 +1045,7 @@ component("base") { @@ -1061,7 +1063,7 @@ component("base") {
"//build/config/compiler:wglobal_constructors", "//build/config/compiler:wglobal_constructors",
] ]
@@ -180,7 +179,7 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java
--- a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java --- a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java
+++ b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java +++ b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java
@@ -18,7 +18,7 @@ import java.util.Map; @@ -18,7 +18,7 @@ import java.util.function.Supplier;
@NullMarked @NullMarked
public abstract class ValuesReturned { public abstract class ValuesReturned {
@GuardedBy("sBoolValues") @GuardedBy("sBoolValues")
@@ -192,7 +191,7 @@ diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned
diff --git a/base/feature_list.cc b/base/feature_list.cc diff --git a/base/feature_list.cc b/base/feature_list.cc
--- a/base/feature_list.cc --- a/base/feature_list.cc
+++ b/base/feature_list.cc +++ b/base/feature_list.cc
@@ -41,6 +41,31 @@ @@ -43,6 +43,31 @@
namespace base { namespace base {
@@ -224,7 +223,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
namespace { namespace {
// Pointer to the FeatureList instance singleton that was set via // Pointer to the FeatureList instance singleton that was set via
@@ -470,6 +495,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { @@ -472,6 +497,46 @@ bool FeatureList::IsEnabled(const Feature& feature) {
return g_feature_list_instance->IsFeatureEnabled(feature); return g_feature_list_instance->IsFeatureEnabled(feature);
} }
@@ -271,7 +270,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
// static // static
bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) {
return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos;
@@ -737,6 +802,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, @@ -739,6 +804,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor,
void FeatureList::FinalizeInitialization() { void FeatureList::FinalizeInitialization() {
DCHECK(!initialized_); DCHECK(!initialized_);
@@ -292,7 +291,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
diff --git a/base/feature_list.h b/base/feature_list.h diff --git a/base/feature_list.h b/base/feature_list.h
--- a/base/feature_list.h --- a/base/feature_list.h
+++ b/base/feature_list.h +++ b/base/feature_list.h
@@ -177,8 +177,10 @@ enum class FeatureMacroHandshake { kSecret }; @@ -233,8 +233,10 @@ StringStorage(const char (&feature)[N]) -> StringStorage<N - 1>;
struct BASE_EXPORT LOGICALLY_CONST Feature { struct BASE_EXPORT LOGICALLY_CONST Feature {
constexpr Feature(const char* name, constexpr Feature(const char* name,
FeatureState default_state, FeatureState default_state,
@@ -305,7 +304,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
#if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX) #if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX)
if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) ==
0) { 0) {
@@ -205,6 +207,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { @@ -261,6 +263,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
// command line switch. // command line switch.
const FeatureState default_state; const FeatureState default_state;
@@ -315,7 +314,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
private: private:
friend class FeatureList; friend class FeatureList;
@@ -485,6 +490,11 @@ class BASE_EXPORT FeatureList { @@ -541,6 +546,11 @@ class BASE_EXPORT FeatureList {
// instance, which is checked in builds with DCHECKs enabled. // instance, which is checked in builds with DCHECKs enabled.
static bool IsEnabled(const Feature& feature); static bool IsEnabled(const Feature& feature);
@@ -327,7 +326,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
// Some characters are not allowed to appear in feature names or the // Some characters are not allowed to appear in feature names or the
// associated field trial names, as they are used as special characters for // associated field trial names, as they are used as special characters for
// command-line serialization. This function checks that the strings are ASCII // command-line serialization. This function checks that the strings are ASCII
@@ -754,4 +764,70 @@ class BASE_EXPORT FeatureList { @@ -810,4 +820,88 @@ class BASE_EXPORT FeatureList {
} // namespace base } // namespace base
@@ -389,46 +388,65 @@ diff --git a/base/feature_list.h b/base/feature_list.h
+ _Pragma("clang diagnostic pop") \ + _Pragma("clang diagnostic pop") \
+ static_assert(true, "") /* for a semicolon requirement */ + static_assert(true, "") /* for a semicolon requirement */
+ +
+#define BASE_FEATURE_DISABLED(feature, name, default_state) \ +#define BASE_FEATURE_DISABLED_3_ARGS(feature, name, default_state) \
+ BASE_FEATURE(feature, name, default_state); \ + BASE_FEATURE(feature, name, default_state); \
+ static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state") + static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state")
+ +
+#define BASE_FEATURE_ENABLED(feature, name, default_state) \ +#define BASE_FEATURE_DISABLED_2_ARGS(name, default_state) \
+ BASE_FEATURE(name, default_state); \
+ static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state")
+
+#define GET_BASE_FEATURE_DISABLED_MACRO(_1, _2, _3, NAME, ...) NAME
+#define BASE_FEATURE_DISABLED(...) \
+ GET_BASE_FEATURE_DISABLED_MACRO(__VA_ARGS__, BASE_FEATURE_DISABLED_3_ARGS, \
+ BASE_FEATURE_DISABLED_2_ARGS)(__VA_ARGS__)
+
+#define BASE_FEATURE_ENABLED_3_ARGS(feature, name, default_state) \
+ BASE_FEATURE(feature, name, default_state); \ + BASE_FEATURE(feature, name, default_state); \
+ static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state") + static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state")
+
+#define BASE_FEATURE_ENABLED_2_ARGS(name, default_state) \
+ BASE_FEATURE(name, default_state); \
+ static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state")
+
+#define GET_BASE_FEATURE_ENABLED_MACRO(_1, _2, _3, NAME, ...) NAME
+#define BASE_FEATURE_ENABLED(...) \
+ GET_BASE_FEATURE_ENABLED_MACRO(__VA_ARGS__, BASE_FEATURE_ENABLED_3_ARGS, \
+ BASE_FEATURE_ENABLED_2_ARGS)(__VA_ARGS__)
+ +
#endif // BASE_FEATURE_LIST_H_ #endif // BASE_FEATURE_LIST_H_
diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp_features.py diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp_features.py
--- a/build/android/gyp/java_cpp_features.py --- a/build/android/gyp/java_cpp_features.py
+++ b/build/android/gyp/java_cpp_features.py +++ b/build/android/gyp/java_cpp_features.py
@@ -21,10 +21,27 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate): @@ -22,6 +22,11 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate):
# ExtractConstantName() -> 'ConstantName' # ExtractConstantName() -> 'ConstantName'
# ExtractValue() -> '"StringNameOfTheFeature"' # ExtractValue() -> '"StringNameOfTheFeature"' or '"ConstantName"'
FEATURE_RE = re.compile(r'BASE_FEATURE\(k([^,]+),') _FEATURE_RE = re.compile(r'BASE_FEATURE\(\s*(k\w+),')
+ + _FEATURE_RE1 = re.compile(r'CROMITE_FEATURE\(\s*(k\w+),')
+ FEATURE_RE1 = re.compile(r'CROMITE_FEATURE\(k([^,]+),') + _FEATURE_RE2 = re.compile(r'BASE_FEATURE_DISABLED\(\s*(k\w+),')
+ FEATURE_RE2 = re.compile(r'CROMITE_FEATURE_KEEP_DISABLED\(k([^,]+),') + _FEATURE_RE3 = re.compile(r'CROMITE_FEATURE_DISABLED\(\s*(k\w+),')
+ FEATURE_RE3 = re.compile(r'CROMITE_FEATURE_DISABLED\(k([^,]+),') + _FEATURE_RE4 = re.compile(r'BASE_FEATURE_ENABLED\(\s*(k\w+),')
+ FEATURE_RE4 = re.compile(r'CROMITE_FEATURE_KEEP_ENABLED\(k([^,]+),') + _FEATURE_RE5 = re.compile(r'CROMITE_FEATURE_ENABLED\(\s*(k\w+),')
+ FEATURE_RE5 = re.compile(r'CROMITE_FEATURE_ENABLED\(k([^,]+),') _STRING_LITERAL_RE = re.compile(r'"(?:\\"|[^"])*"')
+ _constant_name = None # The name of the current macro.
VALUE_RE = re.compile(r'\s*("(?:\"|[^"])*")\s*,') _comma_count = 0 # Number of commas seen in the current macro.
@@ -34,6 +39,16 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate):
self._constant_name = None
def ExtractConstantName(self, line): match = self._FEATURE_RE.match(line)
match = FeatureParserDelegate.FEATURE_RE.match(line)
+ if match is None: + if match is None:
+ match = FeatureParserDelegate.FEATURE_RE1.match(line) + match = self._FEATURE_RE1.match(line)
+ if match is None: + if match is None:
+ match = FeatureParserDelegate.FEATURE_RE2.match(line) + match = self._FEATURE_RE2.match(line)
+ if match is None: + if match is None:
+ match = FeatureParserDelegate.FEATURE_RE3.match(line) + match = self._FEATURE_RE3.match(line)
+ if match is None: + if match is None:
+ match = FeatureParserDelegate.FEATURE_RE4.match(line) + match = self._FEATURE_RE4.match(line)
+ if match is None: + if match is None:
+ match = FeatureParserDelegate.FEATURE_RE5.match(line) + match = self._FEATURE_RE5.match(line)
return match.group(1) if match else None if match:
# The regex ensures that the feature name starts with 'k'.
def ExtractValue(self, line): feature_name = match.group(1)
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
@@ -445,7 +463,7 @@ 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
@@ -44,6 +44,10 @@ found in the LICENSE file. @@ -38,6 +38,10 @@ found in the LICENSE file.
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" /> android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" />
@@ -459,7 +477,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/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
@@ -40,7 +40,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { @@ -41,7 +41,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>(); private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
@Override @Override
@@ -471,7 +489,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -130,7 +130,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -127,7 +127,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
} }
@Override @Override
@@ -483,18 +501,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
@@ -11,6 +11,7 @@ import androidx.annotation.NonNull; @@ -10,6 +10,7 @@ import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
+import org.chromium.base.supplier.Supplier; +import java.util.function.Supplier;
import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.chrome.browser.accessibility.settings.ChromeAccessibilitySettingsDelegate; import org.chromium.build.annotations.NullMarked;
@@ -70,18 +71,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl @@ -68,24 +69,31 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
private final OneshotSupplier<SnackbarManager> mSnackbarManagerSupplier; private final OneshotSupplier<SnackbarManager> mSnackbarManagerSupplier;
private final OneshotSupplier<BottomSheetController> mBottomSheetControllerSupplier; private final OneshotSupplier<BottomSheetController> mBottomSheetControllerSupplier;
private final ObservableSupplier<ModalDialogManager> mModalDialogManagerSupplier; private final ObservableSupplier<@Nullable ModalDialogManager> mModalDialogManagerSupplier;
+ private final Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> mRequireRestartDelegateSupplier; + private final Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> mRequireRestartDelegateSupplier;
public FragmentDependencyProvider( public FragmentDependencyProvider(
@@ -502,8 +520,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
Profile profile, Profile profile,
OneshotSupplier<SnackbarManager> snackbarManagerSupplier, OneshotSupplier<SnackbarManager> snackbarManagerSupplier,
OneshotSupplier<BottomSheetController> bottomSheetControllerSupplier, OneshotSupplier<BottomSheetController> bottomSheetControllerSupplier,
- ObservableSupplier<ModalDialogManager> modalDialogManagerSupplier) { - ObservableSupplier<@Nullable ModalDialogManager> modalDialogManagerSupplier) {
+ ObservableSupplier<ModalDialogManager> modalDialogManagerSupplier, + ObservableSupplier<@Nullable ModalDialogManager> modalDialogManagerSupplier,
+ Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> requireRestartDelegateSupplier) { + Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> requireRestartDelegateSupplier) {
mContext = context; mContext = context;
mProfile = profile; mProfile = profile;
@@ -514,9 +532,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
} }
@Override @Override
@@ -90,6 +94,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl public void onFragmentAttached(
@NonNull Fragment fragment, FragmentManager fragmentManager, Fragment fragment, Context unusedContext) {
@NonNull Context unusedContext) {
// Common dependencies attachments. // Common dependencies attachments.
+ if (fragment instanceof ChromeBaseSettingsFragment) { + if (fragment instanceof ChromeBaseSettingsFragment) {
+ ((ChromeBaseSettingsFragment)fragment).setRequestRestartDelegateSupplier( + ((ChromeBaseSettingsFragment)fragment).setRequestRestartDelegateSupplier(
@@ -528,25 +545,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
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
@@ -4,6 +4,7 @@ @@ -6,6 +6,7 @@ package org.chromium.chrome.browser.settings;
package org.chromium.chrome.browser.settings; import static org.chromium.build.NullUtil.assumeNonNull;
+import android.app.Activity; +import android.app.Activity;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; @@ -43,6 +44,7 @@ import org.chromium.base.Log;
@@ -32,7 +33,9 @@ import org.chromium.base.Callback;
import org.chromium.base.CallbackUtils;
import org.chromium.base.Log;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.base.supplier.Supplier; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.OneshotSupplier; +import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.base.supplier.OneshotSupplierImpl;
import org.chromium.chrome.R; import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.ChromeBaseAppCompatActivity; import org.chromium.build.annotations.Nullable;
@@ -40,12 +43,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; @@ -54,6 +56,7 @@ import org.chromium.chrome.browser.back_press.BackPressHelper.OnKeyDownHandler;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer; import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
@@ -554,6 +569,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
@@ -61,6 +64,7 @@ import org.chromium.chrome.browser.settings.search.SettingsSearchCoordinator;
import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
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.SnackbarManageable; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
@@ -561,8 +577,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController;
@@ -88,6 +93,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity @@ -115,6 +119,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { PreferenceUpdateObserver {
private static final String TAG = "SettingsActivity"; private static final String TAG = "SettingsActivity";
+ private static class RequestRestartDelegate implements ChromeBaseSettingsFragment.RequireRestartDelegate { + private static class RequestRestartDelegate implements ChromeBaseSettingsFragment.RequireRestartDelegate {
@@ -589,7 +605,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
+ ApplicationLifetime.terminate(true); + ApplicationLifetime.terminate(true);
+ } + }
+ }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) + }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN)
+ .setSingleLine(false) + .setDefaultLines(false)
+ .setAction(mActivity.getString(R.string.relaunch), + .setAction(mActivity.getString(R.string.relaunch),
+ /*actionData*/null) + /*actionData*/null)
+ .setDuration(/*durationMs*/70000); + .setDuration(/*durationMs*/70000);
@@ -602,35 +618,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public static final String EXTRA_SHOW_FRAGMENT = "show_fragment"; public static final String EXTRA_SHOW_FRAGMENT = "show_fragment";
@@ -154,7 +193,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity @@ -205,7 +243,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
mProfile, mProfile,
mSnackbarManagerSupplier, mSnackbarManagerSupplier,
mBottomSheetControllerSupplier, mBottomSheetControllerSupplier,
- getModalDialogManagerSupplier()), - getModalDialogManagerSupplier()),
+ getModalDialogManagerSupplier(), + getModalDialogManagerSupplier(),
+ () -> new RequestRestartDelegate(mSnackbarManagerSupplier, this)), + () -> new RequestRestartDelegate(mSnackbarManagerSupplier, this)),
true /* recursive */); /* recursive= */ true);
fragmentManager.registerFragmentLifecycleCallbacks( fragmentManager.registerFragmentLifecycleCallbacks(
new WideDisplayPaddingApplier(), false /* recursive */); new WideDisplayPaddingApplier(), /* recursive= */ true);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
@@ -19,12 +19,13 @@ import org.chromium.build.annotations.Nullable; @@ -23,8 +23,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
+import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
import org.chromium.components.browser_ui.settings.SettingsUtils;
/** Settings fragment containing preferences aimed at Chrome and web developers. */ /** Settings fragment containing preferences aimed at Chrome and web developers. */
@NullMarked @NullMarked
-public class DeveloperSettings extends PreferenceFragmentCompat implements EmbeddableSettingsPage { -public class DeveloperSettings extends ChromeBaseSettingsFragment
- implements EmbeddableSettingsPage {
+public class DeveloperSettings extends ChromeBaseSettingsFragment implements EmbeddableSettingsPage { +public class DeveloperSettings extends ChromeBaseSettingsFragment implements EmbeddableSettingsPage {
private static final String UI_PREF_BETA_STABLE_HINT = "beta_stable_hint"; private static final String UI_PREF_BETA_STABLE_HINT = "beta_stable_hint";
// Non-translated strings: // Non-translated strings:
@@ -55,7 +56,7 @@ public class DeveloperSettings extends PreferenceFragmentCompat implements Embed @@ -55,7 +54,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment
} }
@Override @Override
@@ -642,7 +653,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
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
@@ -381,6 +381,10 @@ using flags_ui::kOsLinux; @@ -389,6 +389,10 @@ using flags_ui::kOsLinux;
using flags_ui::kOsMac; using flags_ui::kOsMac;
using flags_ui::kOsWin; using flags_ui::kOsWin;
@@ -653,8 +664,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
namespace about_flags { namespace about_flags {
namespace { namespace {
@@ -4903,6 +4907,10 @@ const FeatureEntry::FeatureVariation @@ -5291,6 +5295,10 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = {
constexpr char kWebiumFlag[] = "webium"; };
#endif // !BUILDFLAG(IS_ANDROID) #endif // !BUILDFLAG(IS_ANDROID)
+#define FEATURE_PARAM_SECTION +#define FEATURE_PARAM_SECTION
@@ -664,7 +675,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// RECORDING USER METRICS FOR FLAGS: // RECORDING USER METRICS FOR FLAGS:
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// The first line of the entry is the internal name. // The first line of the entry is the internal name.
@@ -4929,6 +4937,9 @@ constexpr char kWebiumFlag[] = "webium"; @@ -5317,6 +5325,9 @@ const FeatureEntry::Choice kOmniboxAutofocusOnIncognitoNtpChoices[] = {
const FeatureEntry kFeatureEntries[] = { const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py. // //tools/flags/generate_unexpire_flags.py.
@@ -677,16 +688,16 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc
--- a/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc
+++ b/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc
@@ -368,4 +368,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, @@ -284,4 +284,5 @@ BASE_FEATURE(kReportPakFileIntegrity,
"RemovalOfIWAsFromTabCapture", // show both in Chrome Tabs and Windows.
base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kRemovalOfIWAsFromTabCapture, base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_browser_features_cc.inc" +#include "cromite_flags/chrome_browser_browser_features_cc.inc"
} // namespace features } // namespace features
diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h
--- a/chrome/browser/browser_features.h --- a/chrome/browser/browser_features.h
+++ b/chrome/browser/browser_features.h +++ b/chrome/browser/browser_features.h
@@ -121,6 +121,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); @@ -118,6 +118,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture);
// module, e.g. // module, e.g.
// //chrome/browser/<foo_module>/features.h // //chrome/browser/<foo_module>/features.h
// //
@@ -697,7 +708,7 @@ diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn
@@ -12,9 +12,14 @@ android_library("java") { @@ -13,9 +13,14 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
] ]
@@ -712,7 +723,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
"//base/version_info/android:version_constants_java", "//base/version_info/android:version_constants_java",
"//build:android_buildflags", "//build:android_buildflags",
"//build:chromeos_buildflags", "//build:chromeos_buildflags",
@@ -25,12 +30,20 @@ android_library("java") { @@ -27,12 +32,20 @@ android_library("java") {
"//third_party/jni_zero:jni_zero_java", "//third_party/jni_zero:jni_zero_java",
] ]
srcjar_deps = [ srcjar_deps = [
@@ -736,19 +747,20 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
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
@@ -1489,5 +1489,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, @@ -840,6 +840,7 @@ BASE_FEATURE(kXplatSyncedSetup, base::FEATURE_DISABLED_BY_DEFAULT);
"WebOtpCrossDeviceSimpleString",
base::FEATURE_DISABLED_BY_DEFAULT); // clang-format on
+#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc"
} // namespace android } // namespace android
} // namespace chrome } // namespace chrome
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h 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 --- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -337,6 +337,7 @@ constexpr base::FeatureParam<bool> kTouchToSearchCalloutSnippetAsSubtitle( @@ -375,6 +375,7 @@ inline constexpr base::FeatureParam<bool>
"snippet_as_subtitle", "snippet_as_subtitle",
/*default_value=*/false); /*default_value=*/false);
+#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_h.inc" +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_h.inc"
} // namespace chrome::android } // namespace chrome::android
@@ -757,7 +769,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
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
@@ -19,6 +19,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; @@ -20,6 +20,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam;
import org.chromium.components.cached_flags.IntCachedFeatureParam; import org.chromium.components.cached_flags.IntCachedFeatureParam;
import org.chromium.components.cached_flags.StringCachedFeatureParam; import org.chromium.components.cached_flags.StringCachedFeatureParam;
@@ -768,18 +780,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -1063,7 +1067,7 @@ public abstract class ChromeFeatureList { @@ -1118,7 +1122,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sWebApkMinShellApkVersion =
newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true);
// keep-sorted end
- public static final List<CachedFlag> sFlagsCachedFullBrowser = - public static final List<CachedFlag> sFlagsCachedFullBrowser =
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium = + public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
List.of( List.of(
// keep-sorted start
sAccountForSuppressedKeyboardInsets, sAccountForSuppressedKeyboardInsets,
sAllowTabClosingUponMinimization, @@ -1282,6 +1286,13 @@ public abstract class ChromeFeatureList {
@@ -1205,6 +1209,13 @@ public abstract class ChromeFeatureList { // keep-sorted end
sUseLibunwindstackNativeUnwinderAndroid, );
sWebApkMinShellApkVersion);
+ private static <T> List<T> concatenateLists(List<T>... collections) { + private static <T> List<T> concatenateLists(List<T>... collections) {
+ return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList()); + return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList());
@@ -849,29 +861,19 @@ new file mode 100644
+ }} + }}
+ +
+}} +}}
diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn
--- a/chrome/browser/settings/BUILD.gn
+++ b/chrome/browser/settings/BUILD.gn
@@ -35,6 +35,7 @@ android_library("java") {
"//base:base_java",
"//chrome/browser/feedback/android:factory_java",
"//chrome/browser/feedback/android:java",
+ "//chrome/browser/flags:java",
"//chrome/browser/preferences:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/ui/android/favicon:java",
diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java
--- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java
+++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java
@@ -8,12 +8,19 @@ import androidx.preference.PreferenceFragmentCompat; @@ -9,6 +9,7 @@ import androidx.preference.PreferenceFragmentCompat;
import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.Initializer;
import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.NullMarked;
+import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.Nullable;
+import java.util.function.Supplier;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; @@ -18,6 +19,12 @@ import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver;
import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher; import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher;
+import android.os.Bundle; +import android.os.Bundle;
@@ -883,9 +885,9 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse
/** /**
* Base class for settings in Chrome. * Base class for settings in Chrome.
* *
@@ -28,6 +35,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa @@ -35,6 +42,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa
private Profile mProfile;
private SettingsCustomTabLauncher mCustomTabLauncher; private SettingsCustomTabLauncher mCustomTabLauncher;
private @Nullable PreferenceUpdateObserver mPreferenceUpdateObserver;
+ private Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> mRequireRestartDelegateSupplier; + private Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> mRequireRestartDelegateSupplier;
+ +
@@ -967,24 +969,24 @@ new file mode 100644
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
--- a/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc
@@ -619,4 +619,5 @@ bool IsBookmarkTabGroupConversionEnabled() { @@ -788,4 +788,5 @@ BASE_FEATURE(kWhatsNewDesktopRefresh, base::FEATURE_DISABLED_BY_DEFAULT);
return base::FeatureList::IsEnabled(kBookmarkTabGroupConversion);
} BASE_FEATURE(kTabGroupsFocusing, base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc"
} // namespace features } // namespace features
diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc
--- a/chrome/browser/unexpire_flags.cc --- a/chrome/browser/unexpire_flags.cc
+++ b/chrome/browser/unexpire_flags.cc +++ b/chrome/browser/unexpire_flags.cc
@@ -8,6 +8,7 @@ @@ -11,6 +11,7 @@
#include "base/containers/contains.h"
#include "base/containers/flat_map.h" #include "base/containers/flat_map.h"
#include "base/feature_list.h"
#include "base/no_destructor.h" #include "base/no_destructor.h"
+#include "chrome/browser/about_flags.h" +#include "chrome/browser/about_flags.h"
#include "chrome/browser/expired_flags_list.h" #include "chrome/browser/expired_flags_list.h"
#include "chrome/browser/unexpire_flags_gen.h" #include "chrome/browser/unexpire_flags_gen.h"
#include "chrome/common/chrome_version.h" #include "chrome/common/chrome_version.h"
@@ -114,7 +115,19 @@ bool IsFlagExpired(const flags_ui::FlagsStorage* storage, @@ -117,7 +118,19 @@ bool IsFlagExpired(const flags_ui::FlagsStorage* storage,
// Otherwise, the flag is expired if its expiration mstone is less than the // Otherwise, the flag is expired if its expiration mstone is less than the
// mstone of this copy of Chromium. // mstone of this copy of Chromium.
@@ -1008,9 +1010,9 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
--- a/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -1977,5 +1977,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, @@ -1906,5 +1906,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT);
// happen silently without prompting an updating dialog.
BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating,
"SilentPolicyAndDefaultAppUpdating",
base::FEATURE_DISABLED_BY_DEFAULT); base::FEATURE_DISABLED_BY_DEFAULT);
- -
+#include "cromite_flags/chrome_common_chrome_features_cc.inc" +#include "cromite_flags/chrome_common_chrome_features_cc.inc"
@@ -1018,14 +1020,14 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
diff --git a/components/browser_ui/accessibility/android/BUILD.gn b/components/browser_ui/accessibility/android/BUILD.gn diff --git a/components/browser_ui/accessibility/android/BUILD.gn b/components/browser_ui/accessibility/android/BUILD.gn
--- a/components/browser_ui/accessibility/android/BUILD.gn --- a/components/browser_ui/accessibility/android/BUILD.gn
+++ b/components/browser_ui/accessibility/android/BUILD.gn +++ b/components/browser_ui/accessibility/android/BUILD.gn
@@ -55,6 +55,7 @@ android_library("lib_java") { @@ -73,6 +73,7 @@ android_library("lib_java") {
":page_zoom_utils_java", ":page_zoom_utils_java",
"//base:base_java", "//base:base_java",
"//build/android:build_java", "//build/android:build_java",
+ "//chrome/browser/settings:java", + "//chrome/browser/settings:java",
"//components/browser_ui/settings/android:java", "//components/browser_ui/settings/android:java",
"//components/browser_ui/site_settings/android:java", "//components/browser_ui/site_settings/android:java",
"//components/cached_flags:java", "//components/browser_ui/styles/android:java",
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
@@ -1036,15 +1038,15 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"> + xmlns:app="http://schemas.android.com/apk/res-auto">
<Preference
<org.chromium.components.browser_ui.accessibility.PageZoomPreference android:key="zoom_info"
android:key="page_zoom_default_zoom" android:title="@string/zoom_info_preference_title"/>
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
@@ -28,9 +28,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; @@ -30,9 +30,11 @@ import org.chromium.content_public.browser.ContentFeatureList;
import org.chromium.content_public.browser.ContentFeatureList;
import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.content_public.browser.ContentFeatureMap;
import org.chromium.ui.base.UiAndroidFeatureList;
+import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; +import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
+ +
@@ -1052,10 +1054,10 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
@NullMarked @NullMarked
-public class AccessibilitySettings extends PreferenceFragmentCompat -public class AccessibilitySettings extends PreferenceFragmentCompat
+public class AccessibilitySettings extends ChromeBaseSettingsFragment +public class AccessibilitySettings extends ChromeBaseSettingsFragment
implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener { implements EmbeddableSettingsPage,
public static final String PREF_PAGE_ZOOM_DEFAULT_ZOOM = "page_zoom_default_zoom"; Preference.OnPreferenceChangeListener,
public static final String PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT = CustomDividerFragment {
@@ -69,7 +71,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat @@ -78,7 +80,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
} }
@Override @Override
@@ -1063,7 +1065,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
+ public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { + public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences); SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences);
mPageZoomDefaultZoomPref = findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM); // TODO(crbug.com/439911511): Add PageZoomPreference directly to the xml file instead.
diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/components/browser_ui/settings/android/java/res/values/attrs.xml diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/components/browser_ui/settings/android/java/res/values/attrs.xml
--- a/components/browser_ui/settings/android/java/res/values/attrs.xml --- a/components/browser_ui/settings/android/java/res/values/attrs.xml
+++ b/components/browser_ui/settings/android/java/res/values/attrs.xml +++ b/components/browser_ui/settings/android/java/res/values/attrs.xml
@@ -1081,7 +1083,7 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
--- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
+++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
@@ -13,6 +13,8 @@ import android.view.accessibility.AccessibilityEvent; @@ -15,6 +15,8 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.TextView; import android.widget.TextView;
@@ -1090,7 +1092,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
import androidx.annotation.ColorInt; import androidx.annotation.ColorInt;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceViewHolder; import androidx.preference.PreferenceViewHolder;
@@ -38,6 +40,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { @@ -42,6 +44,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat implements Co
/** Indicates if the preference uses a custom layout. */ /** Indicates if the preference uses a custom layout. */
private final boolean mHasCustomLayout; private final boolean mHasCustomLayout;
@@ -1102,7 +1104,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
// TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate // TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate
// away from a switch with dynamically changing summaries onto a radio group. // away from a switch with dynamically changing summaries onto a radio group.
/** /**
@@ -57,6 +64,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { @@ -66,6 +73,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat implements Co
mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs);
mUseSummaryAsTitle = true; mUseSummaryAsTitle = true;
@@ -1124,7 +1126,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
diff --git a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java diff --git a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java
--- a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java --- a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java
+++ b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java +++ b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java
@@ -155,7 +155,7 @@ public class CachedFlag extends Flag { @@ -159,7 +159,7 @@ public class CachedFlag extends Flag {
editor.putBoolean(getSharedPreferenceKey(), featureValue); editor.putBoolean(getSharedPreferenceKey(), featureValue);
} }
@@ -1133,7 +1135,7 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca
// Create the key only once to avoid String concatenation every flag check. // Create the key only once to avoid String concatenation every flag check.
if (mPreferenceKey == null) { if (mPreferenceKey == null) {
mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName); mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName);
@@ -163,6 +163,12 @@ public class CachedFlag extends Flag { @@ -167,6 +167,12 @@ public class CachedFlag extends Flag {
return mPreferenceKey; return mPreferenceKey;
} }
@@ -1160,9 +1162,9 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc
--- a/components/content_settings/core/common/features.cc --- a/components/content_settings/core/common/features.cc
+++ b/components/content_settings/core/common/features.cc +++ b/components/content_settings/core/common/features.cc
@@ -181,5 +181,6 @@ BASE_FEATURE(kForceAllowStorageAccess, @@ -143,5 +143,6 @@ const base::FeatureParam<EnableForIframeTypes>
"ForceAllowStorageAccess",
base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kForceAllowStorageAccess, base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/components_content_settings_core_common_features_cc.inc" +#include "cromite_flags/components_content_settings_core_common_features_cc.inc"
} // namespace features } // namespace features
@@ -1176,7 +1178,7 @@ new file mode 100644
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
--- a/components/offline_pages/core/offline_page_feature.cc --- a/components/offline_pages/core/offline_page_feature.cc
+++ b/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc
@@ -48,4 +48,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() { @@ -47,4 +47,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown); return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown);
} }
@@ -1196,24 +1198,23 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o
diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc
--- a/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc
+++ b/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc
@@ -219,4 +219,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction, @@ -201,4 +201,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction,
BASE_FEATURE(kUseActionablesForImprovedPasswordChange,
base::FEATURE_DISABLED_BY_DEFAULT); base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
+#include "cromite_flags/components_password_manager_core_browser_features_password_features_cc.inc" +#include "cromite_flags/components_password_manager_core_browser_features_password_features_cc.inc"
} // namespace password_manager::features } // namespace password_manager::features
diff --git a/components/permissions/features.cc b/components/permissions/features.cc diff --git a/components/permissions/features.cc b/components/permissions/features.cc
--- a/components/permissions/features.cc --- a/components/permissions/features.cc
+++ b/components/permissions/features.cc +++ b/components/permissions/features.cc
@@ -139,6 +139,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, @@ -120,6 +120,7 @@ BASE_FEATURE(kReturnDeniedForNotificationsWhenNoAppLevelSettings,
"OsAdditionalSecurityPermissionKillSwitch", BASE_FEATURE(kPermissionPredictionsGeolocationAccuracy,
base::FEATURE_DISABLED_BY_DEFAULT); base::FEATURE_DISABLED_BY_DEFAULT);
#endif
+
+#include "cromite_flags/components_permissions_features_cc.inc" +#include "cromite_flags/components_permissions_features_cc.inc"
} // namespace features } // namespace features
namespace feature_params {
namespace feature_params {
diff --git a/components/variations/synthetic_trials_active_group_id_provider.cc b/components/variations/synthetic_trials_active_group_id_provider.cc diff --git a/components/variations/synthetic_trials_active_group_id_provider.cc b/components/variations/synthetic_trials_active_group_id_provider.cc
--- a/components/variations/synthetic_trials_active_group_id_provider.cc --- a/components/variations/synthetic_trials_active_group_id_provider.cc
+++ b/components/variations/synthetic_trials_active_group_id_provider.cc +++ b/components/variations/synthetic_trials_active_group_id_provider.cc
@@ -1553,8 +1554,8 @@ diff --git a/components/webui/flags/resources/experiment.html.ts b/components/we
return html`<!--_html_template_start_--> return html`<!--_html_template_start_-->
<div class="experiment" id="${this.feature_.internal_name}"> <div class="experiment" id="${this.feature_.internal_name}">
- <div class="flex-container"> - <div class="flex-container">
+ <div class="flex-container" class="${(this.feature_.is_cromite && this.feature_.is_new ? "cromite " : "") + <div class="${"flex-container " + (this.feature_.is_cromite && this.feature_.is_new ? "cromite " : "")
+ + (this.feature_.is_default_value_on ? "experiment-on" : "")}"> + + (this.feature_.is_default_value_on ? "experiment-on" : "")}">
<div class="flex"> <div class="flex">
${this.showingSearchHit_? html` ${this.showingSearchHit_? html`
<h2 class="experiment-name clone" id="${this.getHeaderId_()}" <h2 class="experiment-name clone" id="${this.getHeaderId_()}"
@@ -1638,7 +1639,7 @@ diff --git a/components/webui/version/version_handler_helper.cc b/components/web
diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/common/features.cc b/content/common/features.cc
--- a/content/common/features.cc --- a/content/common/features.cc
+++ b/content/common/features.cc +++ b/content/common/features.cc
@@ -743,4 +743,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { @@ -750,4 +750,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() {
blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument); blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument);
} }
@@ -1647,7 +1648,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc --- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc
@@ -1676,4 +1676,5 @@ bool IsPushSubscriptionChangeEventEnabled() { @@ -1438,4 +1438,5 @@ bool IsPushSubscriptionChangeEventEnabled() {
features::kPushSubscriptionChangeEventOnResubscribe); features::kPushSubscriptionChangeEventOnResubscribe);
} }
@@ -1656,7 +1657,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
--- a/content/public/common/content_features.h --- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h +++ b/content/public/common/content_features.h
@@ -400,6 +400,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); @@ -420,6 +420,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled();
@@ -2002,7 +2003,7 @@ new file mode 100755
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
--- a/media/base/media_switches.cc --- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc +++ b/media/base/media_switches.cc
@@ -2008,5 +2008,5 @@ uint32_t GetPassthroughAudioFormats() { @@ -1750,5 +1750,5 @@ uint32_t GetPassthroughAudioFormats() {
return 0; return 0;
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
} }
@@ -2012,7 +2013,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/media/base/media_switches.h b/media/base/media_switches.h
--- a/media/base/media_switches.h --- a/media/base/media_switches.h
+++ b/media/base/media_switches.h +++ b/media/base/media_switches.h
@@ -601,5 +601,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); @@ -556,5 +556,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
} // namespace media } // namespace media
@@ -2022,18 +2023,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h
diff --git a/net/base/features.cc b/net/base/features.cc diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc --- a/net/base/features.cc
+++ b/net/base/features.cc +++ b/net/base/features.cc
@@ -909,4 +909,5 @@ BASE_FEATURE_PARAM(bool, @@ -846,4 +846,5 @@ BASE_FEATURE(kAddAutomaticWithDohFallbackMode,
"url_request_redirect_job", BASE_FEATURE(kUseQuicProxiesWithoutWaitingForConnectResponse,
false); base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/net_base_features_cc.inc" +#include "cromite_flags/net_base_features_cc.inc"
} // namespace net::features } // namespace net::features
diff --git a/net/base/features.h b/net/base/features.h diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h --- a/net/base/features.h
+++ b/net/base/features.h +++ b/net/base/features.h
@@ -896,6 +896,7 @@ NET_EXPORT BASE_DECLARE_FEATURE_PARAM(bool, kNetTaskSchedulerURLRequestJob); @@ -911,6 +911,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kAddAutomaticWithDohFallbackMode);
NET_EXPORT BASE_DECLARE_FEATURE_PARAM(bool, NET_EXPORT BASE_DECLARE_FEATURE(
kNetTaskSchedulerURLRequestRedirectJob); kUseQuicProxiesWithoutWaitingForConnectResponse);
+#include "cromite_flags/net_base_features_h.inc" +#include "cromite_flags/net_base_features_h.inc"
} // namespace net::features } // namespace net::features
@@ -2042,18 +2043,18 @@ diff --git a/net/base/features.h b/net/base/features.h
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
--- a/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc
@@ -666,4 +666,5 @@ BASE_FEATURE_PARAM(bool, @@ -611,4 +611,5 @@ BASE_FEATURE(kNetworkServicePerPriorityTaskQueues,
"url_loader", BASE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess,
false); base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/services_network_public_cpp_features_cc.inc" +#include "cromite_flags/services_network_public_cpp_features_cc.inc"
} // namespace network::features } // namespace network::features
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
--- a/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h
+++ b/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h
@@ -366,6 +366,7 @@ BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerResourceScheduler); @@ -383,6 +383,7 @@ BASE_DECLARE_FEATURE(kNetworkServicePerPriorityTaskQueues);
COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES)
BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerURLLoader); BASE_DECLARE_FEATURE(kUseUnexportableKeyServiceInBrowserProcess);
+#include "cromite_flags/services_network_public_cpp_features_h.inc" +#include "cromite_flags/services_network_public_cpp_features_h.inc"
} // namespace network::features } // namespace network::features
@@ -2062,7 +2063,7 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -2927,4 +2927,5 @@ bool IsXrDevice() { @@ -2647,4 +2647,5 @@ bool IsXrDevice() {
// //
// DO NOT ADD NEW FEATURES HERE. // DO NOT ADD NEW FEATURES HERE.
@@ -2071,7 +2072,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -1912,6 +1912,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); @@ -1960,6 +1960,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice();
// //
// DO NOT ADD NEW FEATURES HERE. // DO NOT ADD NEW FEATURES HERE.
@@ -2082,18 +2083,18 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
--- a/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc
@@ -483,4 +483,5 @@ bool IsHandleIMESpanChangesOnUpdateCompositionEnabled() { @@ -449,4 +449,5 @@ BASE_FEATURE(kUseSystemDefaultAccentColors, base::FEATURE_ENABLED_BY_DEFAULT);
features::kHandleIMESpanChangesOnUpdateComposition);
} BASE_FEATURE(kStringWidthCache, base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/ui_base_features_cc.inc" +#include "cromite_flags/ui_base_features_cc.inc"
} // namespace features } // namespace features
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h
--- a/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h
+++ b/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h
@@ -242,6 +242,7 @@ BASE_DECLARE_FEATURE(kHandleIMESpanChangesOnUpdateComposition); @@ -270,6 +270,7 @@ BASE_DECLARE_FEATURE(kUseSystemDefaultAccentColors);
COMPONENT_EXPORT(UI_BASE_FEATURES) COMPONENT_EXPORT(UI_BASE_FEATURES)
bool IsHandleIMESpanChangesOnUpdateCompositionEnabled(); BASE_DECLARE_FEATURE(kStringWidthCache);
+#include "cromite_flags/ui_base_features_h.inc" +#include "cromite_flags/ui_base_features_h.inc"
} // namespace features } // namespace features
+24 -24
View File
@@ -73,15 +73,15 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -139,6 +139,7 @@ import org.chromium.ui.base.PhotoPickerListener; @@ -149,6 +149,7 @@ import org.chromium.ui.base.SelectFileDialog;
import org.chromium.ui.base.SelectFileDialog;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider;
import org.chromium.url.GURL; import org.chromium.url.GURL;
+import org.chromium.chrome.browser.flags.cromite.sActAsWebView; +import org.chromium.chrome.browser.flags.cromite.sActAsWebView;
import java.io.File; import java.io.File;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@@ -698,7 +699,10 @@ public class ProcessInitializationHandler { @@ -729,7 +730,10 @@ public class ProcessInitializationHandler {
tasks.add( tasks.add(
() -> { () -> {
@@ -96,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java
@@ -37,7 +37,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb @@ -35,7 +35,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb
private final ObservableSupplier<String> mPageTitle = private final ObservableSupplier<String> mPageTitle =
new ObservableSupplierImpl<>(MSG_DEVELOPER_OPTIONS_TITLE); new ObservableSupplierImpl<>(MSG_DEVELOPER_OPTIONS_TITLE);
@@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -188,6 +188,11 @@ source_set("shell_integration") { @@ -190,6 +190,11 @@ source_set("shell_integration") {
# require many files from it. This makes linking more efficient. # require many files from it. This makes linking more efficient.
static_library("browser") { static_library("browser") {
sources = [ sources = [
@@ -139,7 +139,7 @@ diff --git a/chrome/browser/android/devtools_server.cc b/chrome/browser/android/
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
#include "content/public/common/url_constants.h" #include "content/public/common/url_constants.h"
#include "net/base/net_errors.h" #include "net/base/net_errors.h"
@@ -64,6 +66,8 @@ const int kBackLog = 10; @@ -64,6 +66,8 @@ const int kBackLog = 4096;
bool AuthorizeSocketAccessWithDebugPermission( bool AuthorizeSocketAccessWithDebugPermission(
const net::UnixDomainServerSocket::Credentials& credentials) { const net::UnixDomainServerSocket::Credentials& credentials) {
@@ -179,7 +179,7 @@ diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b
#include "chrome/browser/chrome_browser_interface_binders_webui.h" #include "chrome/browser/chrome_browser_interface_binders_webui.h"
#include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_content_browser_client_parts.h" #include "chrome/browser/chrome_content_browser_client_parts.h"
@@ -494,6 +495,15 @@ void ChromeContentBrowserClient:: @@ -492,6 +493,15 @@ void ChromeContentBrowserClient::
render_frame_host); render_frame_host);
}, },
&render_frame_host)); &render_frame_host));
@@ -412,29 +412,29 @@ new file mode 100644
diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java
--- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java --- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java
+++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java +++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/permissions/NotificationPermissionController.java
@@ -182,6 +182,7 @@ public class NotificationPermissionController implements UnownedUserData { @@ -181,6 +181,7 @@ public class NotificationPermissionController {
* @return True if any UI was shown (either rationale dialog or OS prompt), false otherwise. * @return True if any UI was shown (either rationale dialog or OS prompt), false otherwise.
*/ */
public boolean requestPermissionIfNeeded(boolean contextual) { public boolean requestPermissionIfNeeded(boolean contextual) {
+ if (!contextual) return false; + if (!contextual) return false;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU || DeviceInfo.isRetailDemoMode()) {
|| ApiCompatibilityUtils.isDemoUser()) {
return false; return false;
}
diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc
--- a/chrome/browser/ui/startup/bad_flags_prompt.cc --- a/chrome/browser/ui/startup/bad_flags_prompt.cc
+++ b/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
@@ -210,6 +210,7 @@ static const base::Feature* kBadFeatureFlagsInAboutFlags[] = { @@ -220,6 +220,7 @@ static const std::variant<const base::Feature*, const char*>
#if BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID)
&chrome::android::kCommandLineOnNonRooted, &chrome::android::kCommandLineOnNonRooted,
+ &features::kEnableCromiteTestSupport, + &features::kEnableCromiteTestSupport,
#endif #endif
// This flag disables security for the Page Embedded Permission Control, for // This flag disables security for the Page Embedded Permission Control,
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn
@@ -657,6 +657,7 @@ mojom("mojo_bindings") { @@ -666,6 +666,7 @@ mojom("mojo_bindings") {
sources = [ sources = [
"chrome_render_frame.mojom", "chrome_render_frame.mojom",
"google_accounts_private_api_extension.mojom", "google_accounts_private_api_extension.mojom",
@@ -457,7 +457,7 @@ new file mode 100644
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn
@@ -74,6 +74,8 @@ static_library("renderer") { @@ -79,6 +79,8 @@ static_library("renderer") {
"chrome_render_thread_observer.cc", "chrome_render_thread_observer.cc",
"chrome_render_thread_observer.h", "chrome_render_thread_observer.h",
"custom_menu_commands.h", "custom_menu_commands.h",
@@ -469,7 +469,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -54,6 +54,7 @@ @@ -56,6 +56,7 @@
#include "chrome/renderer/chrome_render_frame_observer.h" #include "chrome/renderer/chrome_render_frame_observer.h"
#include "chrome/renderer/chrome_render_thread_observer.h" #include "chrome/renderer/chrome_render_thread_observer.h"
#include "chrome/renderer/controlled_frame/controlled_frame_extensions_renderer_api_provider.h" #include "chrome/renderer/controlled_frame/controlled_frame_extensions_renderer_api_provider.h"
@@ -477,7 +477,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
#include "chrome/renderer/google_accounts_private_api_extension.h" #include "chrome/renderer/google_accounts_private_api_extension.h"
#include "chrome/renderer/loadtimes_extension_bindings.h" #include "chrome/renderer/loadtimes_extension_bindings.h"
#include "chrome/renderer/media/flash_embed_rewrite.h" #include "chrome/renderer/media/flash_embed_rewrite.h"
@@ -624,6 +625,7 @@ void ChromeContentRendererClient::RenderFrameCreated( @@ -650,6 +651,7 @@ void ChromeContentRendererClient::RenderFrameCreated(
TrustedVaultEncryptionKeysExtension::Create(render_frame); TrustedVaultEncryptionKeysExtension::Create(render_frame);
GoogleAccountsPrivateApiExtension::Create(render_frame); GoogleAccountsPrivateApiExtension::Create(render_frame);
@@ -785,15 +785,15 @@ diff --git a/content/browser/devtools/devtools_http_handler.cc b/content/browser
#include "base/functional/bind.h" #include "base/functional/bind.h"
#include "base/functional/callback_helpers.h" #include "base/functional/callback_helpers.h"
#include "base/json/json_writer.h" #include "base/json/json_writer.h"
@@ -46,6 +47,7 @@ @@ -47,6 +48,7 @@
#include "content/public/browser/devtools_manager_delegate.h"
#include "content/public/browser/devtools_socket_factory.h" #include "content/public/browser/devtools_socket_factory.h"
#include "content/public/common/content_client.h" #include "content/public/common/content_client.h"
#include "content/public/common/content_constants.h"
+#include "content/public/common/content_features.h" +#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
#include "content/public/common/url_constants.h" #include "content/public/common/url_constants.h"
#include "net/base/io_buffer.h" #include "net/base/io_buffer.h"
@@ -587,9 +589,12 @@ void DevToolsHttpHandler::OnJsonRequest( @@ -602,9 +604,12 @@ void DevToolsHttpHandler::OnJsonRequest(
if (command == "version") { if (command == "version") {
base::Value::Dict version; base::Value::Dict version;
@@ -851,7 +851,7 @@ diff --git a/content/browser/log_console_message.h b/content/browser/log_console
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -315,6 +315,8 @@ @@ -316,6 +316,8 @@
#include "url/origin.h" #include "url/origin.h"
#include "url/url_constants.h" #include "url/url_constants.h"
@@ -860,7 +860,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
#if BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID)
#include "content/browser/accessibility/browser_accessibility_manager_android.h" #include "content/browser/accessibility/browser_accessibility_manager_android.h"
#include "content/browser/android/content_url_loader_factory.h" #include "content/browser/android/content_url_loader_factory.h"
@@ -4755,7 +4757,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( @@ -4786,7 +4788,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole(
if (delegate_->DidAddMessageToConsole(this, log_level, message, line_no, if (delegate_->DidAddMessageToConsole(this, log_level, message, line_no,
updated_source_id, updated_source_id,
untrusted_stack_trace)) { untrusted_stack_trace)) {
@@ -870,7 +870,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
} }
// Pass through log severity only on builtin components pages to limit console // Pass through log severity only on builtin components pages to limit console
@@ -4772,8 +4775,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( @@ -4803,8 +4806,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole(
const bool is_off_the_record = const bool is_off_the_record =
GetSiteInstance()->GetBrowserContext()->IsOffTheRecord(); GetSiteInstance()->GetBrowserContext()->IsOffTheRecord();
@@ -18,21 +18,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../customtabs/CustomTabsConnection.java | 3 +- .../customtabs/CustomTabsConnection.java | 3 +-
.../IncognitoCustomTabIntentDataProvider.java | 14 +++++ .../IncognitoCustomTabIntentDataProvider.java | 14 +++++
.../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++ .../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++
.../flags/android/chrome_feature_list.cc | 2 +- .../flags/android/chrome_feature_list.cc | 4 +-
.../browser/flags/ChromeFeatureList.java | 3 ++ .../browser/flags/ChromeFeatureList.java | 3 ++
.../chrome/browser/tab/TabAssociatedApp.java | 6 ++- .../chrome/browser/tab/TabAssociatedApp.java | 6 ++-
...Add-custom-tab-intents-privacy-option.grdp | 25 +++++++++ ...Add-custom-tab-intents-privacy-option.grdp | 25 +++++++++
.../OriginVerifier.java | 5 ++ .../OriginVerifier.java | 5 ++
.../core/common/language_experiments.cc | 1 + .../core/common/language_experiments.cc | 1 +
.../add-custom-tab-intents-privacy-option.inc | 1 + .../add-custom-tab-intents-privacy-option.inc | 1 +
13 files changed, 156 insertions(+), 13 deletions(-) 13 files changed, 158 insertions(+), 13 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -52,6 +52,21 @@ found in the LICENSE file. @@ -46,6 +46,21 @@ found in the LICENSE file.
android:key="cromite_flags" android:key="cromite_flags"
android:title="@string/cromite_flags_title" android:title="@string/cromite_flags_title"
app:url="@string/cromite_flags_url" /> app:url="@string/cromite_flags_url" />
@@ -57,7 +57,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/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
@@ -62,6 +62,9 @@ import java.lang.annotation.Retention; @@ -65,6 +65,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.util.Set; import java.util.Set;
@@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
/** /**
* Dispatches incoming intents to the appropriate activity based on the current configuration and * Dispatches incoming intents to the appropriate activity based on the current configuration and
* Intent fired. * Intent fired.
@@ -264,6 +267,9 @@ public class LaunchIntentDispatcher { @@ -262,6 +265,9 @@ public class LaunchIntentDispatcher {
*/ */
public static boolean isCustomTabIntent(Intent intent) { public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false; if (intent == null) return false;
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
Log.w( Log.w(
TAG, TAG,
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = " "CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
@@ -292,6 +298,10 @@ public class LaunchIntentDispatcher { @@ -290,6 +296,10 @@ public class LaunchIntentDispatcher {
// Make sure the result of the CustomTabActivity is forwarded to the client. // Make sure the result of the CustomTabActivity is forwarded to the client.
newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
// Since configureIntentForResizableCustomTab() might change the componenet/class // Since configureIntentForResizableCustomTab() might change the componenet/class
// associated with the passed intent, it needs to be called after #setClassName(context, // associated with the passed intent, it needs to be called after #setClassName(context,
// CustomTabActivity.class.getName()); // CustomTabActivity.class.getName());
@@ -490,6 +500,17 @@ public class LaunchIntentDispatcher { @@ -486,6 +496,17 @@ public class LaunchIntentDispatcher {
if (Intent.ACTION_VIEW.equals(newIntent.getAction()) if (Intent.ACTION_VIEW.equals(newIntent.getAction())
&& !IntentHandler.wasIntentSenderChrome(newIntent)) { && !IntentHandler.wasIntentSenderChrome(newIntent)) {
@@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
@@ -233,16 +233,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @@ -239,16 +239,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
// Extra whose value is an array of ints that is supplied to // Extra whose value is an array of ints that is supplied to
// SyntheticTrialRegistry::RegisterExternalExperiments(). // SyntheticTrialRegistry::RegisterExternalExperiments().
@@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
/** /**
* Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab * Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab
@@ -682,7 +682,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @@ -697,7 +697,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION, TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION,
ScreenOrientation.DEFAULT)); ScreenOrientation.DEFAULT));
@@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
mBreakPointDp = getActivityBreakPointFromIntent(intent); mBreakPointDp = getActivityBreakPointFromIntent(intent);
mInitialActivityHeight = getInitialActivityHeightFromIntent(intent); mInitialActivityHeight = getInitialActivityHeightFromIntent(intent);
@@ -695,8 +695,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @@ -710,8 +710,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT); intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT);
mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED; mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED;
@@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
@BackgroundInteractBehavior @BackgroundInteractBehavior
int backgroundInteractBehavior = int backgroundInteractBehavior =
IntentUtils.safeGetIntExtra( IntentUtils.safeGetIntExtra(
@@ -1267,7 +1267,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @@ -1369,7 +1369,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
public @CustomTabProfileType int getCustomTabMode() { public @CustomTabProfileType int getCustomTabMode() {
return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
? CustomTabProfileType.INCOGNITO ? CustomTabProfileType.INCOGNITO
@@ -166,7 +166,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
@@ -780,7 +780,7 @@ public class CustomTabsConnection { @@ -786,7 +786,7 @@ public class CustomTabsConnection {
ThreadUtils.assertOnUiThread(); ThreadUtils.assertOnUiThread();
if (extras == null) return; if (extras == null) return;
int[] experimentIds = int[] experimentIds =
@@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
if (experimentIds == null) return; if (experimentIds == null) return;
// When ids are set through cct, they should not override existing ids. // When ids are set through cct, they should not override existing ids.
boolean override = false; boolean override = false;
@@ -996,6 +996,7 @@ public class CustomTabsConnection { @@ -1003,6 +1003,7 @@ public class CustomTabsConnection {
PostTask.postTask( PostTask.postTask(
TaskTraits.UI_DEFAULT, TaskTraits.UI_DEFAULT,
() -> { () -> {
@@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
@@ -40,6 +40,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; @@ -44,6 +44,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -196,7 +196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
/** /**
* A model class that parses the incoming intent for incognito Custom Tabs specific customization * A model class that parses the incoming intent for incognito Custom Tabs specific customization
* data. * data.
@@ -121,6 +124,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @@ -133,6 +136,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
} }
private static boolean isIntentFromThirdPartyAllowed() { private static boolean isIntentFromThirdPartyAllowed() {
@@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled();
} }
@@ -220,6 +226,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @@ -230,6 +236,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
} }
public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) {
@@ -217,7 +217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
if (!isIncognitoRequested(intent)) return false; if (!isIncognitoRequested(intent)) return false;
var session = SessionHolder.getSessionHolderFromIntent(intent); var session = SessionHolder.getSessionHolderFromIntent(intent);
if (isIntentFromThirdPartyAllowed() if (isIntentFromThirdPartyAllowed()
@@ -329,6 +339,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @@ -340,6 +350,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
@Override @Override
public @CustomTabProfileType int getCustomTabMode() { public @CustomTabProfileType int getCustomTabMode() {
@@ -231,7 +231,7 @@ 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
@@ -10,6 +10,7 @@ import android.content.Context; @@ -11,6 +11,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@@ -239,7 +239,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.ClickableSpan; import android.text.style.ClickableSpan;
@@ -79,6 +80,15 @@ import org.chromium.ui.text.SpanApplier; @@ -80,6 +81,15 @@ import org.chromium.ui.text.SpanApplier;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Consumer; import java.util.function.Consumer;
@@ -255,7 +255,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.base.shared_preferences.SharedPreferencesManager;
@@ -152,6 +162,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -148,6 +158,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); startTag, endTag, new ChromeClickableSpan(context, onClickCallback));
} }
@@ -265,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override @Override
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
mPageTitle.set(getString(R.string.prefs_privacy_security)); mPageTitle.set(getString(R.string.prefs_privacy_security));
@@ -384,6 +397,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -376,6 +389,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink)); new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
} }
@@ -275,7 +275,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey(); String key = preference.getKey();
@@ -404,6 +420,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -396,6 +412,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
UserPrefs.get(getProfile()) UserPrefs.get(getProfile())
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
@@ -307,7 +307,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
} }
return true; return true;
} }
@@ -436,6 +477,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -428,6 +469,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
} }
@@ -327,30 +327,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -1093,7 +1093,7 @@ BASE_FEATURE(kMagicStackAndroid, @@ -713,7 +713,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT);
// Enables an experimental feature which forces mayLaunchUrl to use a different // Enables an experimental feature which forces mayLaunchUrl to use a different
// storage partition. This may reduce performance. This should not be enabled by // storage partition. This may reduce performance. This should not be enabled by
// default. // default.
-BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, -BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, base::FEATURE_DISABLED_BY_DEFAULT);
+CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, +CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition,
"MayLaunchUrlUsesSeparateStoragePartition", + "MayLaunchUrlUsesSeparateStoragePartition",
base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kMediaIndicatorsAndroid, base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kMiniOriginBar, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kMostVisitedTilesCustomization, base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -943,6 +943,8 @@ public abstract class ChromeFeatureList { @@ -989,6 +989,8 @@ public abstract class ChromeFeatureList {
MOST_VISITED_TILES_CUSTOMIZATION, MOST_VISITED_TILES_CUSTOMIZATION,
/* defaultValue= */ false, /* defaultValue= */ true,
/* defaultValueInTests= */ true); /* defaultValueInTests= */ true);
+ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = + public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition =
+ newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false); + newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false);
public static final CachedFlag sMostVisitedTilesReselect = public static final CachedFlag sMostVisitedTilesReselect =
newCachedFlag(MOST_VISITED_TILES_RESELECT, false); newCachedFlag(MOST_VISITED_TILES_RESELECT, false);
public static final CachedFlag sMultiInstanceApplicationStatusCleanup = public static final CachedFlag sMultiInstanceApplicationStatusCleanup =
@@ -1165,6 +1167,7 @@ public abstract class ChromeFeatureList { @@ -1236,6 +1238,7 @@ public abstract class ChromeFeatureList {
sMaliciousApkDownloadCheck,
sMiniOriginBar, sMiniOriginBar,
sMitigateLegacySearchEnginePromoOverlap,
sMostVisitedTilesCustomization, sMostVisitedTilesCustomization,
+ sMayLaunchurlUsesSeparateStoragePartition, + sMayLaunchurlUsesSeparateStoragePartition,
sMostVisitedTilesReselect, sMostVisitedTilesReselect,
@@ -420,9 +422,9 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c
diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc
--- a/components/language/core/common/language_experiments.cc --- a/components/language/core/common/language_experiments.cc
+++ b/components/language/core/common/language_experiments.cc +++ b/components/language/core/common/language_experiments.cc
@@ -26,4 +26,5 @@ BASE_FEATURE(kDisableGeoLanguageModel, @@ -20,4 +20,5 @@ BASE_FEATURE(kTranslateOpenSettings, base::FEATURE_DISABLED_BY_DEFAULT);
"DisableGeoLanguageModel",
base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kDisableGeoLanguageModel, base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate); +SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate);
} // namespace language } // namespace language
+9 -9
View File
@@ -17,27 +17,27 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml
+++ b/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml
@@ -119,6 +119,7 @@ found in the LICENSE file. @@ -125,6 +125,7 @@ found in the LICENSE file.
<item type="id" name="ntp_feed_header_menu_item_toggle_switch" /> <item type="id" name="ntp_feed_header_menu_item_toggle_switch" />
<!-- App Menu --> <!-- App Menu -->
+ <item type="id" name="exit_id" /> + <item type="id" name="exit_id" />
<item type="id" name="icon_row_menu_id" /> <item type="id" name="icon_row_menu_id" />
<item type="id" name="submenu_header_menu_id" />
<item type="id" name="forward_menu_id" /> <item type="id" name="forward_menu_id" />
<item type="id" name="bookmark_this_page_id" />
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
@@ -345,6 +345,8 @@ import java.util.Map; @@ -363,6 +363,8 @@ import java.util.Set;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.lifetime.ApplicationLifetime; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
+ +
/** /**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs are * This is the main activity for ChromeMobile when not running in document mode. All the tabs are
* accessible via a chrome specific tab switching UI. * accessible via a chrome specific tab switching UI.
@@ -3692,6 +3694,8 @@ public class ChromeTabbedActivity extends ChromeActivity { @@ -3901,6 +3903,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
.closeTabs( .closeTabs(
TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true);
RecordUserAction.record("MobileTabClosed"); RecordUserAction.record("MobileTabClosed");
@@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -59,6 +59,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; @@ -68,6 +68,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityUtils; import org.chromium.chrome.browser.ActivityUtils;
@@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2445,6 +2446,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -2633,6 +2634,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
return true; return true;
} }
@@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -384,6 +384,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm @@ -422,6 +422,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id);
modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); modelList.add(buildContentFilterHelpCenterMenuItem(currentTab));
} }
@@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4347,6 +4347,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d @@ -4437,6 +4437,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]"> <message name="IDS_MENU_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>
@@ -26,20 +26,20 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
#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"
@@ -569,6 +570,15 @@ AutocompleteController::AutocompleteController( @@ -553,6 +554,15 @@ AutocompleteController::AutocompleteController(
provider_client_->GetOmniboxTriggeredFeatureService()),
steady_state_omnibox_position_( steady_state_omnibox_position_(
metrics::OmniboxEventProto::UNKNOWN_POSITION) { metrics::OmniboxEventProto::UNKNOWN_POSITION),
config_(config) {
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"); + const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
+ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH | + config_.provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH |
+ AutocompleteProvider::TYPE_HISTORY_URL | AutocompleteProvider::TYPE_BOOKMARK | AutocompleteProvider::TYPE_BUILTIN; + AutocompleteProvider::TYPE_HISTORY_URL | AutocompleteProvider::TYPE_BOOKMARK | AutocompleteProvider::TYPE_BUILTIN;
+ if (!base::Contains(flag_value, "bookmarks")) + if (!base::Contains(flag_value, "bookmarks"))
+ provider_types &= ~AutocompleteProvider::TYPE_BOOKMARK; + config_.provider_types &= ~AutocompleteProvider::TYPE_BOOKMARK;
+ if (!base::Contains(flag_value, "chrome")) + if (!base::Contains(flag_value, "chrome"))
+ provider_types &= ~AutocompleteProvider::TYPE_BUILTIN; + config_.provider_types &= ~AutocompleteProvider::TYPE_BUILTIN;
+ } + }
provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes(); config_.provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
// Providers run in the order they're added. Async providers should run first // Providers run in the order they're added. Async providers should run first
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
@@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
#include "base/functional/callback.h" #include "base/functional/callback.h"
#include "base/i18n/break_iterator.h" #include "base/i18n/break_iterator.h"
#include "base/i18n/case_conversion.h" #include "base/i18n/case_conversion.h"
@@ -632,6 +633,9 @@ void SearchProvider::Run(bool query_is_private) { @@ -659,6 +660,9 @@ void SearchProvider::Run(bool query_is_private) {
} }
void SearchProvider::DoHistoryQuery(bool minimal_changes) { void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@@ -79,16 +79,16 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
--- a/components/url_formatter/url_fixer.cc --- a/components/url_formatter/url_fixer.cc
+++ b/components/url_formatter/url_fixer.cc +++ b/components/url_formatter/url_fixer.cc
@@ -15,6 +15,8 @@ @@ -11,6 +11,8 @@
#include <string_view>
#include "base/check_op.h" #include "base/check_op.h"
#include "base/compiler_specific.h"
+#include "base/containers/contains.h" +#include "base/containers/contains.h"
+#include "base/command_line.h" +#include "base/command_line.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/i18n/char_iterator.h" #include "base/i18n/char_iterator.h"
@@ -648,6 +650,8 @@ GURL FixupURLInternal(const std::string& text, @@ -640,6 +642,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()) {
@@ -8,40 +8,13 @@ with limited CPU/memory resources and it is disabled by default.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../common/network_features.cc | 3 +++
.../common/network_features.h | 4 ++++
.../common/network_switch_list.h | 4 ++++ .../common/network_switch_list.h | 4 ++++
.../spoof_checks/top_domains/BUILD.gn | 1 + .../spoof_checks/top_domains/BUILD.gn | 1 +
...o-configure-maximum-connections-per-host.inc | 17 +++++++++++++++++ ...o-configure-maximum-connections-per-host.inc | 17 +++++++++++++++++
net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++ net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++
6 files changed, 46 insertions(+) 4 files changed, 39 insertions(+)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-configure-maximum-connections-per-host.inc
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc
--- a/components/network_session_configurator/common/network_features.cc
+++ b/components/network_session_configurator/common/network_features.cc
@@ -8,4 +8,7 @@
namespace features {
+const char kMaxConnectionsPerHostChoiceDefault[] = "6",
+ kMaxConnectionsPerHostChoice15[] = "15";
+
} // namespace features
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
--- a/components/network_session_configurator/common/network_features.h
+++ b/components/network_session_configurator/common/network_features.h
@@ -10,6 +10,10 @@
namespace features {
+NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kMaxConnectionsPerHostChoiceDefault[],
+ kMaxConnectionsPerHostChoice6[],
+ kMaxConnectionsPerHostChoice15[];
+
} // namespace features
#endif // COMPONENTS_NETWORK_SESSION_CONFIGURATOR_COMMON_NETWORK_FEATURES_H_
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
--- a/components/network_session_configurator/common/network_switch_list.h --- a/components/network_session_configurator/common/network_switch_list.h
+++ b/components/network_session_configurator/common/network_switch_list.h +++ b/components/network_session_configurator/common/network_switch_list.h
@@ -54,8 +27,8 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
+NETWORK_SWITCH(kMaxConnectionsPerHost, "max-connections-per-host") +NETWORK_SWITCH(kMaxConnectionsPerHost, "max-connections-per-host")
+ +
// Ignores certificate-related errors. // Ignores certificate-related errors.
NETWORK_SWITCH(kIgnoreCertificateErrors, "ignore-certificate-errors") // Note: In tests using net::EmbeddedTestServer with a custom hostname not
// covered by the default test certs, using this switch is usually incorrect.
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
--- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn
+++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
@@ -75,8 +48,8 @@ new file mode 100644
+#ifdef FEATURE_PARAM_SECTION +#ifdef FEATURE_PARAM_SECTION
+ +
+const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = { +const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = {
+ {features::kMaxConnectionsPerHostChoiceDefault, "", ""}, + {/*features::kMaxConnectionsPerHostChoiceDefault*/ "6", "", ""},
+ {features::kMaxConnectionsPerHostChoice15, switches::kMaxConnectionsPerHost, "15"}, + {/*features::kMaxConnectionsPerHostChoice15*/ "15", switches::kMaxConnectionsPerHost, "15"},
+}; +};
+ +
+#endif +#endif
@@ -92,7 +65,7 @@ new file mode 100644
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
--- a/net/socket/client_socket_pool_manager.cc --- a/net/socket/client_socket_pool_manager.cc
+++ b/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc
@@ -22,6 +22,10 @@ @@ -21,6 +21,10 @@
#include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_handle.h"
#include "net/socket/client_socket_pool.h" #include "net/socket/client_socket_pool.h"
#include "net/socket/connect_job.h" #include "net/socket/connect_job.h"
@@ -103,8 +76,8 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
#include "net/ssl/ssl_config.h" #include "net/ssl/ssl_config.h"
#include "url/gurl.h" #include "url/gurl.h"
#include "url/scheme_host_port.h" #include "url/scheme_host_port.h"
@@ -186,6 +190,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( @@ -165,6 +169,19 @@ void ClientSocketPoolManager::set_socket_soft_cap_per_pool_for_test(
int ClientSocketPoolManager::max_sockets_per_group( size_t 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);
+ +
@@ -45,10 +45,10 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn --- a/net/BUILD.gn
+++ b/net/BUILD.gn +++ b/net/BUILD.gn
@@ -1157,6 +1157,7 @@ component("net") { @@ -1182,6 +1182,7 @@ component("net") {
":net_deps", ":net_deps",
"//components/miracle_parameter/common",
"//components/network_time/time_tracker", "//components/network_time/time_tracker",
"//components/unexportable_keys",
+ "//components/network_session_configurator/common", + "//components/network_session_configurator/common",
"//net/http:transport_security_state_generated_files", "//net/http:transport_security_state_generated_files",
"//third_party/simdutf", "//third_party/simdutf",
@@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
#include "net/log/net_log_with_source.h" #include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h" #include "net/socket/client_socket_factory.h"
#include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context.h"
@@ -1497,6 +1498,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( @@ -1493,6 +1494,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
return OK; return OK;
} }
@@ -15,14 +15,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../ExternalNavigationDelegateImpl.java | 4 ++- .../ExternalNavigationDelegateImpl.java | 4 ++-
.../cromite/sAllowExternalIntentRequests.java | 33 +++++++++++++++++++ .../cromite/sAllowExternalIntentRequests.java | 33 +++++++++++++++++++
...g-to-disable-external-intent-requests.grdp | 9 +++++ ...g-to-disable-external-intent-requests.grdp | 9 +++++
.../android/external_intents_features.cc | 7 +++- .../android/external_intents_features.cc | 6 ++++
.../android/external_intents_features.h | 1 + .../android/external_intents_features.h | 1 +
.../ExternalIntentsFeatures.java | 6 ++++ .../ExternalIntentsFeatures.java | 6 ++++
.../ExternalNavigationHandler.java | 21 ++++++++++++ .../ExternalNavigationHandler.java | 21 ++++++++++++
...ag-to-disable-external-intent-requests.inc | 13 ++++++++ ...ag-to-disable-external-intent-requests.inc | 13 ++++++++
...t-Delete-block-external-form-redirects.inc | 15 +++++++++ ...t-Delete-block-external-form-redirects.inc | 15 +++++++++
...ag-to-disable-external-intent-requests.inc | 3 ++ ...ag-to-disable-external-intent-requests.inc | 3 ++
12 files changed, 118 insertions(+), 3 deletions(-) 12 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-flag-to-disable-external-intent-requests.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-flag-to-disable-external-intent-requests.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc
@@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -77,7 +77,12 @@ found in the LICENSE file. @@ -71,7 +71,12 @@ found in the LICENSE file.
android:title="@string/settings_incognito_tab_lock_title" android:title="@string/settings_incognito_tab_lock_title"
android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off"
android:persistent="false" /> android:persistent="false" />
@@ -49,7 +49,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; @@ -38,6 +38,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate;
@@ -128,6 +129,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @@ -155,6 +156,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory {
@Override @Override
public boolean shouldDisableAllExternalIntents() { public boolean shouldDisableAllExternalIntents() {
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
@@ -26,6 +26,7 @@ import org.chromium.base.supplier.Supplier; @@ -26,6 +26,7 @@ import org.chromium.base.ResettersForTesting;
import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.ChromeTabbedActivity2; import org.chromium.chrome.browser.ChromeTabbedActivity2;
@@ -76,12 +76,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext
import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.document.ChromeLauncherActivity;
@@ -117,7 +118,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @@ -134,7 +135,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
@Override @Override
public boolean shouldDisableExternalIntentRequestsForUrl(GURL url) { public boolean shouldDisableExternalIntentRequestsForUrl(
ExternalNavigationParams params, Intent intent) {
- return false; - return false;
+ if ("tel".equals(url.getScheme())) return false; + if ("tel".equals(params.getUrl().getScheme())) return false;
+ return !sAllowExternalIntentRequests.getInstance().isEnabled(); + return !sAllowExternalIntentRequests.getInstance().isEnabled();
} }
@@ -141,16 +141,8 @@ new file mode 100644
diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc
--- a/components/external_intents/android/external_intents_features.cc --- a/components/external_intents/android/external_intents_features.cc
+++ b/components/external_intents/android/external_intents_features.cc +++ b/components/external_intents/android/external_intents_features.cc
@@ -29,7 +29,6 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -35,7 +35,13 @@ BASE_FEATURE(kExternalNavigationDebugLogs, base::FEATURE_DISABLED_BY_DEFAULT);
&kNavigationCaptureRefactorAndroid, &kAuxiliaryNavigationStaysInBrowser, BASE_FEATURE(kNavigationCaptureRefactorAndroid,
&kReparentTopLevelNavigationFromPWA, &kReparentAuxiliaryNavigationFromPWA,
&kAuxiliaryNavigationStaysInPWA};
-
} // namespace
// Alphabetical:
@@ -62,7 +61,13 @@ BASE_FEATURE(kAuxiliaryNavigationStaysInPWA,
"AuxiliaryNavigationStaysInPWA",
base::FEATURE_DISABLED_BY_DEFAULT); base::FEATURE_DISABLED_BY_DEFAULT);
+CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, +CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture,
@@ -173,7 +165,7 @@ diff --git a/components/external_intents/android/external_intents_features.h b/c
+BASE_DECLARE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture); +BASE_DECLARE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture);
BASE_DECLARE_FEATURE(kExternalNavigationDebugLogs); BASE_DECLARE_FEATURE(kExternalNavigationDebugLogs);
BASE_DECLARE_FEATURE(kBlockFrameRenavigations); BASE_DECLARE_FEATURE(kBlockFrameRenavigations);
BASE_DECLARE_FEATURE(kBlockIntentsToSelf); BASE_DECLARE_FEATURE(kNavigationCaptureRefactorAndroid);
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalIntentsFeatures.java
@@ -188,13 +180,13 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
+ new ExternalIntentsFeature(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME); + new ExternalIntentsFeature(-1, INTENT_BLOCK_EXTERNAL_FORM_REDIRECT_NO_GESTURE_NAME);
+ +
public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs"; public static final String EXTERNAL_NAVIGATION_DEBUG_LOGS_NAME = "ExternalNavigationDebugLogs";
public static final String BLOCK_INTENTS_TO_SELF_NAME = "BlockIntentsToSelf";
public static final String NAVIGATION_CAPTURE_REFACTOR_ANDROID_NAME = public static final String NAVIGATION_CAPTURE_REFACTOR_ANDROID_NAME =
"NavigationCaptureRefactorAndroid";
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -1558,6 +1558,12 @@ public class ExternalNavigationHandler { @@ -1726,6 +1726,12 @@ public class ExternalNavigationHandler {
|| ignoreBackForwardNav(params); return false;
} }
+ /** Wrapper of check against the feature to support overriding for testing. */ + /** Wrapper of check against the feature to support overriding for testing. */
@@ -206,7 +198,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal(
ExternalNavigationParams params, ExternalNavigationParams params,
Intent targetIntent, Intent targetIntent,
@@ -1626,6 +1632,21 @@ public class ExternalNavigationHandler { @@ -1811,6 +1817,21 @@ public class ExternalNavigationHandler {
return OverrideUrlLoadingResult.forNoOverride(); return OverrideUrlLoadingResult.forNoOverride();
} }
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc --- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -105,6 +105,7 @@ void SetRuntimeFeatureDefaultsForPlatform( @@ -106,6 +106,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
WebRuntimeFeatures::EnableMediaSession(false); WebRuntimeFeatures::EnableMediaSession(false);
} }
@@ -78,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;
@@ -108,6 +109,8 @@ bool VibrationController::vibrate(Navigator& navigator, @@ -105,6 +106,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;
@@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1011,6 +1011,10 @@ @@ -1138,6 +1138,10 @@
{ {
name: "CompositingDecisionAtAnimationPhaseBoundaries" name: "CompositingDecisionAtAnimationPhaseBoundaries"
}, },
@@ -7,23 +7,23 @@ Allows build with clangd by suppressing unsupported parameters
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
build/config/compiler/BUILD.gn | 14 +++++++++++--- build/config/compiler/BUILD.gn | 17 ++++++++++++++---
build_overrides/build.gni | 3 +++ build_overrides/build.gni | 5 +++++
2 files changed, 14 insertions(+), 3 deletions(-) 2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -700,7 +700,7 @@ config("compiler") { @@ -734,7 +734,7 @@ config("compiler") {
# TODO(crbug.com/376278218): This causes segfault on Linux ARM builds. # TODO(crbug.com/376278218): This causes segfault on Linux ARM builds.
# It also causes segfault on Linux s390x: # It also causes segfault on Linux s390x:
# https://github.com/llvm/llvm-project/issues/149511 # https://github.com/llvm/llvm-project/issues/149511
- if (is_linux && use_lld && !llvm_android_mainline && current_cpu != "arm" && - if (is_linux && use_lld && current_cpu != "arm" && current_cpu != "s390x") {
+ if (is_linux && !skip_clangd_unsupported_options && use_lld && !llvm_android_mainline && current_cpu != "arm" && + if (is_linux && !skip_clangd_unsupported_options && use_lld && current_cpu != "arm" && current_cpu != "s390x") {
current_cpu != "s390x" &&
default_toolchain != "//build/toolchain/cros:target") {
cflags += [ "-Wa,--crel,--allow-experimental-crel" ] cflags += [ "-Wa,--crel,--allow-experimental-crel" ]
@@ -1813,7 +1813,7 @@ config("clang_revision") { }
}
@@ -1830,7 +1830,7 @@ config("clang_revision") {
# e.g. by setting in the the project's .gn file. # e.g. by setting in the the project's .gn file.
config("clang_warning_suppression") { config("clang_warning_suppression") {
# Some build configs use older versions of clang that don't support WSMs # Some build configs use older versions of clang that don't support WSMs
@@ -32,16 +32,19 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
from_build_root = from_build_root =
rebase_path(clang_warning_suppression_file, root_build_dir) rebase_path(clang_warning_suppression_file, root_build_dir)
inputs = [ clang_warning_suppression_file ] inputs = [ clang_warning_suppression_file ]
@@ -2146,7 +2146,6 @@ config("default_warnings") { @@ -2192,7 +2192,9 @@ config("default_warnings") {
# TODO(crbug.com/376641662): Fix and re-enable. # TODO(crbug.com/432275627): Fix and re-enable.
"-Wno-nontrivial-memcall", "-Wno-uninitialized-const-pointer",
] ]
- -
+ if (skip_clangd_unsupported_options) {
+ cflags -= [ "-Wno-uninitialized-const-pointer" ]
+ }
cflags_cc += [ cflags_cc += [
# TODO(crbug.com/328490295): Fix and re-enable for C flags. # TODO(crbug.com/328490295): Fix and re-enable for C flags.
"-Wenum-compare-conditional", "-Wenum-compare-conditional",
@@ -2211,6 +2210,15 @@ config("default_warnings") { @@ -2246,6 +2248,15 @@ config("default_warnings") {
] ldflags += [ "-Wno-version-check" ]
} }
+ if (skip_clangd_unsupported_options) { + if (skip_clangd_unsupported_options) {
@@ -59,14 +62,16 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
diff --git a/build_overrides/build.gni b/build_overrides/build.gni diff --git a/build_overrides/build.gni b/build_overrides/build.gni
--- a/build_overrides/build.gni --- a/build_overrides/build.gni
+++ b/build_overrides/build.gni +++ b/build_overrides/build.gni
@@ -54,6 +54,9 @@ declare_args() { @@ -54,6 +54,11 @@ declare_args() {
# Allows googletest to pretty-print various absl types.
gtest_enable_absl_printers = true gtest_enable_absl_printers = true
}
+declare_args() {
+ # Allows clangd builds by suppressing unsupported parameters + # Allows clangd builds by suppressing unsupported parameters
+ skip_clangd_unsupported_options = false + skip_clangd_unsupported_options = false
+}
+ +
# Allow projects that wish to stay on C++17 to override Chromium's default. # Features used by //base/trace_event.
# TODO(crbug.com/40251117): evaluate removing this end of 2023 declare_args() {
use_cxx17 = false # Use Perfetto's trace processor for converting protobuf-encoded traces to
-- --
@@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../core/browser/content_settings_utils.h | 6 ++ .../core/browser/content_settings_utils.h | 6 ++
.../core/common/content_settings_enums.mojom | 9 ++ .../core/common/content_settings_enums.mojom | 9 ++
.../page_info/PageInfoController.java | 4 +- .../page_info/PageInfoController.java | 4 +-
.../PermissionParamsListBuilder.java | 13 ++- .../PermissionParamsListBuilder.java | 12 ++-
.../android/page_info_controller_android.cc | 10 ++- .../android/page_info_controller_android.cc | 10 ++-
components/page_info/page_info.cc | 2 + components/page_info/page_info.cc | 2 +
components/page_info/page_info.h | 1 + components/page_info/page_info.h | 1 +
@@ -87,9 +87,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/permissions/permission_prompt.h | 3 +- components/permissions/permission_prompt.h | 3 +-
components/permissions/permission_request.cc | 34 +++++++- components/permissions/permission_request.cc | 34 +++++++-
components/permissions/permission_request.h | 18 +++- components/permissions/permission_request.h | 18 +++-
.../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.cc | 49 ++++++-----
.../permissions/permission_request_manager.h | 11 ++- .../permissions/permission_request_manager.h | 11 ++-
37 files changed, 507 insertions(+), 73 deletions(-) 37 files changed, 508 insertions(+), 75 deletions(-)
diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
--- a/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc
@@ -142,8 +142,8 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br
diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc
--- a/chrome/browser/permissions/one_time_permissions_tracker.cc --- a/chrome/browser/permissions/one_time_permissions_tracker.cc
+++ b/chrome/browser/permissions/one_time_permissions_tracker.cc +++ b/chrome/browser/permissions/one_time_permissions_tracker.cc
@@ -19,8 +19,34 @@ @@ -20,8 +20,34 @@
#include "components/permissions/features.h" #include "components/permissions/permission_util.h"
#include "content/public/browser/visibility.h" #include "content/public/browser/visibility.h"
#include "url/gurl.h" #include "url/gurl.h"
+#include "components/content_settings/core/browser/host_content_settings_map.h" +#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -178,7 +178,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome
OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::~OneTimePermissionsTracker() = default;
OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default;
@@ -254,6 +280,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( @@ -260,6 +286,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed(
for (auto& observer : observer_list_) { for (auto& observer : observer_list_) {
observer.OnLastPageFromOriginClosed(origin); observer.OnLastPageFromOriginClosed(origin);
} }
@@ -202,7 +202,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/
#include "components/content_settings/core/common/content_settings_types.h" #include "components/content_settings/core/common/content_settings_types.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "content/public/browser/visibility.h" #include "content/public/browser/visibility.h"
@@ -24,7 +25,7 @@ class OneTimePermissionsTracker : public KeyedService { @@ -26,7 +27,7 @@ class OneTimePermissionsTracker : public KeyedService {
void (OneTimePermissionsTracker::*)(const url::Origin&); void (OneTimePermissionsTracker::*)(const url::Origin&);
public: public:
@@ -211,7 +211,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/
~OneTimePermissionsTracker() override; ~OneTimePermissionsTracker() override;
OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete; OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete;
@@ -138,7 +139,7 @@ class OneTimePermissionsTracker : public KeyedService { @@ -147,7 +148,7 @@ class OneTimePermissionsTracker : public KeyedService {
base::ObserverList<OneTimePermissionsTrackerObserver> observer_list_; base::ObserverList<OneTimePermissionsTrackerObserver> observer_list_;
std::map<url::Origin, OriginTrackEntry> origin_tracker_; std::map<url::Origin, OriginTrackEntry> origin_tracker_;
@@ -269,7 +269,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -630,6 +630,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @@ -715,6 +715,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
} }
@RequiresNonNull({"mSite"}) @RequiresNonNull({"mSite"})
@@ -281,7 +281,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void setUpClearDataPreference() { private void setUpClearDataPreference() {
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
long usage = mSite.getTotalUsage(); long usage = mSite.getTotalUsage();
@@ -1316,6 +1321,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @@ -1407,6 +1412,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
.getDefaultColor()); .getDefaultColor());
} }
} }
@@ -295,7 +295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
@@ -218,7 +218,7 @@ void GetOrigins(JNIEnv* env, @@ -242,7 +242,7 @@ void GetOrigins(JNIEnv* env,
seen_origins.push_back(origin); seen_origins.push_back(origin);
insertionFunc(env, static_cast<int>(content_type), list, insertionFunc(env, static_cast<int>(content_type), list,
ConvertOriginToJavaString(env, origin), jembedder, ConvertOriginToJavaString(env, origin), jembedder,
@@ -307,7 +307,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -646,6 +646,11 @@ @@ -652,6 +652,11 @@
<message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display"> <message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
URL truncated URL truncated
</message> </message>
@@ -365,7 +365,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
bool CanTrackLastVisit(ContentSettingsType type) { bool CanTrackLastVisit(ContentSettingsType type) {
DCHECK(WebsiteSettingsRegistry::GetInstance()->Get(type)) << type; DCHECK(WebsiteSettingsRegistry::GetInstance()->Get(type)) << type;
@@ -261,10 +297,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrants() { @@ -282,10 +318,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrants() {
ContentSettingsType::CAPTURED_SURFACE_CONTROL, ContentSettingsType::CAPTURED_SURFACE_CONTROL,
#endif #endif
ContentSettingsType::KEYBOARD_LOCK, ContentSettingsType::KEYBOARD_LOCK,
@@ -376,7 +376,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
ContentSettingsType::HAND_TRACKING, ContentSettingsType::HAND_TRACKING,
ContentSettingsType::SMART_CARD_DATA, ContentSettingsType::SMART_CARD_DATA,
ContentSettingsType::AR, ContentSettingsType::AR,
@@ -280,10 +312,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrantsInHcsm() { @@ -301,10 +333,6 @@ const std::vector<ContentSettingsType>& GetTypesWithTemporaryGrantsInHcsm() {
ContentSettingsType::CAPTURED_SURFACE_CONTROL, ContentSettingsType::CAPTURED_SURFACE_CONTROL,
#endif #endif
ContentSettingsType::KEYBOARD_LOCK, ContentSettingsType::KEYBOARD_LOCK,
@@ -425,34 +425,33 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
@@ -378,9 +378,9 @@ public class PageInfoController @@ -387,9 +387,9 @@ public class PageInfoController
String name, */
String nameMidSentence, @CalledByNative
int type, private void addPermissionSection(
- @ContentSettingValues int currentSettingValue) { - String name, String nameMidSentence, int type, boolean allowed, boolean requested) {
+ @ContentSettingValues int currentSettingValue, boolean is_user_session) { + String name, String nameMidSentence, int type, boolean allowed, boolean requested, boolean is_user_session) {
mPermissionParamsListBuilder.addPermissionEntry( mPermissionParamsListBuilder.addPermissionEntry(
- name, nameMidSentence, type, currentSettingValue); - name, nameMidSentence, type, allowed, requested);
+ name, nameMidSentence, type, currentSettingValue, is_user_session); + name, nameMidSentence, type, allowed, requested, is_user_session);
} }
/** Update the permissions view based on the contents of mDisplayedPermissions. */ /** Update the permissions view based on the contents of mDisplayedPermissions. */
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
@@ -48,8 +48,9 @@ public class PermissionParamsListBuilder { @@ -47,8 +47,8 @@ public class PermissionParamsListBuilder {
} }
public void addPermissionEntry( public void addPermissionEntry(
- String name, String nameMidSentence, int type, @ContentSettingValues int value) { - String name, String nameMidSentence, int type, boolean allowed, boolean requested) {
- mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, value)); - mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, allowed, requested));
+ String name, String nameMidSentence, int type, @ContentSettingValues int value, + String name, String nameMidSentence, int type, boolean allowed, boolean requested, boolean is_user_session) {
+ boolean is_user_session) { + mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, allowed, requested, is_user_session));
+ mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, value, is_user_session));
} }
public void clearPermissionEntries() { public void clearPermissionEntries() {
@@ -85,6 +86,10 @@ public class PermissionParamsListBuilder { @@ -85,6 +85,10 @@ public class PermissionParamsListBuilder {
} else { } else {
warningTextResource = R.string.page_info_android_permission_blocked; warningTextResource = R.string.page_info_android_permission_blocked;
} }
@@ -461,21 +460,22 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
+ R.string.page_info_android_permission_session_permission; + R.string.page_info_android_permission_session_permission;
+ } + }
} }
} else { }
assert permission.setting == ContentSettingValues.ASK
@@ -121,13 +126,15 @@ public class PermissionParamsListBuilder { @@ -115,14 +119,16 @@ public class PermissionParamsListBuilder {
public final String nameMidSentence;
public final int type; public final int type;
public final @ContentSettingValues int setting; public final boolean allowed;
public final boolean requested;
+ public final boolean is_user_session; + public final boolean is_user_session;
PageInfoPermissionEntry( PageInfoPermissionEntry(
- String name, String nameMidSentence, int type, @ContentSettingValues int setting) { - String name, String nameMidSentence, int type, boolean allowed, boolean requested) {
+ String name, String nameMidSentence, int type, @ContentSettingValues int setting, boolean is_user_session) { + String name, String nameMidSentence, int type, boolean allowed, boolean requested, boolean is_user_session) {
this.name = name; this.name = name;
this.nameMidSentence = nameMidSentence; this.nameMidSentence = nameMidSentence;
this.type = type; this.type = type;
this.setting = setting; this.allowed = allowed;
this.requested = requested;
+ this.is_user_session = is_user_session; + this.is_user_session = is_user_session;
} }
@@ -483,40 +483,40 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc
--- a/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc
+++ b/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc
@@ -186,6 +186,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( @@ -214,6 +214,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
// being requested. This is needed for the Loud Clapper experiment
std::map<ContentSettingsType, ContentSetting> // (crbug.com/458351800).
user_specified_settings_to_display; bool requested_notifications = false;
+ std::map<ContentSettingsType, bool> + std::map<ContentSettingsType, bool>
+ user_specified_settings_is_user_session; + user_specified_settings_is_user_session;
for (const auto& permission : permission_info_list) { for (const auto& permission : permission_info_list) {
if (base::Contains(permissions_to_display, permission.type)) { if (base::Contains(permissions_to_display, permission.type)) {
@@ -194,6 +196,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( @@ -226,6 +228,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
if (setting_to_display) {
user_specified_settings_to_display[permission.type] = user_specified_settings_to_display[permission.type] =
*setting_to_display; info->delegate().IsAnyPermissionAllowed(*setting_to_display);
+ user_specified_settings_is_user_session[permission.type] = + user_specified_settings_is_user_session[permission.type] =
+ permission.is_user_session; + permission.is_user_session;
} }
}
} // Notifications permission can have the setting to display as DEFAULT
@@ -210,7 +214,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( @@ -252,7 +256,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
ConvertUTF16ToJavaString(env, setting_title),
ConvertUTF16ToJavaString(env, setting_title_mid_sentence), ConvertUTF16ToJavaString(env, setting_title_mid_sentence),
static_cast<jint>(permission), static_cast<jint>(permission),
- static_cast<jint>(user_specified_settings_to_display[permission])); user_specified_settings_to_display[permission],
+ static_cast<jint>(user_specified_settings_to_display[permission]), - requested_notifications);
+ requested_notifications,
+ user_specified_settings_is_user_session[permission]); + user_specified_settings_is_user_session[permission]);
} }
} }
@@ -223,7 +228,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( @@ -265,7 +270,8 @@ void PageInfoControllerAndroid::SetPermissionInfo(
env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title),
ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title),
static_cast<jint>(chosen_object->ui_info->content_settings_type), static_cast<jint>(chosen_object->ui_info->content_settings_type),
- static_cast<jint>(CONTENT_SETTING_ALLOW)); - static_cast<jint>(CONTENT_SETTING_ALLOW), requested_notifications);
+ static_cast<jint>(CONTENT_SETTING_ALLOW), + static_cast<jint>(CONTENT_SETTING_ALLOW), requested_notifications,
+ /* is_user_session */ false); + /* is_user_session */ false);
} }
@@ -524,15 +524,15 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc --- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc
@@ -1256,6 +1256,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, @@ -1296,6 +1296,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
permission_info.is_one_time = permission_info.is_one_time =
(info.metadata.session_model() == (info.metadata.session_model() ==
content_settings::mojom::SessionModel::ONE_TIME); content_settings::mojom::SessionModel::ONE_TIME);
+ permission_info.is_user_session = + permission_info.is_user_session =
+ (info.metadata.session_model() == content_settings::mojom::SessionModel::USER_SESSION); + (info.metadata.session_model() == content_settings::mojom::SessionModel::USER_SESSION);
auto* page_specific_content_settings = GetPageSpecificContentSettings(); auto* setting_info =
if (page_specific_content_settings && setting == CONTENT_SETTING_ALLOW) { content_settings::PermissionSettingsRegistry::GetInstance()->Get(
diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
--- a/components/page_info/page_info.h --- a/components/page_info/page_info.h
+++ b/components/page_info/page_info.h +++ b/components/page_info/page_info.h
@@ -547,9 +547,9 @@ diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
@@ -16,6 +16,7 @@ import org.jni_zero.NativeMethods; @@ -16,6 +16,7 @@ import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.Nullable;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
+import org.chromium.components.content_settings.LifetimeMode; +import org.chromium.components.content_settings.LifetimeMode;
@@ -584,7 +584,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java
@@ -13,6 +13,18 @@ import org.chromium.ui.UiUtils; @@ -14,6 +14,18 @@ import org.chromium.ui.UiUtils;
import org.chromium.ui.modaldialog.ModalDialogProperties; import org.chromium.ui.modaldialog.ModalDialogProperties;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
@@ -603,7 +603,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
/** This class creates the model for the permission dialog. */ /** This class creates the model for the permission dialog. */
@NullMarked @NullMarked
class PermissionDialogModelFactory { class PermissionDialogModelFactory {
@@ -67,7 +79,76 @@ class PermissionDialogModelFactory { @@ -77,7 +89,76 @@ class PermissionDialogModelFactory {
ModalDialogProperties.ButtonStyles.PRIMARY_FILLED_NEGATIVE_OUTLINE) ModalDialogProperties.ButtonStyles.PRIMARY_FILLED_NEGATIVE_OUTLINE)
.with(ModalDialogProperties.CHANGE_CUSTOM_VIEW_OR_BUTTONS, true); .with(ModalDialogProperties.CHANGE_CUSTOM_VIEW_OR_BUTTONS, true);
} }
@@ -684,7 +684,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
+++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc
@@ -118,7 +118,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() { @@ -123,7 +123,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() {
delegate()->FinalizeCurrentRequests(); delegate()->FinalizeCurrentRequests();
} }
@@ -709,7 +709,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
@@ -137,6 +137,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { @@ -138,6 +138,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() {
static_cast<int>(permission_prompt_->GetEmbeddedPromptVariant())); static_cast<int>(permission_prompt_->GetEmbeddedPromptVariant()));
} }
@@ -721,7 +721,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
// static // static
std::unique_ptr<PermissionDialogDelegate> PermissionDialogDelegate::Create( std::unique_ptr<PermissionDialogDelegate> PermissionDialogDelegate::Create(
content::WebContents* web_contents, content::WebContents* web_contents,
@@ -165,12 +170,22 @@ PermissionDialogDelegate::CreateForTesting( @@ -166,12 +171,22 @@ PermissionDialogDelegate::CreateForTesting(
void PermissionDialogDelegate::Accept(JNIEnv* env) { void PermissionDialogDelegate::Accept(JNIEnv* env) {
CHECK(permission_prompt_); CHECK(permission_prompt_);
@@ -745,7 +745,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
} }
void PermissionDialogDelegate::Acknowledge(JNIEnv* env) { void PermissionDialogDelegate::Acknowledge(JNIEnv* env) {
@@ -180,6 +195,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env) { @@ -181,6 +196,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env) {
void PermissionDialogDelegate::Deny(JNIEnv* env) { void PermissionDialogDelegate::Deny(JNIEnv* env) {
CHECK(permission_prompt_); CHECK(permission_prompt_);
@@ -762,7 +762,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.h b/components/permissions/android/permission_prompt/permission_dialog_delegate.h diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.h b/components/permissions/android/permission_prompt/permission_dialog_delegate.h
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.h --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.h
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.h +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.h
@@ -42,6 +42,7 @@ class PermissionDialogJavaDelegate { @@ -43,6 +43,7 @@ class PermissionDialogJavaDelegate {
const favicon_base::FaviconRawBitmapResult& favicon_result); const favicon_base::FaviconRawBitmapResult& favicon_result);
virtual void DismissDialog(); virtual void DismissDialog();
@@ -791,7 +791,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_
diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h
--- a/components/permissions/android/permission_prompt/permission_prompt_android.h --- a/components/permissions/android/permission_prompt/permission_prompt_android.h
+++ b/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/permission_prompt_android.h
@@ -56,9 +56,10 @@ class PermissionPromptAndroid : public PermissionPrompt { @@ -57,9 +57,10 @@ class PermissionPromptAndroid : public PermissionPrompt {
const; const;
virtual void Closing(); virtual void Closing();
virtual void Accept(); virtual void Accept();
@@ -833,7 +833,7 @@ diff --git a/components/permissions/android/permissions_android_strings.grd b/co
diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc
--- a/components/permissions/contexts/geolocation_permission_context_android.cc --- a/components/permissions/contexts/geolocation_permission_context_android.cc
+++ b/components/permissions/contexts/geolocation_permission_context_android.cc +++ b/components/permissions/contexts/geolocation_permission_context_android.cc
@@ -194,7 +194,18 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( @@ -195,7 +195,18 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
PermissionDecision decision, PermissionDecision decision,
bool is_final_decision) { bool is_final_decision) {
DCHECK(is_final_decision); DCHECK(is_final_decision);
@@ -852,25 +852,25 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
bool is_default_search = bool is_default_search =
IsRequestingOriginDSE(request_data.requesting_origin); IsRequestingOriginDSE(request_data.requesting_origin);
if (decision == PermissionDecision::kAllow && if (decision == PermissionDecision::kAllow &&
@@ -209,7 +220,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( @@ -210,7 +221,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, FinishNotifyPermissionSet(
request_data.embedding_origin, request_data.id, request_data.requesting_origin,
std::move(callback), false /* persist */, request_data.embedding_origin, std::move(callback),
- PermissionDecision::kDeny, - false /* persist */, PermissionDecision::kDeny,
+ PermissionDecision::kDeny, lifetime_option, + false /* persist */, PermissionDecision::kDeny, lifetime_option,
request_data.prompt_options); request_data.prompt_options,
request_data.embedded_permission_request_descriptor.Clone());
return; return;
} @@ -232,7 +243,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
@@ -230,7 +241,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( FinishNotifyPermissionSet(
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, request_data.id, request_data.requesting_origin,
request_data.embedding_origin, request_data.embedding_origin, std::move(callback),
std::move(callback), false /* persist */, - false /* persist */, PermissionDecision::kDeny,
- PermissionDecision::kDeny, + false /* persist */, PermissionDecision::kDeny, lifetime_option,
+ PermissionDecision::kDeny, lifetime_option, request_data.prompt_options,
request_data.prompt_options); request_data.embedded_permission_request_descriptor.Clone());
return; return;
} @@ -246,14 +257,14 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
@@ -243,14 +254,14 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
base::BindOnce( base::BindOnce(
&GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown, &GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown,
weak_factory_.GetWeakPtr(), request_data.requesting_origin, weak_factory_.GetWeakPtr(), request_data.requesting_origin,
@@ -880,14 +880,14 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
return; return;
} }
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin, FinishNotifyPermissionSet(
request_data.embedding_origin, std::move(callback), request_data.id, request_data.requesting_origin,
- persist, decision, request_data.prompt_options); - request_data.embedding_origin, std::move(callback), persist, decision,
+ persist, decision, lifetime_option, request_data.prompt_options); + request_data.embedding_origin, std::move(callback), persist, decision, lifetime_option,
request_data.prompt_options,
request_data.embedded_permission_request_descriptor.Clone());
} }
@@ -432,7 +443,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
content::PermissionResult
@@ -427,7 +438,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
const GURL& requesting_origin, const GURL& requesting_origin,
const GURL& embedding_origin, const GURL& embedding_origin,
bool persist, bool persist,
@@ -896,7 +896,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
std::optional<PromptOptions> prompt_options, std::optional<PromptOptions> prompt_options,
LocationSettingsDialogOutcome prompt_outcome) { LocationSettingsDialogOutcome prompt_outcome) {
bool is_default_search = IsRequestingOriginDSE(requesting_origin); bool is_default_search = IsRequestingOriginDSE(requesting_origin);
@@ -447,7 +458,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( @@ -452,7 +463,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown(
FinishNotifyPermissionSet(location_settings_dialog_request_id_, FinishNotifyPermissionSet(location_settings_dialog_request_id_,
requesting_origin, embedding_origin, requesting_origin, embedding_origin,
std::move(location_settings_dialog_callback_), std::move(location_settings_dialog_callback_),
@@ -905,18 +905,18 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
location_settings_dialog_request_id_ = location_settings_dialog_request_id_ =
PermissionRequestID(content::GlobalRenderFrameHostId(0, 0), PermissionRequestID(content::GlobalRenderFrameHostId(0, 0),
@@ -460,7 +471,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( @@ -465,7 +476,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
const GURL& embedding_origin, const GURL& embedding_origin,
BrowserPermissionCallback callback, BrowserPermissionCallback callback,
bool persist, bool persist,
- PermissionDecision decision, - PermissionDecision decision,
+ PermissionDecision decision, content_settings::mojom::LifetimeMode lifetime_option, + PermissionDecision decision, content_settings::mojom::LifetimeMode lifetime_option,
std::optional<PromptOptions> prompt_options) { std::optional<PromptOptions> prompt_options,
PermissionRequestData request_data( blink::mojom::EmbeddedPermissionRequestDescriptorPtr
this, id, embedded_permission_request_descriptor) {
@@ -469,9 +480,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( @@ -478,9 +489,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
blink::PermissionType::GEOLOCATION)), request_data.embedded_permission_request_descriptor =
requesting_origin, embedding_origin); std::move(embedded_permission_request_descriptor);
request_data.prompt_options = prompt_options.value_or(std::monostate()); request_data.prompt_options = prompt_options.value_or(std::monostate());
- GeolocationPermissionContext::NotifyPermissionSet( - GeolocationPermissionContext::NotifyPermissionSet(
+ GeolocationPermissionContext::NotifyPermissionSetImpl( + GeolocationPermissionContext::NotifyPermissionSetImpl(
@@ -951,18 +951,18 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
std::optional<PromptOptions> prompt_options, std::optional<PromptOptions> prompt_options,
LocationSettingsDialogOutcome prompt_outcome); LocationSettingsDialogOutcome prompt_outcome);
@@ -145,6 +152,7 @@ class GeolocationPermissionContextAndroid @@ -146,6 +153,7 @@ class GeolocationPermissionContextAndroid
BrowserPermissionCallback callback, BrowserPermissionCallback callback,
bool persist, bool persist,
PermissionDecision decision, PermissionDecision decision,
+ content_settings::mojom::LifetimeMode lifetime_option, + content_settings::mojom::LifetimeMode lifetime_option,
std::optional<PromptOptions> prompt_options); std::optional<PromptOptions> prompt_options,
blink::mojom::EmbeddedPermissionRequestDescriptorPtr
std::unique_ptr<LocationSettings> location_settings_; embedded_permission_request_descriptor = nullptr);
diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc
--- a/components/permissions/embedded_permission_prompt_flow_model.cc --- a/components/permissions/embedded_permission_prompt_flow_model.cc
+++ b/components/permissions/embedded_permission_prompt_flow_model.cc +++ b/components/permissions/embedded_permission_prompt_flow_model.cc
@@ -295,7 +295,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction( @@ -294,7 +294,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction(
delegate_->Accept(); delegate_->Accept();
break; break;
case DelegateAction::kAllowThisTime: case DelegateAction::kAllowThisTime:
@@ -974,7 +974,7 @@ diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/c
diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc
--- a/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc
+++ b/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc
@@ -260,6 +260,17 @@ PermissionContextBase::CreatePermissionRequest( @@ -281,6 +281,17 @@ PermissionContextBase::CreatePermissionRequest(
std::move(request_finished_callback), UsesAutomaticEmbargo()); std::move(request_finished_callback), UsesAutomaticEmbargo());
} }
@@ -992,7 +992,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
bool PermissionContextBase::UsesAutomaticEmbargo() const { bool PermissionContextBase::UsesAutomaticEmbargo() const {
return true; return true;
} }
@@ -551,7 +562,8 @@ void PermissionContextBase::DecidePermission( @@ -624,7 +635,8 @@ void PermissionContextBase::DecidePermission(
void PermissionContextBase::PermissionDecided( void PermissionContextBase::PermissionDecided(
PermissionDecision decision, PermissionDecision decision,
bool is_final_decision, bool is_final_decision,
@@ -1001,8 +1001,8 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
+ content_settings::mojom::LifetimeMode lifetime_option) { + content_settings::mojom::LifetimeMode lifetime_option) {
UserMadePermissionDecision(request_data.id, request_data.requesting_origin, UserMadePermissionDecision(request_data.id, request_data.requesting_origin,
request_data.embedding_origin, decision); request_data.embedding_origin, decision);
// If a permission request originates from an embedded element, its
@@ -564,11 +576,12 @@ void PermissionContextBase::PermissionDecided( @@ -648,11 +660,12 @@ void PermissionContextBase::PermissionDecided(
// missing if a permission prompt was preignored and we already notified an // missing if a permission prompt was preignored and we already notified an
// origin about it. // origin about it.
if (request->second.second) { if (request->second.second) {
@@ -1019,7 +1019,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
} }
} }
@@ -653,6 +666,30 @@ void PermissionContextBase::NotifyPermissionSet( @@ -737,6 +750,30 @@ void PermissionContextBase::NotifyPermissionSet(
bool persist, bool persist,
PermissionDecision decision, PermissionDecision decision,
bool is_final_decision) { bool is_final_decision) {
@@ -1050,18 +1050,18 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
// Note that rfh may be null, see crbug.com/426909787. // Note that rfh may be null, see crbug.com/426909787.
@@ -668,8 +705,8 @@ void PermissionContextBase::NotifyPermissionSet( @@ -752,8 +789,8 @@ void PermissionContextBase::NotifyPermissionSet(
if (persist) { if (persist) {
// Clone new value, because we need it again for the callback. // Clone new value, because we need it again for the callback.
- UpdateSetting(request_data, std::move(new_value), - UpdateSetting(request_data, new_value,
- decision == PermissionDecision::kAllowThisTime); - decision == PermissionDecision::kAllowThisTime);
+ UpdateSettingImpl(request_data, std::move(new_value), + UpdateSettingImpl(request_data, new_value,
+ decision == PermissionDecision::kAllowThisTime, use_lifetime_option, lifetime_option); + decision == PermissionDecision::kAllowThisTime, use_lifetime_option, lifetime_option);
} }
if (is_final_decision) { if (is_final_decision) {
@@ -706,6 +743,17 @@ void PermissionContextBase::UpdateSetting( @@ -811,6 +848,17 @@ void PermissionContextBase::UpdateSetting(
const PermissionRequestData& request_data, const PermissionRequestData& request_data,
PermissionSetting setting, PermissionSetting setting,
bool is_one_time) { bool is_one_time) {
@@ -1079,19 +1079,19 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_EQ(request_data.requesting_origin, DCHECK_EQ(request_data.requesting_origin,
request_data.requesting_origin.DeprecatedGetOriginAsURL()); request_data.requesting_origin.DeprecatedGetOriginAsURL());
DCHECK_EQ(request_data.embedding_origin, DCHECK_EQ(request_data.embedding_origin,
@@ -715,6 +763,8 @@ void PermissionContextBase::UpdateSetting( @@ -820,6 +868,8 @@ void PermissionContextBase::UpdateSetting(
constraints.set_session_model( constraints.set_session_model(
is_one_time ? content_settings::mojom::SessionModel::ONE_TIME is_one_time ? content_settings::mojom::SessionModel::ONE_TIME
: content_settings::mojom::SessionModel::DURABLE); : content_settings::mojom::SessionModel::DURABLE);
+ if (use_lifetime_option) + if (use_lifetime_option)
+ constraints = content_settings::GetConstraintSessionExpiration(lifetime_option); + constraints = content_settings::GetConstraintSessionExpiration(lifetime_option);
// The Permissions module in Safety check will revoke permissions after // The unused permissions module in Safety check will revoke unused site
// a finite amount of time if the permission can be revoked. // permissions after a finite amount of time if the permission can be revoked.
diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h
--- a/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h
+++ b/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h
@@ -192,6 +192,18 @@ class PermissionContextBase : public content_settings::Observer { @@ -198,6 +198,18 @@ class PermissionContextBase : public content_settings::Observer {
// Updates stored setting if persist is set, updates tab indicators // Updates stored setting if persist is set, updates tab indicators
// and runs the callback to finish the request. // and runs the callback to finish the request.
@@ -1110,7 +1110,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
virtual void NotifyPermissionSet(const PermissionRequestData& request_data, virtual void NotifyPermissionSet(const PermissionRequestData& request_data,
BrowserPermissionCallback callback, BrowserPermissionCallback callback,
bool persist, bool persist,
@@ -209,6 +221,11 @@ class PermissionContextBase : public content_settings::Observer { @@ -214,6 +226,11 @@ class PermissionContextBase : public content_settings::Observer {
// Store the decided permission state. Virtual since the permission might be // Store the decided permission state. Virtual since the permission might be
// stored with different restrictions (for example for desktop notifications). // stored with different restrictions (for example for desktop notifications).
@@ -1122,7 +1122,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
virtual void UpdateSetting(const PermissionRequestData& request_data, virtual void UpdateSetting(const PermissionRequestData& request_data,
PermissionSetting setting, PermissionSetting setting,
bool is_one_time); bool is_one_time);
@@ -238,6 +255,12 @@ class PermissionContextBase : public content_settings::Observer { @@ -243,6 +260,12 @@ class PermissionContextBase : public content_settings::Observer {
PermissionRequest::PermissionDecidedCallback permission_decided_callback, PermissionRequest::PermissionDecidedCallback permission_decided_callback,
base::OnceClosure request_finished_callback) const; base::OnceClosure request_finished_callback) const;
@@ -1135,7 +1135,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
// Implementors can override this method to avoid using automatic embargo. // Implementors can override this method to avoid using automatic embargo.
virtual bool UsesAutomaticEmbargo() const; virtual bool UsesAutomaticEmbargo() const;
@@ -271,7 +294,8 @@ class PermissionContextBase : public content_settings::Observer { @@ -285,7 +308,8 @@ class PermissionContextBase : public content_settings::Observer {
// allows/blocks/dismisses a permission prompt. // allows/blocks/dismisses a permission prompt.
void PermissionDecided(PermissionDecision decision, void PermissionDecided(PermissionDecision decision,
bool is_final_decision, bool is_final_decision,
@@ -1162,7 +1162,7 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions
diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc
--- a/components/permissions/permission_request.cc --- a/components/permissions/permission_request.cc
+++ b/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc
@@ -36,6 +36,16 @@ PermissionRequest::PermissionRequest( @@ -35,6 +35,16 @@ PermissionRequest::PermissionRequest(
request_finished_callback_(std::move(request_finished_callback)), request_finished_callback_(std::move(request_finished_callback)),
uses_automatic_embargo_(uses_automatic_embargo) {} uses_automatic_embargo_(uses_automatic_embargo) {}
@@ -1179,7 +1179,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
PermissionRequest::~PermissionRequest() { PermissionRequest::~PermissionRequest() {
std::move(request_finished_callback_).Run(); std::move(request_finished_callback_).Run();
} }
@@ -424,20 +434,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { @@ -433,20 +443,40 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
return request_type() == RequestType::kStorageAccess; return request_type() == RequestType::kStorageAccess;
} }
@@ -1250,7 +1250,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
PermissionRequest(const PermissionRequest&) = delete; PermissionRequest(const PermissionRequest&) = delete;
PermissionRequest& operator=(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete;
@@ -172,10 +183,10 @@ class PermissionRequest { @@ -180,10 +191,10 @@ class PermissionRequest {
// If |is_one_time| is true the permission will last until all tabs of // If |is_one_time| is true the permission will last until all tabs of
// |origin| are closed or navigated away from, and then the permission will // |origin| are closed or navigated away from, and then the permission will
// automatically expire after 1 day. // automatically expire after 1 day.
@@ -1263,7 +1263,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
// Called when the user has cancelled the permission request. This // Called when the user has cancelled the permission request. This
// corresponds to a denial, but is segregated in case the context needs to // corresponds to a denial, but is segregated in case the context needs to
@@ -237,6 +248,9 @@ class PermissionRequest { @@ -247,6 +258,9 @@ class PermissionRequest {
// Called once a decision is made about the permission. // Called once a decision is made about the permission.
PermissionDecidedCallback permission_decided_callback_; PermissionDecidedCallback permission_decided_callback_;
@@ -1276,7 +1276,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission
diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc
--- a/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc
+++ b/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc
@@ -198,7 +198,7 @@ void PermissionRequestManager::AddRequest( @@ -208,12 +208,12 @@ void PermissionRequestManager::AddRequest(
if (base::CommandLine::ForCurrentProcess()->HasSwitch( if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDenyPermissionPrompts)) { switches::kDenyPermissionPrompts)) {
@@ -1285,27 +1285,36 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
return; return;
} }
@@ -267,7 +267,7 @@ void PermissionRequestManager::AddRequest( if (display::Screen::Get()->IsHeadless()) {
- request->PermissionDenied();
+ request->PermissionDenied(/*is_one_time*/false, content_settings::mojom::LifetimeMode::ALWAYS);
return;
}
@@ -284,9 +284,9 @@ void PermissionRequestManager::AddRequest(
if (should_auto_approve_request) { if (should_auto_approve_request) {
if (should_auto_approve_request == PermissionAction::GRANTED) { if (should_auto_approve_request == PermissionAction::GRANTED) {
- request->PermissionGranted(/*is_one_time=*/false);
+ request->PermissionGranted(/*is_one_time=*/false, content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED);
} else if (should_auto_approve_request == PermissionAction::GRANTED_ONCE) {
- request->PermissionGranted(/*is_one_time=*/true); - request->PermissionGranted(/*is_one_time=*/true);
+ request->PermissionGranted(/*is_one_time=*/true, content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED); + request->PermissionGranted(/*is_one_time=*/true, content_settings::mojom::LifetimeMode::UNTIL_ORIGIN_CLOSED);
} }
return; return;
} }
@@ -626,7 +626,8 @@ void PermissionRequestManager::Accept() { @@ -615,7 +615,8 @@ void PermissionRequestManager::Accept() {
(*requests_iter)->request_type(), StorePermissionActionForUMA(request->requesting_origin(),
PermissionAction::GRANTED); request->request_type(), action);
PermissionGrantedIncludingDuplicates(requests_iter->get(), PermissionGrantedIncludingDuplicates(request.get(),
- /*is_one_time=*/false); - /*is_one_time=*/false);
+ /*is_one_time=*/false, + /*is_one_time=*/false,
+ content_settings::mojom::LifetimeMode::ALWAYS); + content_settings::mojom::LifetimeMode::ALWAYS);
#if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
std::optional<ContentSettingsType> content_settings_type = std::optional<ContentSettingsType> content_settings_type =
@@ -644,7 +645,7 @@ void PermissionRequestManager::Accept() { @@ -633,7 +634,7 @@ void PermissionRequestManager::Accept() {
CurrentRequestsDecided(PermissionAction::GRANTED); CurrentRequestsDecided(action);
} }
-void PermissionRequestManager::AcceptThisTime() { -void PermissionRequestManager::AcceptThisTime() {
@@ -1313,17 +1322,17 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_) { if (ignore_callbacks_from_prompt_) {
return; return;
} }
@@ -658,7 +659,8 @@ void PermissionRequestManager::AcceptThisTime() { @@ -645,7 +646,8 @@ void PermissionRequestManager::AcceptThisTime() {
(*requests_iter)->request_type(), StorePermissionActionForUMA(request->requesting_origin(),
PermissionAction::GRANTED_ONCE); request->request_type(), action);
PermissionGrantedIncludingDuplicates(requests_iter->get(), PermissionGrantedIncludingDuplicates(request.get(),
- /*is_one_time=*/true); - /*is_one_time=*/true);
+ /*is_one_time=*/true, + /*is_one_time=*/true,
+ mode); + mode);
} }
NotifyRequestDecided(PermissionAction::GRANTED_ONCE); NotifyRequestDecided(action);
@@ -666,6 +668,15 @@ void PermissionRequestManager::AcceptThisTime() { @@ -653,6 +655,15 @@ void PermissionRequestManager::AcceptThisTime() {
} }
void PermissionRequestManager::Deny() { void PermissionRequestManager::Deny() {
@@ -1339,16 +1348,16 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_) { if (ignore_callbacks_from_prompt_) {
return; return;
} }
@@ -688,7 +699,7 @@ void PermissionRequestManager::Deny() { @@ -673,7 +684,7 @@ void PermissionRequestManager::Deny() {
StorePermissionActionForUMA((*requests_iter)->requesting_origin(), for (const auto& request : requests_) {
(*requests_iter)->request_type(), StorePermissionActionForUMA(request->requesting_origin(),
PermissionAction::DENIED); request->request_type(), action);
- PermissionDeniedIncludingDuplicates(requests_iter->get()); - PermissionDeniedIncludingDuplicates(request.get());
+ PermissionDeniedIncludingDuplicates(requests_iter->get(), is_one_time, lifetime_option); + PermissionDeniedIncludingDuplicates(request.get(), is_one_time, lifetime_option);
} }
NotifyRequestDecided(PermissionAction::DENIED); NotifyRequestDecided(action);
@@ -1300,32 +1311,32 @@ PermissionRequestManager::VisitDuplicateRequests( @@ -1366,32 +1377,32 @@ PermissionRequestManager::VisitDuplicateRequests(
void PermissionRequestManager::PermissionGrantedIncludingDuplicates( void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
PermissionRequest* request, PermissionRequest* request,
@@ -1391,7 +1400,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
request); request);
} }
@@ -1596,7 +1607,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { @@ -1679,7 +1690,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() {
} }
switch (auto_response_for_test_) { switch (auto_response_for_test_) {
case ACCEPT_ONCE: case ACCEPT_ONCE:
@@ -1403,7 +1412,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
--- a/components/permissions/permission_request_manager.h --- a/components/permissions/permission_request_manager.h
+++ b/components/permissions/permission_request_manager.h +++ b/components/permissions/permission_request_manager.h
@@ -166,8 +166,10 @@ class PermissionRequestManager @@ -175,8 +175,10 @@ class PermissionRequestManager
GURL GetRequestingOrigin() const override; GURL GetRequestingOrigin() const override;
GURL GetEmbeddingOrigin() const override; GURL GetEmbeddingOrigin() const override;
void Accept() override; void Accept() override;
@@ -1415,7 +1424,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
void Dismiss() override; void Dismiss() override;
void Ignore() override; void Ignore() override;
void FinalizeCurrentRequests() override; void FinalizeCurrentRequests() override;
@@ -413,9 +415,12 @@ class PermissionRequestManager @@ -441,9 +443,12 @@ class PermissionRequestManager
// Calls PermissionGranted on a request and all its duplicates. // Calls PermissionGranted on a request and all its duplicates.
void PermissionGrantedIncludingDuplicates(PermissionRequest* request, void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
@@ -16,9 +16,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../dialogs/DownloadLocationCustomView.java | 4 +- .../dialogs/DownloadLocationCustomView.java | 4 +-
.../strings/android_chrome_strings.grd | 3 ++ .../strings/android_chrome_strings.grd | 3 ++
.../bookmark_ui_operations_helper.cc | 2 + .../bookmark_ui_operations_helper.cc | 2 +
.../bookmark_bar_page_handler.cc | 2 +
components/bookmark_bar_strings.grdp | 6 +++ components/bookmark_bar_strings.grdp | 6 +++
.../bookmarks/browser/bookmark_codec.cc | 20 +++++++-- .../bookmarks/browser/bookmark_codec.cc | 14 +++++-
components/bookmarks/browser/bookmark_codec.h | 7 ++- components/bookmarks/browser/bookmark_codec.h | 4 ++
.../browser/bookmark_load_details.cc | 15 +++++-- .../browser/bookmark_load_details.cc | 15 +++++--
.../bookmarks/browser/bookmark_load_details.h | 2 + .../bookmarks/browser/bookmark_load_details.h | 2 +
.../bookmarks/browser/bookmark_model.cc | 3 +- .../bookmarks/browser/bookmark_model.cc | 3 +-
@@ -30,15 +31,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/bookmark_uuids.h | 1 +
components/bookmarks/browser/model_loader.cc | 9 +++- components/bookmarks/browser/model_loader.cc | 9 +++-
.../bookmark_specifics_conversions.cc | 1 + .../bookmark_specifics_conversions.cc | 1 +
26 files changed, 255 insertions(+), 14 deletions(-) 27 files changed, 251 insertions(+), 11 deletions(-)
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml
+++ b/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml
@@ -180,6 +180,7 @@ found in the LICENSE file. @@ -197,6 +197,7 @@ found in the LICENSE file.
<item type="id" name="menu_select_tabs" />
<item type="id" name="menu_item_content_filter_divider_line_id" /> <item type="id" name="menu_item_content_filter_divider_line_id" />
<item type="id" name="menu_item_content_filter_help_center_id" /> <item type="id" name="menu_item_content_filter_help_center_id" />
<item type="id" name="duplicate_tab_menu_id" />
+ <item type="id" name="bookmark_all_tabs_menu_id" /> + <item type="id" name="bookmark_all_tabs_menu_id" />
<!-- Custom Tabs --> <!-- Custom Tabs -->
@@ -46,7 +47,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/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -103,6 +103,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; @@ -100,6 +100,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -54,35 +55,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -287,6 +288,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac @@ -299,6 +300,9 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
import org.chromium.chrome.browser.ui.browser_window.BrowserWindowType;
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridgeFactory;
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin;
import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig;
@@ -298,6 +302,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; @@ -314,6 +318,8 @@ import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl;
import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl;
import org.chromium.components.browser_ui.accessibility.AccessibilityFeatureMap;
+import org.chromium.components.bookmarks.BookmarkId; +import org.chromium.components.bookmarks.BookmarkId;
+import org.chromium.components.bookmarks.BookmarkItem; +import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.edge_to_edge.SystemBarColorHelper; import org.chromium.components.browser_ui.share.ShareParams;
import org.chromium.components.browser_ui.edge_to_edge.TabbedSystemBarColorHelper; import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate;
@@ -3724,6 +3730,8 @@ public class ChromeTabbedActivity extends ChromeActivity { @@ -3929,6 +3935,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
getTabModelSelectorSupplier().get(), CloseAllTabsDialog.show(
closeAllTabsRunnable); this, getModalDialogManagerSupplier(), tabModelSelector, closeAllTabsRunnable);
RecordUserAction.record("MobileMenuCloseAllTabs"); RecordUserAction.record("MobileMenuCloseAllTabs");
+ } else if (id == R.id.bookmark_all_tabs_menu_id) { + } else if (id == R.id.bookmark_all_tabs_menu_id) {
+ bookmarkAllTabs(); + bookmarkAllTabs();
} else if (id == R.id.close_all_incognito_tabs_menu_id) { } else if (id == R.id.close_all_incognito_tabs_menu_id) {
boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion); boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion);
@@ -3848,6 +3856,41 @@ public class ChromeTabbedActivity extends ChromeActivity { @@ -4058,6 +4066,41 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
} }
@@ -127,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -270,6 +270,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm @@ -292,6 +292,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
// Bookmarks // Bookmarks
modelList.add(buildBookmarksItem()); modelList.add(buildBookmarksItem());
@@ -142,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
// Recent Tabs // Recent Tabs
if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem());
@@ -434,6 +442,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm @@ -478,6 +486,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
} }
modelList.add(buildCloseAllTabsItem()); modelList.add(buildCloseAllTabsItem());
if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem()); if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem());
@@ -159,7 +160,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
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
@@ -340,6 +340,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { @@ -336,6 +336,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
return bookmark_model_->account_mobile_node() != nullptr; return bookmark_model_->account_mobile_node() != nullptr;
} }
@@ -193,7 +194,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
base::android::ScopedJavaLocalRef<jobject> base::android::ScopedJavaLocalRef<jobject>
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env,
const GURL& url) { const GURL& url) {
@@ -452,6 +479,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( @@ -448,6 +475,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
// Vector to temporarily contain all child bookmarks at same level for sorting // Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarks = { std::vector<const BookmarkNode*> bookmarks = {
bookmark_model_->mobile_node(), bookmark_model_->mobile_node(),
@@ -201,7 +202,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(), bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(), bookmark_model_->other_node(),
}; };
@@ -560,6 +588,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl( @@ -556,6 +584,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
top_level_folders.push_back(other_node); top_level_folders.push_back(other_node);
} }
@@ -211,7 +212,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
const BookmarkNode* reading_list_node = const BookmarkNode* reading_list_node =
local_or_syncable_reading_list_manager_->GetRoot(); local_or_syncable_reading_list_manager_->GetRoot();
if (IsPermanentFolderVisible( if (IsPermanentFolderVisible(
@@ -1237,6 +1268,17 @@ void BookmarkBridge::GetBookmarksOfType( @@ -1229,6 +1260,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results); AddBookmarkNodesToBookmarkIdList(env, j_list, results);
} }
@@ -459,7 +460,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4482,6 +4482,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d @@ -4562,6 +4562,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]"> <message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs Select tabs
</message> </message>
@@ -481,6 +482,18 @@ diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chro
case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::URL:
NOTREACHED(); NOTREACHED();
case bookmarks::BookmarkNode::FOLDER: case bookmarks::BookmarkNode::FOLDER:
diff --git a/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc b/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc
--- a/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc
+++ b/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc
@@ -37,6 +37,8 @@ bookmark_bar::mojom::BookmarkType ConvertType(
return bookmark_bar::mojom::BookmarkType::OTHER_NODE;
case bookmarks::BookmarkNode::MOBILE:
return bookmark_bar::mojom::BookmarkType::MOBILE;
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
+ NOTREACHED();
}
NOTREACHED();
}
diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp
--- a/components/bookmark_bar_strings.grdp --- a/components/bookmark_bar_strings.grdp
+++ b/components/bookmark_bar_strings.grdp +++ b/components/bookmark_bar_strings.grdp
@@ -507,15 +520,15 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
--- a/components/bookmarks/browser/bookmark_codec.cc --- a/components/bookmarks/browser/bookmark_codec.cc
+++ b/components/bookmarks/browser/bookmark_codec.cc +++ b/components/bookmarks/browser/bookmark_codec.cc
@@ -36,6 +36,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; @@ -39,6 +39,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other"; const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
// The value is left as 'synced' for historical reasons. // The value is left as 'synced' for historical reasons.
const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced"; const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
+const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs"; +const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs";
const char BookmarkCodec::kVersionKey[] = "version"; const char BookmarkCodec::kVersionKey[] = "version";
const char BookmarkCodec::kChecksumKey[] = "checksum"; const char BookmarkCodec::kChecksumKey[] = "checksum";
const char BookmarkCodec::kIdKey[] = "id"; const char BookmarkCodec::kChecksumSHA256Key[] = "checksum_sha256";
@@ -73,6 +74,7 @@ base::Value::Dict BookmarkCodec::Encode( @@ -99,6 +100,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,
@@ -523,7 +536,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
std::string sync_metadata_str) { std::string sync_metadata_str) {
ids_reassigned_ = false; ids_reassigned_ = false;
uuids_reassigned_ = false; uuids_reassigned_ = false;
@@ -98,6 +100,8 @@ base::Value::Dict BookmarkCodec::Encode( @@ -124,6 +126,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));
@@ -532,15 +545,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
} else { } else {
// No permanent node should have been provided. // No permanent node should have been provided.
CHECK(!other_folder_node); CHECK(!other_folder_node);
@@ -119,6 +123,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, @@ -144,6 +148,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) {
const int64_t max_already_assigned_id = if (sync_metadata_str) {
@@ -133,7 +138,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, @@ -156,13 +161,15 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
base::Uuid::ParseLowercase(kBookmarkBarNodeUuid), base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid), base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid), base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
@@ -549,24 +562,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
+ base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid)}; + base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid)};
ids_reassigned_ = false; ids_reassigned_ = false;
uuids_reassigned_ = false; uuids_reassigned_ = false;
ids_valid_ = true; nodes_requiring_id_reassignment_.clear();
@@ -141,13 +147,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, reassigned_ids_per_old_id_.clear();
stored_checksum_.clear();
InitializeChecksum();
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node, bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
+ tabs_folder_node, + tabs_folder_node,
value, sync_metadata_str); value, sync_metadata_str);
FinalizeChecksum(); ReassignIDsIfRequired();
// If either the checksums differ or some IDs were missing/not unique,
// reassign IDs. @@ -220,6 +227,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
if (!ids_valid_ || computed_checksum_ != stored_checksum_) {
maximum_id_ = max_already_assigned_id;
- ReassignIDs(bb_node, other_folder_node, mobile_folder_node);
+ ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node);
}
*max_id = maximum_id_ + 1;
return success;
@@ -205,6 +212,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node, BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node, BookmarkNode* mobile_folder_node,
@@ -574,7 +578,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const base::Value::Dict& value, const base::Value::Dict& value,
std::string* sync_metadata_str) { std::string* sync_metadata_str) {
std::optional<int> version = value.FindInt(kVersionKey); std::optional<int> version = value.FindInt(kVersionKey);
@@ -237,6 +245,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, @@ -243,6 +251,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);
@@ -583,7 +587,7 @@ 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;
@@ -244,6 +254,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, @@ -250,6 +260,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);
@@ -592,26 +596,10 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
// Need to reset the title as the title is persisted and restored from // Need to reset the title as the title is persisted and restored from
// the file. // the file.
@@ -475,12 +487,14 @@ void BookmarkCodec::DecodeMetaInfoHelper(
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
- BookmarkNode* mobile_node) {
+ BookmarkNode* mobile_node,
+ BookmarkNode* tabs_folder_node) {
ids_.clear();
reassigned_ids_per_old_id_.clear();
ReassignIDsHelper(bb_node);
ReassignIDsHelper(other_node);
ReassignIDsHelper(mobile_node);
+ ReassignIDsHelper(tabs_folder_node);
ids_reassigned_ = true;
}
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
--- a/components/bookmarks/browser/bookmark_codec.h --- a/components/bookmarks/browser/bookmark_codec.h
+++ b/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h
@@ -43,6 +43,7 @@ class BookmarkCodec { @@ -44,6 +44,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,
@@ -619,7 +607,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
std::string sync_metadata_str); std::string sync_metadata_str);
// Decodes the previously encoded value to the specified nodes as well as // Decodes the previously encoded value to the specified nodes as well as
@@ -61,6 +62,7 @@ class BookmarkCodec { @@ -62,6 +63,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,
@@ -627,15 +615,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);
@@ -92,6 +94,7 @@ class BookmarkCodec { @@ -95,6 +97,7 @@ class BookmarkCodec {
static const char kBookmarkBarFolderNameKey[]; static const char kBookmarkBarFolderNameKey[];
static const char kOtherBookmarkFolderNameKey[]; static const char kOtherBookmarkFolderNameKey[];
static const char kMobileBookmarkFolderNameKey[]; static const char kMobileBookmarkFolderNameKey[];
+ static const char kTabsBookmarkFolderNameKey[]; + static const char kTabsBookmarkFolderNameKey[];
static const char kVersionKey[]; static const char kVersionKey[];
static const char kChecksumKey[]; static const char kChecksumKey[];
static const char kIdKey[]; static const char kChecksumSHA256Key[];
@@ -124,6 +127,7 @@ class BookmarkCodec { @@ -128,6 +131,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,
@@ -643,16 +631,6 @@ 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);
@@ -134,7 +138,8 @@ class BookmarkCodec {
// Reassigns bookmark IDs for all nodes.
void ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
- BookmarkNode* mobile_node);
+ BookmarkNode* mobile_node,
+ BookmarkNode* tabs_folder_node);
// Helper to recursively reassign IDs.
void ReassignIDsHelper(BookmarkNode* node);
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
--- a/components/bookmarks/browser/bookmark_load_details.cc --- a/components/bookmarks/browser/bookmark_load_details.cc
+++ b/components/bookmarks/browser/bookmark_load_details.cc +++ b/components/bookmarks/browser/bookmark_load_details.cc
@@ -735,7 +713,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc
@@ -909,7 +909,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const { @@ -908,7 +908,7 @@ bool BookmarkModel::HasUserCreatedBookmarksOrFolders() const {
(account_bookmark_bar_node_ && (account_bookmark_bar_node_ &&
!account_bookmark_bar_node_->children().empty()) || !account_bookmark_bar_node_->children().empty()) ||
(account_other_node_ && !account_other_node_->children().empty()) || (account_other_node_ && !account_other_node_->children().empty()) ||
@@ -744,7 +722,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
} }
bool BookmarkModel::IsBookmarked(const GURL& url) const { bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1241,6 +1241,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) { @@ -1240,6 +1240,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();
@@ -906,7 +884,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
@@ -442,6 +442,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( @@ -447,6 +447,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
case bookmarks::BookmarkNode::BOOKMARK_BAR: case bookmarks::BookmarkNode::BOOKMARK_BAR:
case bookmarks::BookmarkNode::OTHER_NODE: case bookmarks::BookmarkNode::OTHER_NODE:
case bookmarks::BookmarkNode::MOBILE: case bookmarks::BookmarkNode::MOBILE:
@@ -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/values/ids.xml b/chrome/android/java/res/values/ids.xml diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml
+++ b/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml
@@ -129,6 +129,7 @@ found in the LICENSE file. @@ -136,6 +136,7 @@ found in the LICENSE file.
<item type="id" name="update_menu_id" /> <item type="id" name="update_menu_id" />
<item type="id" name="new_tab_menu_id" /> <item type="id" name="new_tab_menu_id" />
<item type="id" name="new_incognito_tab_menu_id" /> <item type="id" name="new_incognito_tab_menu_id" />
@@ -27,7 +27,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/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
@@ -3764,6 +3764,8 @@ public class ChromeTabbedActivity extends ChromeActivity { @@ -3965,6 +3965,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
} }
RecordUserAction.record("MobileMenuDownloadManager"); RecordUserAction.record("MobileMenuDownloadManager");
@@ -39,7 +39,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
@@ -2602,6 +2602,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -2797,6 +2797,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
return doOpenWebApk(currentTab); return doOpenWebApk(currentTab);
} }
@@ -54,7 +54,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
@@ -957,6 +957,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties @@ -1024,6 +1024,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
return false; return false;
} }
@@ -88,7 +88,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
@@ -370,6 +370,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat @@ -406,6 +406,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
modelList.add(buildAddToHomescreenListItem(currentTab, false)); modelList.add(buildAddToHomescreenListItem(currentTab, false));
} }
@@ -101,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -334,6 +334,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm @@ -370,6 +370,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem()));
} }
@@ -114,8 +114,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines: @@ -339,6 +339,10 @@ CHAR_LIMIT guidelines:
Collaboration Chrome Tips
</message> </message>
+ <message name="IDS_VIEW_SOURCE" desc="Title for the menu command to view the source of the current page. [CHAR-LIMIT=40]"> + <message name="IDS_VIEW_SOURCE" desc="Title for the menu command to view the source of the current page. [CHAR-LIMIT=40]">
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -480,7 +480,12 @@ class TabGridViewBinder { @@ -512,7 +512,12 @@ class TabGridViewBinder {
if (result != null) { if (result != null) {
TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize); TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
} else { } else {
@@ -29,7 +29,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
} }
}; };
if (sThumbnailFetcherForTesting != null) { if (sThumbnailFetcherForTesting != null) {
@@ -518,6 +523,7 @@ class TabGridViewBinder { @@ -550,6 +555,7 @@ class TabGridViewBinder {
*/ */
private static void setFavicon( private static void setFavicon(
ImageView faviconView, PropertyModel model, @Nullable TabFavicon favicon) { ImageView faviconView, PropertyModel model, @Nullable TabFavicon favicon) {
@@ -40,7 +40,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
@@ -127,6 +127,9 @@ public class TabProperties { @@ -130,6 +130,9 @@ public class TabProperties {
public static final WritableBooleanPropertyKey FAVICON_FETCHED = public static final WritableBooleanPropertyKey FAVICON_FETCHED =
new WritableBooleanPropertyKey(); new WritableBooleanPropertyKey();
@@ -50,7 +50,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/** Property for lazily fetching favicons when required by an item in a UI. */ /** Property for lazily fetching favicons when required by an item in a UI. */
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher> public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
FAVICON_FETCHER = new WritableObjectPropertyKey<>(); FAVICON_FETCHER = new WritableObjectPropertyKey<>();
@@ -220,6 +223,7 @@ public class TabProperties { @@ -224,6 +227,7 @@ public class TabProperties {
CARD_TYPE, CARD_TYPE,
CONTENT_DESCRIPTION_TEXT_RESOLVER, CONTENT_DESCRIPTION_TEXT_RESOLVER,
ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER, ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER,
@@ -58,7 +58,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
QUICK_DELETE_ANIMATION_STATUS, QUICK_DELETE_ANIMATION_STATUS,
TAB_GROUP_COLOR_VIEW_PROVIDER, TAB_GROUP_COLOR_VIEW_PROVIDER,
TAB_GROUP_CARD_COLOR, TAB_GROUP_CARD_COLOR,
@@ -259,6 +263,7 @@ public class TabProperties { @@ -264,6 +268,7 @@ public class TabProperties {
TAB_ACTION_BUTTON_DATA, TAB_ACTION_BUTTON_DATA,
FAVICON_FETCHED, FAVICON_FETCHED,
FAVICON_FETCHER, FAVICON_FETCHER,
@@ -69,7 +69,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -73,6 +73,11 @@ found in the LICENSE file. @@ -67,6 +67,11 @@ found in the LICENSE file.
android:title="@string/open_external_links_incognito_title" android:title="@string/open_external_links_incognito_title"
android:summary="@string/open_external_links_incognito_summary" android:summary="@string/open_external_links_incognito_summary"
android:defaultValue="false" /> android:defaultValue="false" />
@@ -84,15 +84,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -147,6 +147,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; @@ -158,6 +158,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.printing.TabPrinter;
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings; +import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
@@ -641,7 +642,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -679,7 +680,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
new TabContentManager( new TabContentManager(
this, this,
mBrowserControlsManagerSupplier.get(), mBrowserControlsManagerSupplier.get(),
@@ -109,11 +109,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import org.chromium.base.IntentUtils; import org.chromium.base.IntentUtils;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.base.supplier.Supplier; +import java.util.function.Supplier;
import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.NullMarked;
@@ -98,12 +99,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; @@ -99,13 +100,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
@@ -126,6 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import java.util.List; import java.util.List;
/** Fragment to keep track of the all the privacy related preferences. */ /** Fragment to keep track of the all the privacy related preferences. */
@NullMarked
public class PrivacySettings extends ChromeBaseSettingsFragment public class PrivacySettings extends ChromeBaseSettingsFragment
- implements Preference.OnPreferenceChangeListener { - implements Preference.OnPreferenceChangeListener {
+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager { + implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
@@ -141,7 +142,7 @@ 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";
@@ -215,6 +230,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -201,6 +216,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
} }
} }
@@ -155,7 +156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ ApplicationLifetime.terminate(true); + ApplicationLifetime.terminate(true);
+ } + }
+ }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) + }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN)
+ .setSingleLine(false) + .setDefaultLines(false)
+ .setAction(getActivity().getString(R.string.relaunch), + .setAction(getActivity().getString(R.string.relaunch),
+ /*actionData*/null) + /*actionData*/null)
+ .setDuration(/*durationMs*/70000); + .setDuration(/*durationMs*/70000);
@@ -163,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
// Record the launch of PG from the S&P link-row entry point // Record the launch of PG from the S&P link-row entry point
privacyGuidePreference.setOnPreferenceClickListener( privacyGuidePreference.setOnPreferenceClickListener(
@@ -441,6 +471,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -433,6 +463,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
@@ -171,7 +172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -487,6 +518,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -479,6 +510,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
sharedPreferencesEditor.apply(); sharedPreferencesEditor.apply();
@@ -185,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
} }
return true; return true;
} }
@@ -537,6 +575,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -529,6 +567,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
: R.string.text_off); : R.string.text_off);
} }
@@ -199,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -6194,6 +6194,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d @@ -6506,6 +6506,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow. Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
</message> </message>
+103 -114
View File
@@ -9,9 +9,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../java/res/values-sw600dp/dimens.xml | 4 ++-- .../java/res/values-sw600dp/dimens.xml | 4 ++--
chrome/android/java/res/values/dimens.xml | 6 +++++- chrome/android/java/res/values/dimens.xml | 6 +++++-
.../browser/ChromeBaseAppCompatActivity.java | 3 +++ .../browser/ChromeBaseAppCompatActivity.java | 3 +++
.../chrome/browser/WarmupManager.java | 5 ++++- .../chrome/browser/WarmupManager.java | 7 +++++--
.../ChromeAccessibilitySettingsDelegate.java | 19 ++++++++++++++++++ .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++
.../chrome/browser/app/ChromeActivity.java | 4 +++- .../chrome/browser/app/ChromeActivity.java | 5 ++++-
.../overlays/strip/StripLayoutHelper.java | 10 ++++++++-- .../overlays/strip/StripLayoutHelper.java | 10 ++++++++--
.../strip/StripLayoutHelperManager.java | 6 +++++- .../strip/StripLayoutHelperManager.java | 6 +++++-
.../scene_layer/TabStripSceneLayer.java | 8 ++++++++ .../scene_layer/TabStripSceneLayer.java | 8 ++++++++
@@ -20,25 +20,24 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../chrome/browser/ui/RootUiCoordinator.java | 6 +++++- .../chrome/browser/ui/RootUiCoordinator.java | 6 +++++-
chrome/browser/preferences/BUILD.gn | 1 + chrome/browser/preferences/BUILD.gn | 1 +
.../preferences/ChromePreferenceKeys.java | 1 + .../preferences/ChromePreferenceKeys.java | 1 +
.../preferences/ChromeSharedPreferences.java | 12 +++++++++++ .../preferences/ChromeSharedPreferences.java | 12 ++++++++++++
.../LegacyChromePreferenceKeys.java | 1 + .../LegacyChromePreferenceKeys.java | 1 +
.../AppHeaderCoordinator.java | 2 ++ .../ui/desktop_windowing/AppHeaderUtils.java | 2 ++
.../omnibox/LocationBarCoordinator.java | 2 +- .../omnibox/LocationBarCoordinator.java | 2 +-
.../strings/android_chrome_strings.grd | 7 +++++++ .../strings/android_chrome_strings.grd | 7 +++++++
.../java/res/layout/control_container.xml | 8 ++++---- .../java/res/layout/control_container.xml | 8 ++++----
.../java/res/layout/toolbar_tablet.xml | 2 +- .../java/res/layout/toolbar_tablet.xml | 2 +-
.../java/res/values-sw600dp/dimens.xml | 5 +++-- .../java/res/values-sw600dp/dimens.xml | 5 +++--
.../toolbar/java/res/values/dimens.xml | 6 ++++-- .../toolbar/java/res/values/dimens.xml | 6 ++++--
.../browser/toolbar/ControlContainer.java | 2 +- .../toolbar/top/ToolbarControlContainer.java | 19 +++++++++++++++++++
.../toolbar/top/ToolbarControlContainer.java | 20 ++++++++++++++++++-
.../browser/toolbar/top/ToolbarLayout.java | 5 ++++- .../browser/toolbar/top/ToolbarLayout.java | 5 ++++-
.../tab_strip/HeightTransitionHandler.java | 2 ++ .../tab_strip/HeightTransitionHandler.java | 2 ++
.../TabStripTransitionCoordinator.java | 6 +++++- .../TabStripTransitionCoordinator.java | 6 +++++-
.../res/xml/accessibility_preferences.xml | 5 +++++ .../res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/AccessibilitySettings.java | 13 ++++++++++++ .../accessibility/AccessibilitySettings.java | 13 +++++++++++++
.../AccessibilitySettingsDelegate.java | 2 ++ .../AccessibilitySettingsDelegate.java | 2 ++
.../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++++ .../chromium/ui/base/DeviceFormFactor.java | 14 ++++++++++++++
34 files changed, 171 insertions(+), 26 deletions(-) 33 files changed, 172 insertions(+), 25 deletions(-)
diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml
--- a/chrome/android/java/res/layout/custom_tabs_control_container.xml --- a/chrome/android/java/res/layout/custom_tabs_control_container.xml
@@ -81,8 +80,8 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
--- a/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml
@@ -119,9 +119,13 @@ found in the LICENSE file. @@ -116,9 +116,13 @@ found in the LICENSE file.
<dimen name="tab_modal_scrim_vertical_margin">16dp</dimen> <dimen name="signin_screen_top_padding">50dp</dimen>
<!-- Should match toolbar_height_no_shadow --> <!-- Should match toolbar_height_no_shadow -->
- <dimen name="control_container_height">@dimen/default_action_bar_height</dimen> - <dimen name="control_container_height">@dimen/default_action_bar_height</dimen>
@@ -105,8 +104,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController; import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController;
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager; import org.chromium.components.browser_ui.styles.SemanticColorUtils;
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.components.browser_ui.util.AutomotiveUtils;
@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity @@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
protected void attachBaseContext(Context newBase) { protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase); super.attachBaseContext(newBase);
@@ -119,22 +118,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
@@ -69,6 +69,7 @@ import org.chromium.content_public.browser.WebContents; @@ -63,6 +63,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer;
import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.net.NetId; import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.LayoutInflaterUtils; import org.chromium.ui.LayoutInflaterUtils;
+import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.display.DisplayUtil; import org.chromium.ui.display.DisplayUtil;
import org.chromium.url.GURL; import org.chromium.url.GURL;
@@ -491,7 +492,9 @@ public class WarmupManager { @@ -472,8 +473,10 @@ public class WarmupManager {
ControlContainer controlContainer = mainView.findViewById(R.id.control_container); ControlContainer controlContainer = mainView.findViewById(R.id.control_container);
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
- controlContainer.initWithToolbar(toolbarId); - controlContainer.initWithToolbar(
- toolbarId, R.dimen.custom_tabs_control_container_height);
+ controlContainer.initWithToolbar(toolbarId, + controlContainer.initWithToolbar(toolbarId,
+ DeviceFormFactor.isForceTabletUI() + DeviceFormFactor.isForceTabletUI()
+ ? R.dimen.control_container_height_tabletui : 0); + ? R.dimen.control_container_height_tabletui
+ : R.dimen.custom_tabs_control_container_height);
} }
return mainView; return mainView;
} catch (InflateException e) { } catch (InflateException e) {
@@ -170,21 +171,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -791,7 +791,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -830,7 +830,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
// Inflate the correct toolbar layout for the device. // Inflate the correct toolbar layout for the device.
int toolbarLayoutId = getToolbarLayoutId(); int toolbarLayoutId = getToolbarLayoutId();
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
- controlContainer.initWithToolbar(toolbarLayoutId); - controlContainer.initWithToolbar(toolbarLayoutId, getToolbarLayoutHeightResId());
+ controlContainer.initWithToolbar(toolbarLayoutId, + controlContainer.initWithToolbar(toolbarLayoutId,
+ DeviceFormFactor.isForceTabletUI() + DeviceFormFactor.isForceTabletUI()
+ ? R.dimen.control_container_height_tabletui : 0); + ? R.dimen.control_container_height_tabletui
+ : getToolbarLayoutHeightResId());
} }
onInitialLayoutInflationComplete(); onInitialLayoutInflationComplete();
} }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
@@ -127,6 +127,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; @@ -137,6 +137,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_group_sync.TriggerSource;
import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.components.tab_groups.TabGroupColorId;
import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.accessibility.AccessibilityState;
@@ -192,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.util.ColorUtils; import org.chromium.ui.util.ColorUtils;
@@ -4955,8 +4956,13 @@ public class StripLayoutHelper @@ -5317,8 +5318,13 @@ public class StripLayoutHelper
mCloseButtonMenu.setAnchorView(tabView); mCloseButtonMenu.setAnchorView(tabView);
// 3. Set the vertical offset to align the close button menu with bottom of the tab strip // 3. Set the vertical offset to align the close button menu with bottom of the tab strip
int tabHeight = mManagerHost.getHeight(); int tabHeight = mManagerHost.getHeight();
@@ -219,9 +221,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
@@ -495,7 +496,10 @@ public class StripLayoutHelperManager @@ -498,7 +499,10 @@ public class StripLayoutHelperManager
mIsLayoutOptimizationsEnabled = mIsHeaderCustomizationSupported =
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled( ToolbarFeatures.isAppHeaderCustomizationSupported(
/* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext)); /* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext));
- mScrollableStripHeight = res.getDimension(R.dimen.tab_strip_height) / mDensity; - mScrollableStripHeight = res.getDimension(R.dimen.tab_strip_height) / mDensity;
+ mScrollableStripHeight = + mScrollableStripHeight =
@@ -229,12 +231,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
+ ? res.getDimension(R.dimen.tab_strip_height_tabletui) + ? res.getDimension(R.dimen.tab_strip_height_tabletui)
+ : res.getDimension(R.dimen.tab_strip_height_cromite)) / mDensity; + : res.getDimension(R.dimen.tab_strip_height_cromite)) / mDensity;
mHeight = mHeight =
mIsLayoutOptimizationsEnabled mIsHeaderCustomizationSupported
? toolbarManager.getTabStripHeightSupplier().get() / mDensity ? toolbarManager.getTabStripHeightSupplier().get() / mDensity
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java
@@ -111,6 +111,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { @@ -120,6 +120,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer {
if (mNativePtr == 0) return; if (mNativePtr == 0) return;
final boolean visible = yOffset > -layoutHelper.getHeight(); final boolean visible = yOffset > -layoutHelper.getHeight();
@@ -252,15 +254,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
@@ -16,6 +16,7 @@ import org.chromium.base.library_loader.LibraryProcessType; @@ -18,6 +18,7 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.base.task.ChainedTasks; import org.chromium.build.annotations.NullMarked;
import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.signin.SigninCheckerProvider; import org.chromium.chrome.browser.signin.SigninCheckerProvider;
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
@@ -106,6 +107,7 @@ public class ChromeBrowserInitializer { @@ -110,6 +111,7 @@ public class ChromeBrowserInitializer {
public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) { public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) {
ThreadUtils.checkUiThread(); ThreadUtils.checkUiThread();
if (parts.isActivityFinishingOrDestroyed()) return; if (parts.isActivityFinishingOrDestroyed()) return;
@@ -271,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -747,7 +747,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @@ -807,7 +807,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@Override @Override
public int getControlContainerHeightResource() { public int getControlContainerHeightResource() {
@@ -285,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -108,6 +108,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; @@ -120,6 +120,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.pdf.PdfPage; import org.chromium.chrome.browser.pdf.PdfPage;
@@ -294,9 +296,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
@@ -1715,7 +1717,9 @@ public class RootUiCoordinator @@ -1947,7 +1949,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
protected int getFindToolbarStub() {
int stubId = R.id.find_toolbar_stub; int stubId = R.id.find_toolbar_stub;
- if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) { - if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
+ if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) && + if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) &&
@@ -304,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) { + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
stubId = R.id.find_toolbar_tablet_stub; stubId = R.id.find_toolbar_tablet_stub;
} }
mFindToolbarManager = return stubId;
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
--- a/chrome/browser/preferences/BUILD.gn --- a/chrome/browser/preferences/BUILD.gn
+++ b/chrome/browser/preferences/BUILD.gn +++ b/chrome/browser/preferences/BUILD.gn
@@ -319,7 +321,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -317,6 +317,7 @@ public final class ChromePreferenceKeys { @@ -358,6 +358,7 @@ public final class ChromePreferenceKeys {
/** Whether the app-specific history info text was already seen by users. */ /** Whether the app-specific history info text was already seen by users. */
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN = public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
"Chrome.History.AppSpecificInfoSeen"; "Chrome.History.AppSpecificInfoSeen";
@@ -367,29 +369,29 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE, ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_ENABLED,
diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java
--- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java --- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java
+++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java +++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderUtils.java
@@ -42,6 +42,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa @@ -26,6 +26,7 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher.Activit
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.ui.display.DisplayUtil; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.ui.insets.CaptionBarInsetsRectProvider; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
+import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.insets.InsetObserver; import org.chromium.ui.display.DisplayUtil;
import org.chromium.ui.insets.InsetObserver.WindowInsetsConsumer;
import org.chromium.ui.insets.InsetsRectProvider; import org.chromium.ui.insets.InsetsRectProvider;
@@ -280,6 +281,7 @@ public class AppHeaderCoordinator
InsetsRectProvider insetsRectProvider, @@ -245,6 +246,7 @@ public class AppHeaderUtils {
@DesktopWindowHeuristicResult int currentResult, */
boolean isOnExternalDisplay) { static @DesktopWindowHeuristicResult int checkIsInDesktopWindow(
InsetsRectProvider insetsRectProvider, Context context) {
+ if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW; + if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW;
@DesktopWindowHeuristicResult int newResult; @DesktopWindowHeuristicResult int newResult;
Insets captionBarInset = insetsRectProvider.getCachedInset(); boolean isOnExternalDisplay = !DisplayUtil.isContextInDefaultDisplay(context);
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -833,7 +833,7 @@ public class LocationBarCoordinator @@ -1008,7 +1008,7 @@ public class LocationBarCoordinator
} }
private boolean isTabletWindow() { private boolean isTabletWindow() {
@@ -401,7 +403,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1531,6 +1531,13 @@ Your Google account may have other forms of browsing history like searches and a @@ -1507,6 +1507,13 @@ Your Google account may have other forms of browsing history like searches and a
Privacy guide explanation closed Privacy guide explanation closed
</message> </message>
@@ -422,24 +424,25 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container
android:id="@+id/control_container" android:id="@+id/control_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
- android:minHeight="@dimen/control_container_height" > - android:minHeight="@dimen/control_container_height">
+ android:minHeight="@dimen/control_container_height_cromite" > + android:minHeight="@dimen/control_container_height_cromite">
<view <view
class="org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer$ToolbarViewResourceFrameLayout" class="org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer$ToolbarViewResourceCoordinatorLayout"
@@ -20,20 +20,20 @@ found in the LICENSE file. @@ -20,7 +20,7 @@ found in the LICENSE file.
<ViewStub <ViewStub
android:id="@+id/toolbar_stub" android:id="@+id/toolbar_stub"
android:layout_width="match_parent" android:layout_width="match_parent"
- android:layout_marginTop="@dimen/tab_strip_height" - android:layout_marginTop="@dimen/tab_strip_height"
+ android:layout_marginTop="@dimen/tab_strip_height_cromite" + android:layout_marginTop="@dimen/tab_strip_height_cromite"
android:layout_marginBottom="@dimen/toolbar_hairline_height"
android:layout_height="@dimen/toolbar_height_no_shadow" /> android:layout_height="@dimen/toolbar_height_no_shadow" />
<org.chromium.chrome.browser.toolbar.ToolbarHairlineView @@ -30,13 +30,13 @@ found in the LICENSE file.
android:id="@+id/toolbar_hairline"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/control_container_height" /> android:layout_gravity="bottom"
app:layout_anchorGravity="bottom"
- />
+ android:layout_marginTop="@dimen/control_container_height_cromite" /> + android:layout_marginTop="@dimen/control_container_height_cromite" />
<ViewStub <ViewStub
@@ -491,19 +494,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro
+ <dimen name="tab_strip_reserved_top_padding_tabletui">2dp</dimen> + <dimen name="tab_strip_reserved_top_padding_tabletui">2dp</dimen>
<dimen name="ntp_search_box_height">64dp</dimen> <dimen name="ntp_search_box_height">64dp</dimen>
<dimen name="ntp_search_box_height_tall">72dp</dimen>
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
@@ -27,7 +27,7 @@ public interface ControlContainer {
*
* @param toolbarLayoutId The ID of the toolbar layout to use.
*/
- void initWithToolbar(int toolbarLayoutId);
+ void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId);
/**
* @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource.
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -515,16 +506,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
@@ -163,8 +164,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @@ -172,6 +173,24 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
@Override
@Initializer @Initializer
- public void initWithToolbar(int toolbarLayoutId) { public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) {
+ public void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId) {
try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) {
+ if (controlContainerHeightOverrideId != 0) { + if (DeviceFormFactor.isForceTabletUI() && toolbarLayoutHeightResId != 0) {
+ toolbarLayoutHeightResId = R.dimen.tab_strip_height_tabletui;
+ Resources res = getContext().getResources(); + Resources res = getContext().getResources();
+ setMinimumHeight((int) res.getDimension(controlContainerHeightOverrideId)); + setMinimumHeight((int) res.getDimension(toolbarLayoutHeightResId));
+ int tab_strip_height = + int tab_strip_height =
+ (int) res.getDimension(R.dimen.tab_strip_height_tabletui); + (int) res.getDimension(R.dimen.tab_strip_height_tabletui);
+ +
@@ -540,12 +529,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; + ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
+ } + }
mToolbarContainer = findViewById(R.id.toolbar_container); mToolbarContainer = findViewById(R.id.toolbar_container);
mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId);
ViewStub toolbarStub = findViewById(R.id.toolbar_stub); ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
toolbarStub.setLayoutResource(toolbarLayoutId);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
@@ -66,6 +66,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; @@ -65,6 +65,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp;
import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.feature_engagement.Tracker;
import org.chromium.ui.base.ViewUtils; import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.util.MotionEventUtils; import org.chromium.ui.util.MotionEventUtils;
@@ -553,7 +542,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.ui.util.TokenHolder; import org.chromium.ui.util.TokenHolder;
import org.chromium.url.GURL; import org.chromium.url.GURL;
@@ -594,7 +595,9 @@ public abstract class ToolbarLayout extends FrameLayout @@ -588,7 +589,9 @@ public abstract class ToolbarLayout extends FrameLayout
* not have a tab strip. * not have a tab strip.
*/ */
protected int getTabStripHeightFromResource() { protected int getTabStripHeightFromResource() {
@@ -567,34 +556,34 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; @@ -27,6 +27,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer;
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver;
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate;
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionHandler;
import org.chromium.ui.base.ViewUtils; import org.chromium.ui.base.ViewUtils;
+import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback; import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback;
import org.chromium.ui.util.TokenHolder; import org.chromium.ui.util.TokenHolder;
@@ -562,6 +563,7 @@ class HeightTransitionHandler { @@ -492,6 +493,7 @@ class HeightTransitionHandler {
/** Get the min screen width (in dp) required for the tab strip to become visible. */
private static int getScreenWidthThresholdDp() {
+ if (DeviceFormFactor.isForceTabletUI()) return 0;
if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) {
return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting;
} }
+ if (DeviceFormFactor.isForceTabletUI()) return 0;
return TRANSITION_THRESHOLD_DP;
}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; @@ -24,6 +24,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver;
+import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.ui.base.DeviceFormFactor;
/** Class used to manage tab strip visibility and height updates. */ /**
@NullMarked * Class used to manage tab strip visibility and height updates.
@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea @@ -170,7 +171,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
mTabStripReservedTopPadding = mTabStripReservedTopPadding =
controlContainerView() controlContainerView()
.getResources() .getResources()
@@ -610,8 +599,8 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -41,6 +41,11 @@ found in the LICENSE file. @@ -41,6 +41,11 @@ found in the LICENSE file.
android:summary="@string/jump_start_omnibox_summary" android:summary="@string/caret_browsing_summary"
android:title="@string/jump_start_omnibox_title" /> android:title="@string/caret_browsing_title" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference + <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="force_tablet_ui" + android:key="force_tablet_ui"
@@ -624,17 +613,17 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -29,6 +29,7 @@ import org.chromium.content_public.browser.ContentFeatureList; @@ -31,6 +31,7 @@ import org.chromium.content_public.browser.ContentFeatureMap;
import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.ui.base.UiAndroidFeatureList;
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate; +import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
/** Fragment to keep track of all the accessibility related preferences. */ /** Fragment to keep track of all the accessibility related preferences. */
@NullMarked @NullMarked
@@ -44,6 +45,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment @@ -51,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
public static final String PREF_ZOOM_INFO = "zoom_info"; public static final String PREF_TOUCHPAD_OVERSCROLL_HISTORY_NAVIGATION =
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; "touchpad_overscroll_history_navigation";
+ 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";
@@ -642,7 +631,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private PageZoomPreference mPageZoomDefaultZoomPref; private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
private ChromeSwitchPreference mPageZoomAlwaysShowPref; private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -108,6 +112,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment @@ -126,6 +130,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDelegate.getReaderAccessibilityDelegate().getValue()); mDelegate.getReaderAccessibilityDelegate().getValue());
readerForAccessibilityPref.setOnPreferenceChangeListener(this); readerForAccessibilityPref.setOnPreferenceChangeListener(this);
@@ -655,7 +644,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS); Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener( captions.setOnPreferenceClickListener(
preference -> { preference -> {
@@ -167,6 +177,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment @@ -212,6 +222,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue);
@@ -680,7 +669,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
@@ -70,6 +70,14 @@ public class DeviceFormFactor { @@ -87,6 +87,14 @@ public class DeviceFormFactor {
/** See {@link #setIsTabletForTesting(boolean)}. */ /** See {@link #setIsTabletForTesting(boolean)}. */
private static @Nullable Boolean sIsTabletForTesting; private static @Nullable Boolean sIsTabletForTesting;
@@ -695,7 +684,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
/** /**
* Each activity could be on a different display, and this will just tell you whether the * Each activity could be on a different display, and this will just tell you whether the
* display associated with the application context is "tablet sized". Use {@link * display associated with the application context is "tablet sized". Use {@link
@@ -78,6 +86,7 @@ public class DeviceFormFactor { @@ -95,6 +103,7 @@ public class DeviceFormFactor {
@CalledByNative @CalledByNative
@Deprecated @Deprecated
public static boolean isTablet() { public static boolean isTablet() {
@@ -703,7 +692,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
if (sIsTabletForTesting != null) { if (sIsTabletForTesting != null) {
return sIsTabletForTesting; return sIsTabletForTesting;
} }
@@ -108,6 +117,7 @@ public class DeviceFormFactor { @@ -125,6 +134,7 @@ public class DeviceFormFactor {
* E.g. http://developer.samsung.com/samsung-dex/testing * E.g. http://developer.samsung.com/samsung-dex/testing
*/ */
public static boolean isNonMultiDisplayContextOnTablet(Context context) { public static boolean isNonMultiDisplayContextOnTablet(Context context) {
@@ -711,7 +700,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
} }
@@ -142,6 +152,7 @@ public class DeviceFormFactor { @@ -159,6 +169,7 @@ public class DeviceFormFactor {
* @return The screen width bucket the device is in (see constants at the top of this class). * @return The screen width bucket the device is in (see constants at the top of this class).
*/ */
private static int detectScreenWidthBucket(Context context) { private static int detectScreenWidthBucket(Context context) {
@@ -719,7 +708,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
return context.getResources().getInteger(R.integer.min_screen_width_bucket); return context.getResources().getInteger(R.integer.min_screen_width_bucket);
} }
@@ -149,6 +160,7 @@ public class DeviceFormFactor { @@ -166,6 +177,7 @@ public class DeviceFormFactor {
ThreadUtils.assertOnUiThread(); ThreadUtils.assertOnUiThread();
Context context = windowAndroid.getContext().get(); Context context = windowAndroid.getContext().get();
if (context == null) return 0; if (context == null) return 0;
@@ -727,7 +716,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
return context.getResources().getInteger(R.integer.min_screen_width_bucket); return context.getResources().getInteger(R.integer.min_screen_width_bucket);
} }
@@ -158,6 +170,7 @@ public class DeviceFormFactor { @@ -175,6 +187,7 @@ public class DeviceFormFactor {
*/ */
@UiThread @UiThread
public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) { public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) {
@@ -735,7 +724,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context)); return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context));
} }
@@ -166,6 +179,7 @@ public class DeviceFormFactor { @@ -183,6 +196,7 @@ public class DeviceFormFactor {
* layout. * layout.
*/ */
public static int getMinimumTabletWidthPx(DisplayAndroid display) { public static int getMinimumTabletWidthPx(DisplayAndroid display) {
@@ -4,16 +4,17 @@ Subject: Add option to not persist tabs across sessions
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../android/java/res/xml/privacy_preferences.xml | 5 +++++ .../android/java/res/xml/privacy_preferences.xml | 5 +++++
.../chrome/browser/ChromeTabbedActivity.java | 5 ++++- .../chrome/browser/ChromeTabbedActivity.java | 5 ++++-
.../privacy/settings/PrivacySettings.java | 16 +++++++++++++++- .../browser/privacy/settings/PrivacySettings.java | 15 ++++++++++++++-
.../android/strings/android_chrome_strings.grd | 6 ++++++ .../browser/tab_group_sync/StartupHelper.java | 6 ++++++
4 files changed, 30 insertions(+), 2 deletions(-) .../ui/android/strings/android_chrome_strings.grd | 6 ++++++
5 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -95,6 +95,11 @@ found in the LICENSE file. @@ -89,6 +89,11 @@ found in the LICENSE file.
android:title="@string/incognito_settings_title" android:title="@string/incognito_settings_title"
android:summary="@string/incognito_settings_summary" android:summary="@string/incognito_settings_summary"
android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/>
@@ -28,15 +29,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -46,6 +46,7 @@ import org.chromium.base.Callback; @@ -47,6 +47,7 @@ import org.chromium.base.ApplicationStatus;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController; import org.chromium.base.CallbackController;
import org.chromium.base.CallbackUtils; import org.chromium.base.CallbackUtils;
import org.chromium.base.CommandLine;
+import org.chromium.base.ContextUtils; +import org.chromium.base.ContextUtils;
import org.chromium.base.CommandLine;
import org.chromium.base.DeviceInfo;
import org.chromium.base.IntentUtils; import org.chromium.base.IntentUtils;
import org.chromium.base.Log; @@ -2175,8 +2176,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
import org.chromium.base.MemoryPressureListener;
@@ -2086,8 +2087,10 @@ public class ChromeTabbedActivity extends ChromeActivity {
boolean hadCipherData = boolean hadCipherData =
CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState());
@@ -51,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -8,6 +8,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS @@ -9,6 +9,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -59,17 +60,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableString; import android.text.SpannableString;
@@ -20,7 +21,9 @@ import android.view.View; @@ -22,6 +23,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference; import androidx.preference.Preference;
+import org.chromium.base.BuildInfo;
import org.chromium.base.Callback; import org.chromium.base.Callback;
+import org.chromium.base.ContextUtils; +import org.chromium.base.ContextUtils;
import org.chromium.base.IntentUtils; import org.chromium.base.IntentUtils;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
@@ -112,6 +115,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -113,6 +115,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private final SharedPreferencesManager mSharedPreferencesManager = private final SharedPreferencesManager mSharedPreferencesManager =
ChromeSharedPreferences.getInstance(); ChromeSharedPreferences.getInstance();
@@ -78,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private ManagedPreferenceDelegate mManagedPreferenceDelegate; private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies";
@VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection";
@@ -381,7 +386,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -374,7 +378,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey(); String key = preference.getKey();
@@ -91,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
UserPrefs.get(getProfile()) UserPrefs.get(getProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) { } else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) {
@@ -441,6 +450,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -434,6 +442,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
getContext(), getProfile())); getContext(), getProfile()));
} }
@@ -103,10 +102,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
Preference secureDnsPref = findPreference(PREF_SECURE_DNS); Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
if (secureDnsPref != null && secureDnsPref.isVisible()) { if (secureDnsPref != null && secureDnsPref.isVisible()) {
secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext())); secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.tab_group_sync;
+import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.preferences.Pref;
@@ -74,6 +75,11 @@ public class StartupHelper {
*/
public void initializeTabGroupSync() {
LogUtils.log(TAG, "initializeTabGroupSync");
+ if (ContextUtils.getAppSharedPreferences().getBoolean("close_tabs_on_exit", false)) {
+ for (String tabGroupId : mTabGroupSyncService.getAllGroupIds()) {
+ mTabGroupSyncService.removeGroup(tabGroupId);
+ }
+ }
// First close the groups that were deleted remotely when the activity was not running.
closeDeletedGroupsFromTabModel();
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2901,6 +2901,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d @@ -2898,6 +2898,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_ACCESSIBILITY_TAB_SWITCHER_TITLE" desc="Accessibility label of the current window when Grid Tab Switcher is shown."> <message name="IDS_ACCESSIBILITY_TAB_SWITCHER_TITLE" desc="Accessibility label of the current window when Grid Tab Switcher is shown.">
All tabs All tabs
</message> </message>
@@ -6,7 +6,7 @@ And allow use about:blank as default homepage
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../tab_management/TabGridDialogMediator.java | 11 ++++++++++- .../tab_management/TabGridDialogMediator.java | 12 +++++++++++-
.../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++- .../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++-
.../java/res/xml/homepage_preferences.xml | 5 +++++ .../java/res/xml/homepage_preferences.xml | 5 +++++
.../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++- .../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++-
@@ -19,14 +19,22 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../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.h | 4 ++++ chrome/common/pref_names.h | 4 ++++
13 files changed, 79 insertions(+), 4 deletions(-) 13 files changed, 80 insertions(+), 4 deletions(-)
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
@@ -120,6 +120,9 @@ import java.util.Objects; @@ -101,6 +101,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp
import java.util.Optional; import org.chromium.components.data_sharing.DataSharingService;
import org.chromium.components.data_sharing.GroupMember;
import org.chromium.components.data_sharing.member_role.MemberRole;
+import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.tab_group_sync.EitherId.EitherGroupId;
import org.chromium.components.tab_group_sync.LocalTabGroupId;
import org.chromium.components.tab_group_sync.TabGroupSyncService;
@@ -121,6 +122,9 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.function.Supplier;
+import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.chrome.browser.homepage.HomepageManager;
+import org.chromium.url.GURL; +import org.chromium.url.GURL;
@@ -34,27 +42,27 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/** /**
* A mediator for the TabGridDialog component, responsible for communicating with the components' * A mediator for the TabGridDialog component, responsible for communicating with the components'
* coordinator as well as managing the business logic for dialog show/hide. * coordinator as well as managing the business logic for dialog show/hide.
@@ -1035,9 +1038,15 @@ public class TabGridDialogMediator @@ -1034,9 +1038,15 @@ public class TabGridDialogMediator
return; UrlConstantResolver urlConstantResolver =
} UrlConstantResolverFactory.getForProfile(profile);
+ String url = UrlConstants.NTP_URL; + String url = urlConstantResolver.getNtpUrl();
+ if (UrlConstants.NTP_URL.equals(url) + if (UrlConstants.NTP_URL.equals(url)
+ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(); + GURL gurl = HomepageManager.getInstance().getHomepageGurl(profile.isIncognitoBranded());
+ url = gurl != null ? gurl.getSpec() : url; + url = gurl != null ? gurl.getSpec() : url;
+ } + }
TabGroupUtils.openUrlInGroup( TabGroupUtils.openUrlInGroup(
assumeNonNull(mCurrentTabGroupModelFilterSupplier.get()), assumeNonNull(mCurrentTabGroupModelFilterSupplier.get()),
- UrlConstants.NTP_URL, - urlConstantResolver.getNtpUrl(),
+ url, + url,
currentTab.getId(), tabsInGroup.get(tabsInGroup.size() - 1).getId(),
TabLaunchType.FROM_TAB_GROUP_UI); TabLaunchType.FROM_TAB_GROUP_UI);
RecordUserAction.record("MobileNewTabOpened." + mComponentName); RecordUserAction.record("MobileNewTabOpened." + mComponentName);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; @@ -35,6 +35,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory;
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig;
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator;
import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider;
@@ -62,19 +70,19 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.layouts.LayoutType;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
@@ -420,10 +421,15 @@ public class TabGroupUiMediator implements BackPressHandler { @@ -425,10 +426,15 @@ public class TabGroupUiMediator implements BackPressHandler {
assert relatedTabs.size() > 0; UrlConstantResolverFactory.getForProfile(currentTabProfile);
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
+ String url = UrlConstants.NTP_URL; + String url = urlConstantResolver.getNtpUrl();
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(); + GURL gurl = HomepageManager.getInstance().getHomepageGurl(currentTab.isIncognito());
+ url = gurl != null ? gurl.getSpec() : url; + url = gurl != null ? gurl.getSpec() : url;
+ } + }
mTabCreatorManager mTabCreatorManager
.getTabCreator(currentTab.isIncognito()) .getTabCreator(currentTab.isIncognito())
.createNewTab( .createNewTab(
- new LoadUrlParams(UrlConstants.NTP_URL), - new LoadUrlParams(urlConstantResolver.getNtpUrl()),
+ new LoadUrlParams(url), + new LoadUrlParams(url),
TabLaunchType.FROM_TAB_GROUP_UI, TabLaunchType.FROM_TAB_GROUP_UI,
parentTabToAttach); parentTabToAttach);
@@ -97,9 +105,9 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java
@@ -75,6 +75,9 @@ import org.chromium.ui.text.EmptyTextWatcher; @@ -89,6 +89,9 @@ import java.util.List;
import org.chromium.ui.widget.AnchoredPopupWindow.HorizontalOrientation; import java.util.function.BiConsumer;
import org.chromium.ui.widget.RectProvider; import java.util.function.Supplier;
+import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.chrome.browser.homepage.HomepageManager;
+import org.chromium.url.GURL; +import org.chromium.url.GURL;
@@ -107,14 +115,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
/** /**
* A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is * A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is
* responsible for creating a list of menu items, setting up the menu and displaying the menu. * responsible for creating a list of menu items, setting up the menu and displaying the menu.
@@ -215,9 +218,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina @@ -239,9 +242,15 @@ public class TabGroupContextMenuCoordinator extends TabStripReorderingHelper<Tok
/* didCloseCallback= */ null); /* didCloseCallback= */ null);
RecordUserAction.record("MobileToolbarTabGroupMenu.DeleteGroup"); RecordUserAction.record("MobileToolbarTabGroupMenu.DeleteGroup");
} else if (menuId == R.id.open_new_tab_in_group) { } else if (menuId == R.id.open_new_tab_in_group) {
+ String url = UrlConstants.NTP_URL; + String url = UrlConstants.NTP_URL;
+ if (UrlConstants.NTP_URL.equals(url) + if (UrlConstants.NTP_URL.equals(url)
+ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(); + GURL gurl = HomepageManager.getInstance().getHomepageGurl(tabModelSupplier.get().isIncognitoBranded());
+ url = gurl != null ? gurl.getSpec() : url; + url = gurl != null ? gurl.getSpec() : url;
+ } + }
TabGroupUtils.openUrlInGroup( TabGroupUtils.openUrlInGroup(
@@ -127,7 +135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -258,6 +258,22 @@ public class HomepageManager @@ -264,6 +264,22 @@ public class HomepageManager
notifyHomepageUpdated(); notifyHomepageUpdated();
} }
@@ -153,7 +161,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
@@ -26,6 +26,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; @@ -27,6 +27,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.components.url_formatter.UrlFormatter; import org.chromium.components.url_formatter.UrlFormatter;
import org.chromium.url.GURL; import org.chromium.url.GURL;
@@ -161,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
/** Fragment that allows the user to configure homepage related preferences. */ /** Fragment that allows the user to configure homepage related preferences. */
@NullMarked @NullMarked
@@ -35,6 +36,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { @@ -36,6 +37,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";
@@ -170,8 +178,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
private HomepageManager mHomepageManager; private HomepageManager mHomepageManager;
private RadioButtonGroupHomepagePreference mRadioButtons; private RadioButtonGroupHomepagePreference mRadioButtons;
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>(); private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
@@ -78,6 +81,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { @@ -103,6 +106,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
}); mRadioButtons.setOnHomepagePreferenceChangeListener(this::onRadioButtonGroupChanged);
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup()); mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
+ ChromeSwitchPreference mNTPIsHomepageSwitch = + ChromeSwitchPreference mNTPIsHomepageSwitch =
@@ -189,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java --- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
@@ -117,7 +117,6 @@ public class LaunchMetrics { @@ -136,7 +136,6 @@ public class LaunchMetrics {
public static void recordHomePageLaunchMetrics( public static void recordHomePageLaunchMetrics(
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) { boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
if (homepageGurl.isEmpty()) { if (homepageGurl.isEmpty()) {
@@ -200,21 +208,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchM
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; @@ -25,6 +25,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingDelegateFact
import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
+import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.chrome.browser.homepage.HomepageManager;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager.NewWindowAppSource;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; @@ -583,6 +584,13 @@ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabMode
import org.chromium.chrome.browser.profiles.Profile;
@@ -565,6 +566,13 @@ public class ChromeTabCreator extends TabCreator
*/ */
public @Nullable Tab launchUrl( public @Nullable Tab launchUrl(
String url, @TabLaunchType int type, @Nullable Intent intent, long intentTimestamp) { String url, @TabLaunchType int type, @Nullable Intent intent, long intentTimestamp) {
+ if (!mIncognito && url.equals(UrlConstants.NTP_URL)) { + if (!mIncognito && url.equals(UrlConstants.NTP_URL)) {
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(); + GURL gurl = HomepageManager.getInstance().getHomepageGurl(mIncognito);
+ url = gurl != null ? gurl.getSpec() : url; + url = gurl != null ? gurl.getSpec() : url;
+ } + }
+ } + }
@@ -225,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -330,6 +330,7 @@ public final class ChromePreferenceKeys { @@ -371,6 +371,7 @@ public final class ChromePreferenceKeys {
public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
@@ -247,7 +255,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
@@ -1357,6 +1357,9 @@ Your Google account may have other forms of browsing history like searches and a @@ -1348,6 +1348,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour."> <message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
Last hour Last hour
</message> </message>
@@ -260,8 +268,8 @@ 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
@@ -111,6 +111,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { @@ -123,6 +123,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
pref_registration_flags);
registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false,
pref_registration_flags); pref_registration_flags);
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false, + registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
@@ -272,7 +280,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
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
@@ -1327,6 +1327,10 @@ inline constexpr char kPinSplitTabButton[] = "browser.pin_split_tab_button"; @@ -1347,6 +1347,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] =
// by enterprise policy. // by enterprise policy.
inline constexpr char kGeminiSettings[] = "browser.gemini_settings"; inline constexpr char kGeminiSettings[] = "browser.gemini_settings";
+28 -25
View File
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
components/search_engines/BUILD.gn | 3 ++ components/search_engines/BUILD.gn | 3 ++
components/search_engines/cromite/BUILD.gn | 12 ++++++ components/search_engines/cromite/BUILD.gn | 12 ++++++
.../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++
.../search_engine_choice_utils.cc | 5 +-- .../search_engine_choice_utils.cc | 9 +----
.../search_engines/search_engine_type.h | 5 +++ .../search_engines/search_engine_type.h | 5 +++
.../template_url_prepopulate_data.cc | 21 +++++++++- .../template_url_prepopulate_data.cc | 21 +++++++++-
.../template_url_prepopulate_data.h | 9 ----- .../template_url_prepopulate_data.h | 9 -----
@@ -20,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
tools/json_to_struct/json_to_struct.py | 26 ++++++++---- tools/json_to_struct/json_to_struct.py | 26 ++++++++----
tools/json_to_struct/struct_generator.py | 10 +++-- tools/json_to_struct/struct_generator.py | 10 +++--
tools/variations/fieldtrial_to_struct.py | 4 +- tools/variations/fieldtrial_to_struct.py | 4 +-
12 files changed, 113 insertions(+), 28 deletions(-) 12 files changed, 113 insertions(+), 32 deletions(-)
create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png
create mode 100644 components/search_engines/cromite/BUILD.gn create mode 100644 components/search_engines/cromite/BUILD.gn
create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json
@@ -63,7 +63,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL
] ]
deps = [ deps = [
@@ -162,6 +163,7 @@ source_set("search_engine_utils") { @@ -161,6 +162,7 @@ source_set("search_engine_utils") {
":search_engine_type", ":search_engine_type",
"//components/google/core/common", "//components/google/core/common",
"//third_party/search_engines_data:prepopulated_engines", "//third_party/search_engines_data:prepopulated_engines",
@@ -71,7 +71,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL
] ]
deps = [ "//url" ] deps = [ "//url" ]
@@ -252,6 +254,7 @@ source_set("unit_tests") { @@ -256,6 +258,7 @@ source_set("unit_tests") {
"//testing/gmock", "//testing/gmock",
"//testing/gtest", "//testing/gtest",
"//third_party/search_engines_data:prepopulated_engines", "//third_party/search_engines_data:prepopulated_engines",
@@ -141,7 +141,7 @@ new file mode 100644
diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
--- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc --- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
+++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc +++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc
@@ -155,10 +155,7 @@ void RecordChoiceScreenDefaultSearchProviderType( @@ -209,14 +209,7 @@ void RecordChoiceScreenDefaultSearchProviderType(
} }
void RecordChoiceScreenSelectedIndex(int selected_engine_index) { void RecordChoiceScreenSelectedIndex(int selected_engine_index) {
@@ -149,6 +149,10 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice
- kSearchEngineChoiceScreenSelectedEngineIndexHistogram, - kSearchEngineChoiceScreenSelectedEngineIndexHistogram,
- selected_engine_index, - selected_engine_index,
- TemplateURLPrepopulateData::kMaxEeaPrepopulatedEngines); - TemplateURLPrepopulateData::kMaxEeaPrepopulatedEngines);
- base::PumaHistogramExactLinear(
- base::PumaType::kRc, kPumaSearchChoiceScreenSelectedEngineIndexHistogram,
- selected_engine_index,
- TemplateURLPrepopulateData::kMaxEeaPrepopulatedEngines);
+ // do nothing in Cromite + // do nothing in Cromite
} }
@@ -185,22 +189,22 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
namespace TemplateURLPrepopulateData { namespace TemplateURLPrepopulateData {
// Helpers -------------------------------------------------------------------- // Helpers --------------------------------------------------------------------
@@ -122,7 +124,7 @@ int GetDataVersion(PrefService* prefs) { @@ -154,7 +156,7 @@ int GetDataVersion(PrefService* prefs) {
kCurrentDataVersion; kCurrentDataVersion;
} }
-std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines( -std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEnginesChromium( +std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEnginesChromium(
PrefService& prefs, PrefService& prefs,
std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*> const std::vector<const PrepopulatedEngine*>&
regional_prepopulated_engines) { regional_prepopulated_engines) {
@@ -138,6 +140,17 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines( @@ -170,6 +172,17 @@ std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
&PrepopulatedEngineToTemplateURLData); &PrepopulatedEngineToTemplateURLData);
} }
+std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines( +std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulatedEngines(
+ PrefService& prefs, + PrefService& prefs,
+ std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*> + const std::vector<const PrepopulatedEngine*>&
+ regional_prepopulated_engines) { + regional_prepopulated_engines) {
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls = + std::vector<std::unique_ptr<TemplateURLData>> t_urls =
+ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines); + GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines);
@@ -211,18 +215,17 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
+ +
std::unique_ptr<TemplateURLData> GetPrepopulatedEngine( std::unique_ptr<TemplateURLData> GetPrepopulatedEngine(
PrefService& prefs, PrefService& prefs,
std::vector<const TemplateURLPrepopulateData::PrepopulatedEngine*> const std::vector<const PrepopulatedEngine*>& regional_prepopulated_engines,
@@ -159,11 +172,15 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines( @@ -190,10 +203,14 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
return std::vector<std::unique_ptr<TemplateURLData>>(); return std::vector<std::unique_ptr<TemplateURLData>>();
} }
- return base::ToVector( - return base::ToVector(regional_capabilities::GetPrepopulatedEngines(
+ std::vector<std::unique_ptr<TemplateURLData>> t_urls = + std::vector<std::unique_ptr<TemplateURLData>> t_urls =
+ base::ToVector( + base::ToVector(regional_capabilities::GetPrepopulatedEngines(
regional_capabilities::GetPrepopulatedEngines( country_id, prefs,
country_id, prefs, regional_capabilities::SearchEngineListType::kTopN),
regional_capabilities::SearchEngineListType::kTopFive), &PrepopulatedEngineToTemplateURLData);
&PrepopulatedEngineToTemplateURLData);
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen));
+ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light));
+ return t_urls; + return t_urls;
@@ -277,7 +280,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json
diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py
--- a/tools/json_to_struct/json_to_struct.py --- a/tools/json_to_struct/json_to_struct.py
+++ b/tools/json_to_struct/json_to_struct.py +++ b/tools/json_to_struct/json_to_struct.py
@@ -103,7 +103,7 @@ def _GenerateHeaderGuard(h_filename): @@ -104,7 +104,7 @@ def _GenerateHeaderGuard(h_filename):
return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores. return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores.
@@ -286,7 +289,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
"""Generates the .h file containing the definition of the structure specified """Generates the .h file containing the definition of the structure specified
by the schema. by the schema.
@@ -147,11 +147,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): @@ -148,11 +148,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
f.write(u'#include "%s"\n' % header) f.write(u'#include "%s"\n' % header)
f.write(u'\n') f.write(u'\n')
@@ -303,7 +306,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
schema['type_name'], schema['schema'])) schema['type_name'], schema['schema']))
f.write(u'\n') f.write(u'\n')
@@ -176,7 +180,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): @@ -177,7 +181,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description):
f.write(u'#endif // %s\n' % header_guard) f.write(u'#endif // %s\n' % header_guard)
@@ -312,7 +315,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
"""Generates the .cc file containing the static initializers for the """Generates the .cc file containing the static initializers for the
of the elements specified in the description. of the elements specified in the description.
@@ -211,7 +215,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): @@ -212,7 +216,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description):
f.write(element_generator.GenerateElements(schema['type_name'], f.write(element_generator.GenerateElements(schema['type_name'],
schema['schema'], description)) schema['schema'], description))
@@ -321,7 +324,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
f.write('\n} // anonymous namespace \n\n') f.write('\n} // anonymous namespace \n\n')
aggregated = GenerateCCAggregation(schema['type_name'], aggregation) aggregated = GenerateCCAggregation(schema['type_name'], aggregation)
@@ -298,7 +302,7 @@ def GenerateClass(basepath, @@ -299,7 +303,7 @@ def GenerateClass(basepath,
def GenerateStruct(basepath, output_root, namespace, schema, description, def GenerateStruct(basepath, output_root, namespace, schema, description,
@@ -330,7 +333,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
"""Generates a C++ struct from a JSON description. """Generates a C++ struct from a JSON description.
Args: Args:
@@ -317,8 +321,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, @@ -318,8 +322,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description,
""" """
year = int(year) if year else datetime.now().year year = int(year) if year else datetime.now().year
head = HEAD % (year, schema_filename, description_filename) head = HEAD % (year, schema_filename, description_filename)
@@ -341,7 +344,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
if __name__ == '__main__': if __name__ == '__main__':
parser = optparse.OptionParser( parser = optparse.OptionParser(
@@ -333,11 +337,17 @@ if __name__ == '__main__': @@ -334,11 +338,17 @@ if __name__ == '__main__':
parser.add_option('-s', '--schema', help='path to the schema file, ' parser.add_option('-s', '--schema', help='path to the schema file, '
'mandatory.') 'mandatory.')
parser.add_option('-o', '--output', help='output filename, ') parser.add_option('-o', '--output', help='output filename, ')
@@ -359,7 +362,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_
description_filename = os.path.normpath(args[0]) description_filename = os.path.normpath(args[0])
root, ext = os.path.splitext(description_filename) root, ext = os.path.splitext(description_filename)
shortroot = opts.output if opts.output else os.path.split(root)[1] shortroot = opts.output if opts.output else os.path.split(root)[1]
@@ -354,4 +364,4 @@ if __name__ == '__main__': @@ -355,4 +365,4 @@ if __name__ == '__main__':
schema = _Load(opts.schema) schema = _Load(opts.schema)
description = _Load(description_filename) description = _Load(description_filename)
GenerateStruct(basepath, output_root, opts.namespace, schema, description, GenerateStruct(basepath, output_root, opts.namespace, schema, description,
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../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 | 15 +++- chrome/browser/profiles/profile_manager.cc | 17 +++-
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 | 2 + .../clear_browsing_data_dialog.ts | 2 +
@@ -31,16 +31,17 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../core/browsing_data_policies_utils.h | 11 +++ .../core/browsing_data_policies_utils.h | 11 +++
.../browsing_data/core/browsing_data_utils.cc | 31 ++++++++ .../browsing_data/core/browsing_data_utils.cc | 31 ++++++++
.../core/clear_browsing_data_tab.h | 3 +- .../core/clear_browsing_data_tab.h | 3 +-
components/browsing_data/core/features.h | 1 +
components/browsing_data/core/pref_names.cc | 17 ++++ components/browsing_data/core/pref_names.cc | 17 ++++
components/browsing_data/core/pref_names.h | 10 +++ components/browsing_data/core/pref_names.h | 10 +++
components/favicon/core/favicon_database.cc | 9 +++ components/favicon/core/favicon_database.cc | 9 +++
components/favicon/core/favicon_database.h | 2 + components/favicon/core/favicon_database.h | 3 +
.../search_engines/template_url_service.cc | 1 + .../search_engines/template_url_service.cc | 1 +
content/browser/btm/btm_service_impl.cc | 2 +- content/browser/btm/btm_service_impl.cc | 2 +-
content/browser/storage_partition_impl.cc | 1 + content/browser/storage_partition_impl.cc | 2 +
.../public/browser/browsing_data_remover.h | 7 +- .../public/browser/browsing_data_remover.h | 7 +-
.../Add-setting-to-clear-data-on-exit.inc | 8 ++ .../Add-setting-to-clear-data-on-exit.inc | 8 ++
36 files changed, 406 insertions(+), 33 deletions(-) 37 files changed, 410 insertions(+), 34 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
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-clear-data-on-exit.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-clear-data-on-exit.inc
@@ -48,7 +49,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -262,6 +262,7 @@ chrome_java_sources = [ @@ -270,6 +270,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java",
@@ -74,7 +75,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/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
@@ -203,6 +203,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; @@ -208,6 +208,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;
@@ -82,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
@@ -2091,7 +2092,11 @@ public class ChromeTabbedActivity extends ChromeActivity { @@ -2181,7 +2182,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
Intent intent = getIntent(); Intent intent = getIntent();
boolean hadCipherData = boolean hadCipherData =
@@ -98,7 +99,7 @@ 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/BrowsingDataBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/BrowsingDataBridge.java
@@ -224,8 +224,8 @@ public final class BrowsingDataBridge implements Destroyable { @@ -205,8 +205,8 @@ public final class BrowsingDataBridge {
* BrowsingDataType}). * BrowsingDataType}).
* @return The state of the corresponding deletion preference. * @return The state of the corresponding deletion preference.
*/ */
@@ -109,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/B
} }
/** /**
@@ -235,8 +235,8 @@ public final class BrowsingDataBridge implements Destroyable { @@ -216,8 +216,8 @@ public final class BrowsingDataBridge {
* BrowsingDataType}). * BrowsingDataType}).
* @param value The state to be set. * @param value The state to be set.
*/ */
@@ -120,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/B
} }
/** /**
@@ -340,10 +340,10 @@ public final class BrowsingDataBridge implements Destroyable { @@ -278,10 +278,10 @@ public final class BrowsingDataBridge {
@JniType("Profile*") Profile profile, @JniType("std::string") String origin); @JniType("Profile*") Profile profile, @JniType("std::string") String origin);
boolean getBrowsingDataDeletionPreference( boolean getBrowsingDataDeletionPreference(
@@ -136,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/B
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
@@ -160,6 +160,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -164,6 +164,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
assert mCheckbox == preference; assert mCheckbox == preference;
mParent.updateButtonState(); mParent.updateButtonState();
@@ -149,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
return true; return true;
} }
@@ -241,7 +247,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -245,7 +251,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
private @TimePeriod int mLastSelectedTimePeriod; private @TimePeriod int mLastSelectedTimePeriod;
private boolean mShouldShowPostDeleteFeedback; private boolean mShouldShowPostDeleteFeedback;
@@ -158,15 +159,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
/** /**
* @return All available {@link DialogOption} entries. * @return All available {@link DialogOption} entries.
@@ -347,7 +353,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -351,7 +357,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
} }
/** Called when browsing data is about to be cleared. */ /** Called when browsing data is about to be cleared. */
- private void onClearBrowsingData() { - private void onClearBrowsingData() {
+ protected void onClearBrowsingData() { + protected void onClearBrowsingData() {
RecordUserAction.record("ClearBrowsingData_AdvancedTab"); RecordUserAction.record("ClearBrowsingData_AdvancedTab");
}
if (ChromeFeatureList.sClearBrowsingDataAndroidSurvey.isEnabled()) {
@@ -437,6 +443,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -437,6 +443,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
BrowsingDataBridge.getForProfile(getProfile()) BrowsingDataBridge.getForProfile(getProfile())
.setBrowsingDataDeletionPreference( .setBrowsingDataDeletionPreference(
@@ -218,14 +219,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
showImportantDialogThenClear(); showImportantDialogThenClear();
return; return;
@@ -576,6 +592,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -576,6 +592,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
Button clearButton = (Button) getView().findViewById(R.id.clear_button); Button clearButton = (Button) assumeNonNull(getView()).findViewById(R.id.clear_button);
boolean isEnabled = !getSelectedOptions().isEmpty(); boolean isEnabled = !getSelectedOptions().isEmpty();
clearButton.setEnabled(isEnabled); clearButton.setEnabled(isEnabled);
+ clearButton.setVisibility(shouldClearBrowsingData() ? View.VISIBLE : View.INVISIBLE); + clearButton.setVisibility(shouldClearBrowsingData() ? View.VISIBLE : View.INVISIBLE);
} }
private int getSpinnerIndex( private int getSpinnerIndex(
@@ -651,7 +668,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -653,7 +670,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
.getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) {
enabled = false; enabled = false;
browsingDataBridge.setBrowsingDataDeletionPreference( browsingDataBridge.setBrowsingDataDeletionPreference(
@@ -234,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
} }
// Disable tabs closure if the user is in multi-window mode. // Disable tabs closure if the user is in multi-window mode.
@@ -681,8 +698,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment @@ -683,8 +700,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment
mSigninManager.addSignInStateObserver(this); mSigninManager.addSignInStateObserver(this);
setHasOptionsMenu(true); setHasOptionsMenu(true);
@@ -334,7 +335,7 @@ new file mode 100644
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
@@ -2054,6 +2054,16 @@ @@ -2148,6 +2148,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for delete browsing data button in Privacy options"> <message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for delete browsing data button in Privacy options">
Delete browsing data Delete browsing data
</message> </message>
@@ -354,9 +355,9 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
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
@@ -107,6 +107,7 @@ @@ -109,6 +109,7 @@
#include "components/enterprise/client_certificates/core/features.h"
#include "components/enterprise/data_controls/core/browser/features.h" #include "components/enterprise/data_controls/core/browser/features.h"
#include "components/enterprise/obfuscation/core/utils.h"
#include "components/error_page/common/error_page_switches.h" #include "components/error_page/common/error_page_switches.h"
+#include "components/favicon/core/favicon_database.h" +#include "components/favicon/core/favicon_database.h"
#include "components/feature_engagement/public/feature_constants.h" #include "components/feature_engagement/public/feature_constants.h"
@@ -365,7 +366,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
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
@@ -70,6 +70,15 @@ PrefService* GetPrefService(Profile* profile) { @@ -67,6 +67,15 @@ PrefService* GetPrefService(Profile* profile) {
return profile->GetOriginalProfile()->GetPrefs(); return profile->GetOriginalProfile()->GetPrefs();
} }
@@ -381,7 +382,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro
void OnBrowsingDataModelBuilt(JNIEnv* env, void OnBrowsingDataModelBuilt(JNIEnv* env,
const ScopedJavaGlobalRef<jobject>& java_callback, const ScopedJavaGlobalRef<jobject>& java_callback,
std::unique_ptr<BrowsingDataModel> model) { std::unique_ptr<BrowsingDataModel> model) {
@@ -222,7 +231,8 @@ static void JNI_BrowsingDataBridge_MarkOriginAsImportantForTesting( @@ -219,7 +228,8 @@ static void JNI_BrowsingDataBridge_MarkOriginAsImportantForTesting(
static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference(
JNIEnv* env, JNIEnv* env,
Profile* profile, Profile* profile,
@@ -391,7 +392,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro
DCHECK_GE(data_type, 0); DCHECK_GE(data_type, 0);
DCHECK_LE(data_type, DCHECK_LE(data_type,
static_cast<int>(browsing_data::BrowsingDataType::MAX_VALUE)); static_cast<int>(browsing_data::BrowsingDataType::MAX_VALUE));
@@ -234,7 +244,7 @@ static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( @@ -231,7 +241,7 @@ static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference(
std::string pref; std::string pref;
if (!browsing_data::GetDeletionPreferenceFromDataType( if (!browsing_data::GetDeletionPreferenceFromDataType(
static_cast<browsing_data::BrowsingDataType>(data_type), static_cast<browsing_data::BrowsingDataType>(data_type),
@@ -400,7 +401,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro
return false; return false;
} }
@@ -245,6 +255,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( @@ -242,6 +252,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference(
JNIEnv* env, JNIEnv* env,
Profile* profile, Profile* profile,
jint data_type, jint data_type,
@@ -408,7 +409,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro
jboolean value) { jboolean value) {
DCHECK_GE(data_type, 0); DCHECK_GE(data_type, 0);
DCHECK_LE(data_type, DCHECK_LE(data_type,
@@ -253,7 +264,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( @@ -250,7 +261,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference(
std::string pref; std::string pref;
if (!browsing_data::GetDeletionPreferenceFromDataType( if (!browsing_data::GetDeletionPreferenceFromDataType(
static_cast<browsing_data::BrowsingDataType>(data_type), static_cast<browsing_data::BrowsingDataType>(data_type),
@@ -420,7 +421,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro
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
@@ -324,8 +324,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { @@ -327,8 +327,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() {
void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy( void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy(
bool keep_browser_alive) { bool keep_browser_alive) {
@@ -448,7 +449,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
if (!data_types.empty() && if (!data_types.empty() &&
IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref(
@@ -434,6 +451,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { @@ -437,6 +454,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() {
bool ChromeBrowsingDataLifetimeManager:: bool ChromeBrowsingDataLifetimeManager::
IsConditionSatisfiedForBrowsingDataRemoval( IsConditionSatisfiedForBrowsingDataRemoval(
const syncer::UserSelectableTypeSet sync_types) { const syncer::UserSelectableTypeSet sync_types) {
@@ -459,7 +460,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
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
@@ -350,6 +350,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( @@ -352,6 +352,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
uint64_t origin_type_mask, uint64_t origin_type_mask,
base::OnceCallback<void(uint64_t)> callback) { base::OnceCallback<void(uint64_t)> callback) {
CHECK(((remove_mask & CHECK(((remove_mask &
@@ -467,7 +468,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS &
~constants::FILTERABLE_DATA_TYPES) == 0) || ~constants::FILTERABLE_DATA_TYPES) == 0) ||
filter_builder->MatchesAllOriginsAndDomains()); filter_builder->MatchesAllOriginsAndDomains());
@@ -457,6 +458,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( @@ -455,6 +456,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
CreateTaskCompletionClosure(TracingDataType::kHistory), CreateTaskCompletionClosure(TracingDataType::kHistory),
&history_task_tracker_); &history_task_tracker_);
} }
@@ -477,7 +478,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();
@@ -565,6 +569,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( @@ -563,6 +567,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
// and SSL host state are scoped to hosts and represent them as std::string. // and SSL host state are scoped to hosts and represent them as std::string.
// Rename the method to indicate its more general usage. // Rename the method to indicate its more general usage.
if (profile_->GetSSLHostStateDelegate()) { if (profile_->GetSSLHostStateDelegate()) {
@@ -489,7 +490,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
profile_->GetSSLHostStateDelegate()->Clear( profile_->GetSSLHostStateDelegate()->Clear(
filter_builder->MatchesAllOriginsAndDomains() filter_builder->MatchesAllOriginsAndDomains()
? base::RepeatingCallback<bool(const std::string&)>() ? base::RepeatingCallback<bool(const std::string&)>()
@@ -593,9 +602,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( @@ -591,9 +600,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
} }
device_event_log::Clear(delete_begin_, delete_end_); device_event_log::Clear(delete_begin_, delete_end_);
@@ -515,7 +516,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
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
@@ -550,6 +550,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { @@ -564,6 +564,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::kNumber; settings_api::PrefType::kNumber;
@@ -562,19 +563,20 @@ 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
@@ -64,3 +64,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles( @@ -65,4 +65,9 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
g_browser_process->profile_manager()->GetLoadedProfiles(),
RemoveSessionCookiesForProfile); RemoveSessionCookiesForProfile);
} }
+
+static void JNI_ProfileManagerUtils_RemoveBrowsingDataAtStart( +static void JNI_ProfileManagerUtils_RemoveBrowsingDataAtStart(
+ JNIEnv* env) { + JNIEnv* env) {
+ g_browser_process->profile_manager()->RemoveBrowsingDataAtStart(); + g_browser_process->profile_manager()->RemoveBrowsingDataAtStart();
+} +}
+
DEFINE_JNI(ProfileManagerUtils)
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
@@ -1441,6 +1441,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, @@ -1516,6 +1516,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
} }
} }
@@ -594,19 +596,22 @@ 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_ ||
@@ -2102,7 +2115,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { @@ -2185,9 +2198,9 @@ 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. // Do nothing if the closed window is not the last window of the same profile.
for (Browser* browser_iter : *BrowserList::GetInstance()) { bool has_other_window = false;
- if (browser_iter->profile()->GetOriginalProfile() == original_profile) ForEachCurrentBrowserWindowInterfaceOrderedByActivation(
+ if (browser_iter->profile() == profile) - [original_profile, &has_other_window](BrowserWindowInterface* browser) {
return; + [profile, &has_other_window](BrowserWindowInterface* browser) {
} const Profile* const iter_profile = browser->GetProfile();
- if (iter_profile->GetOriginalProfile() == original_profile) {
+ if (iter_profile == profile) {
has_other_window = true;
}
return !has_other_window;
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
@@ -215,6 +215,8 @@ class ProfileManager : public Profile::Delegate { @@ -231,6 +231,8 @@ class ProfileManager : public Profile::Delegate {
// profiles. // profiles.
std::vector<Profile*> GetLoadedProfiles() const; std::vector<Profile*> GetLoadedProfiles() const;
@@ -672,7 +677,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
@@ -214,6 +214,7 @@ export class SettingsClearBrowsingDataDialogElement extends @@ -216,6 +216,7 @@ export class SettingsClearBrowsingDataDialogElement extends
value: () => value: () =>
[loadTimeData.getString('basicPageTitle'), [loadTimeData.getString('basicPageTitle'),
loadTimeData.getString('advancedPageTitle'), loadTimeData.getString('advancedPageTitle'),
@@ -680,7 +685,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
], ],
}, },
@@ -336,6 +337,7 @@ export class SettingsClearBrowsingDataDialogElement extends @@ -344,6 +345,7 @@ export class SettingsClearBrowsingDataDialogElement extends
} }
this.clearButtonDisabled_ = this.clearButtonDisabled_ =
this.getSelectedDataTypes_(page as HTMLElement).length === 0; this.getSelectedDataTypes_(page as HTMLElement).length === 0;
@@ -691,7 +696,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
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
@@ -1452,6 +1452,9 @@ Your Google account may have other forms of browsing history like searches and a @@ -1443,6 +1443,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_ANDROID_APP_HISTORY_OPEN_FULL_OTHER_FORMS" desc="The informational message at the top of the history page letting users know that app-specific history may be missing some entries, followed by the info on the other forms of browing history."> <message name="IDS_ANDROID_APP_HISTORY_OPEN_FULL_OTHER_FORMS" desc="The informational message at the top of the history page letting users know that app-specific history may be missing some entries, followed by the info on the other forms of browing history.">
Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;link&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/link&gt;</ph>. Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;link&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/link&gt;</ph>.
</message> </message>
@@ -718,7 +723,7 @@ new file mode 100644
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
@@ -2021,6 +2021,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, @@ -2218,6 +2218,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},
@@ -729,10 +734,10 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
diff --git a/components/browsing_data/content/browsing_data_helper.cc b/components/browsing_data/content/browsing_data_helper.cc diff --git a/components/browsing_data/content/browsing_data_helper.cc b/components/browsing_data/content/browsing_data_helper.cc
--- a/components/browsing_data/content/browsing_data_helper.cc --- a/components/browsing_data/content/browsing_data_helper.cc
+++ b/components/browsing_data/content/browsing_data_helper.cc +++ b/components/browsing_data/content/browsing_data_helper.cc
@@ -42,8 +42,13 @@ bool WebsiteSettingsFilterAdapter( @@ -44,8 +44,13 @@ bool WebsiteSettingsFilterAdapter(
// this filter is used for is DURABLE_STORAGE, which also only uses // `example.com`).
// origin-scoped patterns. Such patterns can be directly translated to a GURL. GURL url = primary_pattern.ToRepresentativeUrl();
GURL url(primary_pattern.ToString());
- DCHECK(url.is_valid()) << "url: '" << url.possibly_invalid_spec() << "' " - DCHECK(url.is_valid()) << "url: '" << url.possibly_invalid_spec() << "' "
- << "pattern: '" << primary_pattern.ToString() << "'"; - << "pattern: '" << primary_pattern.ToString() << "'";
+ if (!url.is_valid()) { + if (!url.is_valid()) {
@@ -770,7 +775,7 @@ diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/c
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
@@ -17,21 +17,21 @@ @@ -18,21 +18,21 @@
namespace browsing_data { namespace browsing_data {
@@ -826,7 +831,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
--- a/components/browsing_data/core/browsing_data_utils.cc --- a/components/browsing_data/core/browsing_data_utils.cc
+++ b/components/browsing_data/core/browsing_data_utils.cc +++ b/components/browsing_data/core/browsing_data_utils.cc
@@ -413,6 +413,37 @@ bool GetDeletionPreferenceFromDataType( @@ -418,6 +418,37 @@ bool GetDeletionPreferenceFromDataType(
BrowsingDataType data_type, BrowsingDataType data_type,
ClearBrowsingDataTab clear_browsing_data_tab, ClearBrowsingDataTab clear_browsing_data_tab,
std::string* out_pref) { std::string* out_pref) {
@@ -877,6 +882,17 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
} // namespace browsing_data } // namespace browsing_data
diff --git a/components/browsing_data/core/features.h b/components/browsing_data/core/features.h
--- a/components/browsing_data/core/features.h
+++ b/components/browsing_data/core/features.h
@@ -19,6 +19,7 @@ BASE_DECLARE_FEATURE(kBrowsingDataModel);
// updates to history counter logic and removal of the bulk password deletion
// option from the dialog.
BASE_DECLARE_FEATURE(kDbdRevampDesktop);
+SET_CROMITE_FEATURE_DISABLED(kDbdRevampDesktop);
// When enabled, calls to browsingData.removePasswords extension API would
// result in an error response instead of a console warning.
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
@@ -938,7 +954,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co
// Description of database tables: // Description of database tables:
// //
// icon_mapping // icon_mapping
@@ -507,6 +511,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id, @@ -505,6 +509,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin, bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin,
base::Time end) { base::Time end) {
@@ -953,7 +969,15 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co
diff --git a/components/favicon/core/favicon_database.h b/components/favicon/core/favicon_database.h diff --git a/components/favicon/core/favicon_database.h b/components/favicon/core/favicon_database.h
--- a/components/favicon/core/favicon_database.h --- a/components/favicon/core/favicon_database.h
+++ b/components/favicon/core/favicon_database.h +++ b/components/favicon/core/favicon_database.h
@@ -33,6 +33,8 @@ namespace favicon { @@ -9,6 +9,7 @@
#include <optional>
#include <vector>
+#include "base/feature_list.h"
#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
#include "components/favicon/core/favicon_types.h"
@@ -33,6 +34,8 @@ namespace favicon {
// All earlier updates are ignored. // All earlier updates are ignored.
static const int kFaviconUpdateLastRequestedAfterDays = 10; static const int kFaviconUpdateLastRequestedAfterDays = 10;
@@ -965,7 +989,7 @@ diff --git a/components/favicon/core/favicon_database.h b/components/favicon/cor
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
--- a/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc
@@ -925,6 +925,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( @@ -924,6 +924,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
if (turl->date_created() >= created_after && if (turl->date_created() >= created_after &&
(created_before.is_null() || turl->date_created() < created_before) && (created_before.is_null() || turl->date_created() < created_before) &&
turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 && turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 &&
@@ -976,7 +1000,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_service_impl.cc diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_service_impl.cc
--- a/content/browser/btm/btm_service_impl.cc --- a/content/browser/btm/btm_service_impl.cc
+++ b/content/browser/btm/btm_service_impl.cc +++ b/content/browser/btm/btm_service_impl.cc
@@ -212,7 +212,7 @@ class StateClearer : public BrowsingDataRemover::Observer { @@ -261,7 +261,7 @@ class StateClearer : public BrowsingDataRemover::Observer {
remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX;
remover->RemoveWithFilterAndReply( remover->RemoveWithFilterAndReply(
base::Time::Min(), base::Time::Max(), base::Time::Min(), base::Time::Max(),
@@ -988,7 +1012,15 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc
@@ -1529,6 +1529,7 @@ void StoragePartitionImpl::Initialize( @@ -19,6 +19,7 @@
#include "base/containers/contains.h"
#include "base/dcheck_is_on.h"
#include "base/feature_list.h"
+#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/functional/concurrent_closures.h"
@@ -1557,6 +1558,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache"); .AppendASCII("Code Cache");
} }
DCHECK_GE(settings.size_in_bytes(), 0); DCHECK_GE(settings.size_in_bytes(), 0);
@@ -0,0 +1,356 @@
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 9 Oct 2025 09:11:01 +0000
Subject: Add setting to enable Credman for passkeys
Enables Credential Manager for passkey management on A14+ devices via a switch
in the settings. By default, the feature is disabled.
In other versions of Android, webauthn appears to be enabled on websites but
always returns a timeout error as per specifications.
Conditional immediate support is disabled.
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../settings/PasswordSettings.java | 27 +++++++++++++++++
.../touch_to_fill_controller.cc | 2 ++
...etting-to-enable-Credman-for-passkeys.grdp | 12 ++++++++
.../webauthn/AuthenticatorImpl.java | 29 +++++++------------
.../components/webauthn/WebauthnFeatures.java | 2 ++
.../cred_man/CredManSupportProvider.java | 25 ++++------------
.../webauthn/android/webauthn_feature_map.cc | 1 +
components/webauthn/features.cc | 4 +++
components/webauthn/features.h | 3 ++
device/fido/features.cc | 2 ++
.../authentication_credentials_container.cc | 5 ++++
11 files changed, 75 insertions(+), 37 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -10,6 +10,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
@@ -64,6 +65,10 @@ import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
import org.chromium.chrome.browser.lifetime.ApplicationLifetime;
+import org.chromium.chrome.browser.flags.CromiteNativeUtils;
+import org.chromium.components.webauthn.WebauthnFeatureMap;
+import org.chromium.components.webauthn.WebauthnFeatures;
+
/**
* The "Passwords" screen in Settings, which allows the user to enable or disable password saving,
* to view saved passwords (just the username and URL), and to delete saved passwords.
@@ -322,6 +327,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
createSavePasswordsSwitch();
createAutoSignInCheckbox();
createEnableAndroidAutofillSwitch();
+ createCredManSwitch();
PasswordManagerHandlerProvider.getForProfile(getProfile())
.getPasswordManagerHandler()
@@ -673,6 +679,27 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_AUTOSIGNIN));
}
+ private void createCredManSwitch() {
+ ChromeSwitchPreference credManSwitch =
+ new ChromeSwitchPreference(getStyledContext(), null);
+ credManSwitch.setTitle(R.string.enable_android_credman_title);
+ credManSwitch.setOrder(0);
+ credManSwitch.setSummary(R.string.enable_android_credman_summary);
+ credManSwitch.setChecked(
+ WebauthnFeatureMap.getInstance().isEnabled(WebauthnFeatures.WEBAUTHN_ANDROID_PASSKEY));
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+ credManSwitch.setSummary(R.string.enable_android_credman_disabled_summary);
+ credManSwitch.setEnabled(false);
+ }
+ credManSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
+ CromiteNativeUtils.setFlagEnabled("WebAuthenticationAndroidPasskey", (boolean)newValue);
+ if (!mSnackbarManagerSupplier.get().isShowing())
+ mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
+ return true;
+ });
+ getPreferenceScreen().addPreference(credManSwitch);
+ }
+
private void displayManageAccountLink() {
SyncService syncService = SyncServiceFactory.getForProfile(getProfile());
if (syncService == null || !syncService.isEngineInitialized()) {
diff --git a/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc b/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc
--- a/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc
+++ b/chrome/browser/touch_to_fill/password_manager/touch_to_fill_controller.cc
@@ -312,6 +312,7 @@ void TouchToFillController::Reset() {
}
visibility_controller_->Reset();
credentials_.clear();
+ cred_man_delegate_ = nullptr;
}
void TouchToFillController::ActionCompleted() {
@@ -319,6 +320,7 @@ void TouchToFillController::ActionCompleted() {
visibility_controller_->SetShown();
}
ttf_delegate_.reset();
+ cred_man_delegate_ = nullptr;
}
DisplayTarget TouchToFillController::GetResponsibleDisplayTarget(
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp
new file mode 100644
--- /dev/null
+++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-enable-Credman-for-passkeys.grdp
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <message name="IDS_ENABLE_ANDROID_CREDMAN_TITLE" desc="" formatter_data="android_java">
+ Enable Android Credential Manager
+ </message>
+ <message name="IDS_ENABLE_ANDROID_CREDMAN_SUMMARY" desc="" formatter_data="android_java">
+ Enable support for Android Credential Manager
+ </message>
+ <message name="IDS_ENABLE_ANDROID_CREDMAN_DISABLED_SUMMARY" desc="" formatter_data="android_java">
+ Not supported on your device (require A14+)
+ </message>
+</grit-part>
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
@@ -34,6 +34,8 @@ import org.chromium.blink.mojom.PublicKeyCredentialReportOptions;
import org.chromium.blink.mojom.WebAuthnClientCapability;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
+import org.chromium.components.webauthn.CredManSupport;
+import org.chromium.components.webauthn.cred_man.CredManSupportProvider;
import org.chromium.components.ukm.UkmRecorder;
import org.chromium.content_public.browser.RenderFrameHost;
import org.chromium.content_public.browser.WebContents;
@@ -170,8 +172,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mIsPaymentRequest = options.isPaymentCredentialCreation;
mMakeCredentialCallback = callback;
mIsOperationPending = true;
- if (!GmsCoreUtils.isWebauthnSupported()
- || (!isChrome(mWebContents) && !GmsCoreUtils.isResultReceiverSupported())) {
+ if (CredManSupportProvider.getCredManSupport() == CredManSupport.DISABLED) {
recordOutcomeEvent(MakeCredentialOutcome.OTHER_FAILURE);
onError(AuthenticatorStatus.NOT_IMPLEMENTED);
return;
@@ -235,8 +236,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mIsConditionalRequest = options.mediation == Mediation.CONDITIONAL;
mIsImmediateRequest = options.mediation == Mediation.IMMEDIATE;
- if (!GmsCoreUtils.isWebauthnSupported()
- || (!isChrome(mWebContents) && !GmsCoreUtils.isResultReceiverSupported())
+ if (CredManSupportProvider.getCredManSupport() == CredManSupport.DISABLED
|| options.publicKey == null) {
recordOutcomeEvent(GetAssertionOutcome.OTHER_FAILURE);
onError(AuthenticatorStatus.NOT_IMPLEMENTED);
@@ -277,12 +277,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
}
private boolean couldSupportConditionalMediation() {
- return GmsCoreUtils.isWebauthnSupported() && isChrome(mWebContents);
+ return isChrome(mWebContents);
}
private boolean couldSupportUvpaa() {
- return GmsCoreUtils.isWebauthnSupported()
- && (isChrome(mWebContents) || GmsCoreUtils.isResultReceiverSupported());
+ return isChrome(mWebContents);
}
@Override
@@ -356,26 +355,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
capabilities.add(
createWebAuthnClientCapability(
AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET,
- couldSupportConditionalMediation() && isUvpaa));
+ true));
capabilities.add(
createWebAuthnClientCapability(
AuthenticatorConstants.CAPABILITY_UVPAA,
- couldSupportUvpaa() && isUvpaa));
- boolean conditionalCreateEnabled =
- couldSupportConditionalMediation()
- && DeviceFeatureMap.isEnabled(
- DeviceFeatureList.WEBAUTHN_PASSKEY_UPGRADE);
+ true));
capabilities.add(
createWebAuthnClientCapability(
AuthenticatorConstants.CAPABILITY_CONDITIONAL_CREATE,
- isUvpaa && conditionalCreateEnabled));
+ DeviceFeatureMap.isEnabled(
+ DeviceFeatureList.WEBAUTHN_PASSKEY_UPGRADE)));
capabilities.add(
createWebAuthnClientCapability(
AuthenticatorConstants.CAPABILITY_IMMEDIATE_GET,
- DeviceFeatureMap.isEnabled(
- DeviceFeatureList
- .WEBAUTHN_IMMEDIATE_GET)
- && isUvpaa));
+ false));
boolean signalSupported =
isUvpaa
&& DeviceFeatureMap.isEnabled(
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
@@ -17,4 +17,6 @@ public abstract class WebauthnFeatures {
public static final String WEBAUTHN_ANDROID_PASSKEY_CACHE_MIGRATION =
"WebAuthenticationAndroidPasskeyCacheMigration";
public static final String WEBAUTHN_ANDROID_CRED_MAN_FOR_DEV = "WebAuthnAndroidCredManForDev";
+ public static final String WEBAUTHN_ANDROID_PASSKEY =
+ "WebAuthenticationAndroidPasskey";
}
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java
@@ -19,11 +19,11 @@ import org.chromium.base.version_info.VersionInfo;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.components.webauthn.CredManSupport;
-import org.chromium.components.webauthn.GmsCoreUtils;
import org.chromium.components.webauthn.WebauthnFeatureMap;
import org.chromium.components.webauthn.WebauthnFeatures;
import org.chromium.components.webauthn.WebauthnMode;
import org.chromium.components.webauthn.WebauthnModeProvider;
+import org.chromium.components.webauthn.WebauthnLogger;
@NullMarked
public class CredManSupportProvider {
@@ -79,12 +79,12 @@ public class CredManSupportProvider {
}
if (getAndroidVersion() < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
sCredManSupport = CredManSupport.DISABLED;
- log(TAG, "Disabled because of Android version.");
+ WebauthnLogger.logError(TAG, "Disabled because of Android version.");
return sCredManSupport;
}
- if (notSkippedBecauseInTests() && hasOldGmsVersion()) {
+ if (!WebauthnFeatureMap.getInstance().isEnabled(WebauthnFeatures.WEBAUTHN_ANDROID_PASSKEY)) {
sCredManSupport = CredManSupport.DISABLED;
- log(TAG, "Disabled because of old GMS version.");
+ WebauthnLogger.logError(TAG, "Disabled because of user.");
return sCredManSupport;
}
if (notSkippedBecauseInTests()
@@ -92,14 +92,14 @@ public class CredManSupportProvider {
== null) {
sCredManSupport = CredManSupport.DISABLED;
recordCredManAvailability(/* available= */ false);
- log(TAG, "Disabled because CredentialManager is not available.");
+ WebauthnLogger.logError(TAG, "Disabled because CredentialManager is not available.");
return sCredManSupport;
}
recordCredManAvailability(/* available= */ true);
final CredManUiRecommender recommender =
ServiceLoaderUtil.maybeCreate(CredManUiRecommender.class);
- boolean customUiRecommended = recommender != null && recommender.recommendsCustomUi();
+ boolean customUiRecommended = true;
boolean gpmInCredMan =
sOverrideForcesGpm != null ? sOverrideForcesGpm : customUiRecommended;
boolean isChrome3pPwmMode =
@@ -138,13 +138,6 @@ public class CredManSupportProvider {
"WebAuthentication.Android.CredManAvailability", available);
}
- private static boolean hasOldGmsVersion() {
- assert sOverrideAndroidVersion == null : "Don't use in testing!";
- // The check works for unavailable and low GMS versions. `getGmsCoreVersion()` is -1 if the
- // GMS version can't be retrieved. Chrome assumes an insufficient GMS availability then.
- return GmsCoreUtils.getGmsCoreVersion() < getMinGmsVersionForCurrentChannel();
- }
-
private static int getAndroidVersion() {
return sOverrideAndroidVersion == null ? Build.VERSION.SDK_INT : sOverrideAndroidVersion;
}
@@ -152,10 +145,4 @@ public class CredManSupportProvider {
private static boolean notSkippedBecauseInTests() {
return sOverrideForcesGpm == null && sOverrideAndroidVersion == null;
}
-
- private static int getMinGmsVersionForCurrentChannel() {
- return (VersionInfo.isBetaBuild() || VersionInfo.isStableBuild())
- ? GMSCORE_MIN_VERSION_BETA_STABLE
- : GMSCORE_MIN_VERSION_CANARY_DEV;
- }
}
diff --git a/components/webauthn/android/webauthn_feature_map.cc b/components/webauthn/android/webauthn_feature_map.cc
--- a/components/webauthn/android/webauthn_feature_map.cc
+++ b/components/webauthn/android/webauthn_feature_map.cc
@@ -17,6 +17,7 @@ namespace {
const base::Feature* const kFeaturesExposedToJava[] = {
&kWebAuthnAndroidPasskeyCacheMigration,
&kWebAuthnAndroidCredManForDev,
+ &kWebAuthnAndroidPasskey,
};
// static
diff --git a/components/webauthn/features.cc b/components/webauthn/features.cc
--- a/components/webauthn/features.cc
+++ b/components/webauthn/features.cc
@@ -25,6 +25,10 @@ BASE_FEATURE(kWebAuthnAndroidCredManForDev, base::FEATURE_DISABLED_BY_DEFAULT);
const base::FeatureParam<std::string> kWebAuthnAndroidCredManForDevMode{
&kWebAuthnAndroidCredManForDev, "mode", ""};
+CROMITE_FEATURE(kWebAuthnAndroidPasskey,
+ "WebAuthenticationAndroidPasskey",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
#endif // BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_ANDROID)
diff --git a/components/webauthn/features.h b/components/webauthn/features.h
--- a/components/webauthn/features.h
+++ b/components/webauthn/features.h
@@ -27,6 +27,9 @@ BASE_DECLARE_FEATURE(kWebAuthnAndroidCredManForDev);
COMPONENT_EXPORT(WEBAUTHN)
extern const base::FeatureParam<std::string> kWebAuthnAndroidCredManForDevMode;
+COMPONENT_EXPORT(WEBAUTHN)
+BASE_DECLARE_FEATURE(kWebAuthnAndroidPasskey);
+
#endif // BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_ANDROID)
diff --git a/device/fido/features.cc b/device/fido/features.cc
--- a/device/fido/features.cc
+++ b/device/fido/features.cc
@@ -188,6 +188,7 @@ BASE_FEATURE(kWebAuthnImmediateGet,
#else
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
+SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGet);
BASE_FEATURE_PARAM(int,
kWebAuthnImmediateMediationTimeoutMilliseconds,
@@ -200,6 +201,7 @@ BASE_FEATURE_PARAM(int,
BASE_FEATURE(kWebAuthnImmediateGetAutoselect,
"WebAuthenticationImmediateGetAutoselect",
base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kWebAuthnImmediateGetAutoselect);
// Default enabled in M140. Remove in or after M143.
BASE_FEATURE(kWebAuthnLargeBlobForGPM,
diff --git a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc
--- a/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc
+++ b/third_party/blink/renderer/modules/credentialmanagement/authentication_credentials_container.cc
@@ -1090,6 +1090,11 @@ DOMException* AuthenticatorStatusToDOMException(
const WebAuthnDOMExceptionDetailsPtr& dom_exception_details) {
DCHECK_EQ(status != AuthenticatorStatus::ERROR_WITH_DOM_EXCEPTION_DETAILS,
dom_exception_details.is_null());
+ if (status == AuthenticatorStatus::UNKNOWN_ERROR ||
+ status == AuthenticatorStatus::NOT_IMPLEMENTED) {
+ status = AuthenticatorStatus::NOT_ALLOWED_ERROR;
+ base::PlatformThread::Sleep(base::Milliseconds(base::RandInt(1000, 6000)));
+ }
switch (status) {
case AuthenticatorStatus::SUCCESS:
NOTREACHED();
--
@@ -59,7 +59,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A
diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml
--- a/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml
+++ b/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml
@@ -105,6 +105,7 @@ found in the LICENSE file. @@ -111,6 +111,7 @@ found in the LICENSE file.
<!-- Menu item IDs for FullscreenActivities --> <!-- Menu item IDs for FullscreenActivities -->
<item type="id" name="contextmenu_open_in_chrome" /> <item type="id" name="contextmenu_open_in_chrome" />
@@ -98,28 +98,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
@@ -128,8 +128,9 @@ class ChromeContextMenuItem { @@ -135,8 +135,9 @@ class ChromeContextMenuItem {
int PRINT_PAGE = 38;
// Developer Group // Developer Group
int INSPECT_ELEMENT = 39; int VIEW_PAGE_SOURCE = 41;
+ int FOLLOW_LINK = 40; int INSPECT_ELEMENT = 42;
+ int FOLLOW_LINK = 43;
// ALWAYS UPDATE! // ALWAYS UPDATE!
- int NUM_ENTRIES = 40; - int NUM_ENTRIES = 43;
+ int NUM_ENTRIES = 41; + int NUM_ENTRIES = 44;
} }
/** Mapping from {@link Item} to the ID found in the ids.xml. */ /** Mapping from {@link Item} to the ID found in the ids.xml. */
@@ -174,6 +175,7 @@ class ChromeContextMenuItem { @@ -184,6 +185,7 @@ class ChromeContextMenuItem {
R.id.contextmenu_share_page, // Item.SHARE_PAGE
R.id.contextmenu_print_page, // Item.PRINT_PAGE R.id.contextmenu_print_page, // Item.PRINT_PAGE
R.id.contextmenu_view_page_source, // Item.VIEW_PAGE_SOURCE
R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB + R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
}; };
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */ /** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
@@ -218,6 +220,7 @@ class ChromeContextMenuItem { @@ -231,6 +233,7 @@ class ChromeContextMenuItem {
R.string.contextmenu_share_page, // Item.SHARE_PAGE
R.string.contextmenu_print_page, // Item.PRINT_PAGE R.string.contextmenu_print_page, // Item.PRINT_PAGE
R.string.contextmenu_view_page_source, // Item.VIEW_PAGE_SOURCE
R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT
+ R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB + R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
}; };
@@ -128,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/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
@@ -442,6 +442,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { @@ -474,6 +474,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
} }
if (mParams.isAnchor()) { if (mParams.isAnchor()) {
ModelList linkGroup = new ModelList(); ModelList linkGroup = new ModelList();
@@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
if (FirstRunStatus.getFirstRunFlowComplete() if (FirstRunStatus.getFirstRunFlowComplete()
&& !isEmptyUrl(mParams.getUrl()) && !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) { && UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
@@ -1026,6 +1029,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { @@ -1083,6 +1086,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
getProfile(), getProfile(),
false); false);
}); });
@@ -150,7 +150,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
@@ -369,6 +369,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @@ -414,6 +414,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
mTab.loadUrl(loadUrlParams); mTab.loadUrl(loadUrlParams);
} }
@@ -168,7 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -419,6 +419,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -446,6 +446,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabGroupParityBottomSheetAndroid, &kTabGroupParityBottomSheetAndroid,
&kTabModelInitFixes, &kTabModelInitFixes,
&kTabStorageSqlitePrototype, &kTabStorageSqlitePrototype,
@@ -179,7 +179,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
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
@@ -494,6 +494,8 @@ public abstract class ChromeFeatureList { @@ -517,6 +517,8 @@ public abstract class ChromeFeatureList {
"DisableToolbarSwipeUp"; "DisableToolbarSwipeUp";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom"; "MoveTopToolbarToBottom";
@@ -188,7 +188,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON =
"NewTabPageCustomizationToolbarButton"; "NewTabPageCustomizationToolbarButton";
public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2";
@@ -988,6 +990,8 @@ public abstract class ChromeFeatureList { @@ -1031,6 +1033,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
public static final CachedFlag sMoveTopToolbarToBottom = public static final CachedFlag sMoveTopToolbarToBottom =
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
@@ -197,10 +197,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
public static final CachedFlag sPostGetMyMemoryStateToBackground = public static final CachedFlag sPostGetMyMemoryStateToBackground =
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true);
@@ -1228,6 +1232,7 @@ public abstract class ChromeFeatureList { @@ -1303,6 +1307,7 @@ public abstract class ChromeFeatureList {
sTopControlsRefactor, sTopControlsRefactor,
sTopControlsRefactorV2,
sTouchToSearchCallout, sTouchToSearchCallout,
sTraceBinderIpc,
+ sShowAlwaysContextMenuOnLinks, + sShowAlwaysContextMenuOnLinks,
sUseActivityManagerForTabActivation, sUseActivityManagerForTabActivation,
sUseChimeAndroidSdk, sUseChimeAndroidSdk,
@@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
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
@@ -1596,6 +1596,12 @@ Your Google account may have other forms of browsing history like searches and a @@ -1572,6 +1572,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DISABLE_TOOLBAR_SWIPE_UP" desc="Summary of the preference that allows the user to disable toolbar swipeup."> <message name="IDS_DISABLE_TOOLBAR_SWIPE_UP" desc="Summary of the preference that allows the user to disable toolbar swipeup.">
Disable toolbar swipe up Disable toolbar swipe up
</message> </message>
@@ -228,13 +228,13 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
+ <message name="IDS_CONTEXTMENU_OPEN_IN_TAB" desc="Context sensitive menu item to open the selected link in tab. [CHAR_LIMIT=30]"> + <message name="IDS_CONTEXTMENU_OPEN_IN_TAB" desc="Context sensitive menu item to open the selected link in tab. [CHAR_LIMIT=30]">
+ Open in current tab + Open in current tab
+ </message> + </message>
<message name="IDS_CONTEXTMENU_OPEN_IN_CHROME_INCOGNITO_TAB" desc="Context sensitive menu item to open the selected link in a Chrome Incognito tab from Chrome Custom Tab. [CHAR_LIMIT=30]"> <message name="IDS_CONTEXTMENU_OPEN_IN_CHROME_WINDOW" desc="Context sensitive menu item to open the selected link in a Chrome window from Chrome Custom Tab. Used when there is a dedicated window for Incognito tabs. [CHAR_LIMIT=30]">
Open in Incognito tab Open in Chrome window
</message> </message>
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -31,6 +31,11 @@ found in the LICENSE file. @@ -26,6 +26,11 @@ found in the LICENSE file.
android:summary="@string/page_zoom_always_show_preference_summary" android:summary="@string/page_zoom_always_show_preference_summary"
android:title="@string/page_zoom_always_show_preference_title" /> android:title="@string/page_zoom_always_show_preference_title" />
@@ -249,7 +249,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -53,6 +53,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment @@ -60,6 +60,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate; private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
@@ -259,7 +259,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private PageZoomPreference mPageZoomDefaultZoomPref; private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
private ChromeSwitchPreference mPageZoomAlwaysShowPref; private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -139,6 +142,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment @@ -157,6 +160,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue()); mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue());
mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this); mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
@@ -272,7 +272,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS); Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener( captions.setOnPreferenceClickListener(
preference -> { preference -> {
@@ -220,6 +229,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment @@ -265,6 +274,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
} else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue);
mDelegate.requestRestart(getActivity()); mDelegate.requestRestart(getActivity());
@@ -344,7 +344,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc
--- a/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc
+++ b/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc
@@ -66,6 +66,7 @@ @@ -65,6 +65,7 @@
#include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h" #include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h"
#include "third_party/blink/renderer/core/navigation_api/navigation_api.h" #include "third_party/blink/renderer/core/navigation_api/navigation_api.h"
#include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/chrome_client.h"
@@ -352,7 +352,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/scroll/scroll_into_view_util.h" #include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h"
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
@@ -501,6 +502,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( @@ -415,6 +416,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
bool is_trusted, bool is_trusted,
base::TimeTicks platform_time_stamp, base::TimeTicks platform_time_stamp,
KURL completed_url) { KURL completed_url) {
@@ -370,7 +370,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
LocalDOMWindow* window = GetDocument().domWindow(); LocalDOMWindow* window = GetDocument().domWindow();
if (!window) { if (!window) {
return; return;
@@ -591,6 +603,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( @@ -495,6 +507,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
frame_request.SetImpression(impression); frame_request.SetImpression(impression);
} }
@@ -386,8 +386,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;
@@ -634,7 +655,7 @@ Element* HTMLAnchorElementBase::InterestForElement() const { @@ -531,7 +552,7 @@ bool HTMLAnchorElementBase::IsValidInterestInvoker(Element& target) const {
html_names::kInterestforAttr); return IsLink();
} }
-void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { -void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
@@ -395,25 +395,25 @@ 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();
@@ -730,13 +751,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { @@ -583,13 +604,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
return; return;
} }
- base::OnceClosure navigate_closure = WTF::BindOnce( - base::OnceClosure navigate_closure = blink::BindOnce(
- &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this), - &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this),
- std::move(request), navigation_policy, event.isTrusted(), - std::move(request), navigation_policy, event.isTrusted(),
- event.PlatformTimeStamp(), std::move(completed_url)); - event.PlatformTimeStamp(), std::move(completed_url));
- -
if (navigation_policy == kNavigationPolicyDownload || if (navigation_policy == kNavigationPolicyDownload ||
navigation_policy == kNavigationPolicyLinkPreview) { navigation_policy == kNavigationPolicyLinkPreview) {
+ base::OnceClosure navigate_closure = WTF::BindOnce( + base::OnceClosure navigate_closure = blink::BindOnce(
+ &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this), + &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this),
+ std::move(request), navigation_policy, event.isTrusted(), + std::move(request), navigation_policy, event.isTrusted(),
+ event.PlatformTimeStamp(), std::move(completed_url)); + event.PlatformTimeStamp(), std::move(completed_url));
// We distinguish single/double click with some modifiers. // We distinguish single/double click with some modifiers.
// See the comment of `EventHandler.delayed_navigation_task_handle_`. // See the comment of `EventHandler.delayed_navigation_task_handle_`.
auto task_handle = PostDelayedCancellableTask( auto task_handle = PostDelayedCancellableTask(
@@ -746,7 +766,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { @@ -599,7 +619,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
frame->GetEventHandler().SetDelayedNavigationTaskHandle( frame->GetEventHandler().SetDelayedNavigationTaskHandle(
std::move(task_handle)); std::move(task_handle));
} else { } else {
@@ -427,15 +427,15 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
--- a/third_party/blink/renderer/core/html/html_anchor_element.h --- a/third_party/blink/renderer/core/html/html_anchor_element.h
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h
@@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, @@ -90,6 +90,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
Element* InterestForElement() const override; bool IsValidInterestInvoker(Element& target) const override;
void Trace(Visitor*) const override; void Trace(Visitor*) const override;
+ void HandleClick(MouseEvent&, bool do_not_show_context_menu = false); + void HandleClick(MouseEvent&, bool do_not_show_context_menu = false);
protected: protected:
HTMLAnchorElementBase(const QualifiedName& tag_name, Document&); HTMLAnchorElementBase(const QualifiedName& tag_name, Document&);
@@ -143,7 +144,11 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, @@ -121,7 +122,11 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement,
bool is_trusted, bool is_trusted,
base::TimeTicks platform_time_stamp, base::TimeTicks platform_time_stamp,
KURL); KURL);
@@ -459,7 +459,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
#include "third_party/blink/renderer/core/frame/attribution_src_loader.h" #include "third_party/blink/renderer/core/frame/attribution_src_loader.h"
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h" #include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h"
@@ -64,6 +65,7 @@ @@ -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"
@@ -467,7 +467,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
#include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
@@ -815,6 +817,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( @@ -782,6 +784,21 @@ void HTMLImageElement::DidFinishLayout() {
} }
} }
@@ -492,19 +492,19 @@ 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
@@ -215,6 +215,8 @@ class CORE_EXPORT HTMLImageElement @@ -211,6 +211,8 @@ class CORE_EXPORT HTMLImageElement
void DidAddUserAgentShadowRoot(ShadowRoot&) override; void DidAddUserAgentShadowRoot(ShadowRoot&) override;
void AdjustStyle(ComputedStyleBuilder&) override; void AdjustStyle(ComputedStyleBuilder&) override;
+ void DefaultEventHandler(Event&) override; + void DefaultEventHandler(Event&) override;
+ +
private: private:
bool AreAuthorShadowsAllowed() const override { return false; } void ParseAttribute(const AttributeModificationParams&) override;
bool IsPresentationAttribute(const QualifiedName&) const override;
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
@@ -200,14 +200,16 @@ void ContextMenuController::DocumentDetached(Document* document) { @@ -201,15 +201,17 @@ void ContextMenuController::DocumentDetached(Document* document) {
} }
} }
@@ -514,7 +514,8 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
+ if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) { + if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) {
+ DCHECK(mouse_event->type() == event_type_names::kContextmenu); + DCHECK(mouse_event->type() == event_type_names::kContextmenu);
+ } + }
LocalFrame* frame = mouse_event->target()->ToNode()->GetDocument().GetFrame(); LocalFrame* frame =
mouse_event->RawTarget()->ToNode()->GetDocument().GetFrame();
PhysicalOffset location = PhysicalOffset location =
PhysicalOffset::FromPointFRound(mouse_event->AbsoluteLocation()); PhysicalOffset::FromPointFRound(mouse_event->AbsoluteLocation());
@@ -524,7 +525,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
mouse_event->SetDefaultHandled(); mouse_event->SetDefaultHandled();
} }
@@ -432,7 +434,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( @@ -440,7 +442,8 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
bool ContextMenuController::ShowContextMenu(LocalFrame* frame, bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
const PhysicalOffset& point, const PhysicalOffset& point,
WebMenuSourceType source_type, WebMenuSourceType source_type,
@@ -534,7 +535,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,
@@ -455,6 +458,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, @@ -463,6 +466,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
if (!result.InnerNodeOrImageMapImage()) if (!result.InnerNodeOrImageMapImage())
return false; return false;
@@ -551,7 +552,7 @@ 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;
@@ -825,7 +838,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, @@ -844,7 +857,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
SetAutofillData(result.InnerNode(), data); SetAutofillData(result.InnerNode(), data);
@@ -563,7 +564,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/third_party/blink/renderer/core/page/context_menu_controller.h diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/third_party/blink/renderer/core/page/context_menu_controller.h
--- a/third_party/blink/renderer/core/page/context_menu_controller.h --- a/third_party/blink/renderer/core/page/context_menu_controller.h
+++ b/third_party/blink/renderer/core/page/context_menu_controller.h +++ b/third_party/blink/renderer/core/page/context_menu_controller.h
@@ -58,7 +58,7 @@ class CORE_EXPORT ContextMenuController final @@ -58,7 +58,7 @@ class CORE_EXPORT ContextMenuController
void DocumentDetached(Document*); void DocumentDetached(Document*);
@@ -572,13 +573,13 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/th
void ShowContextMenuAtPoint(LocalFrame*, void ShowContextMenuAtPoint(LocalFrame*,
float x, float x,
float y, float y,
@@ -125,7 +125,8 @@ class CORE_EXPORT ContextMenuController final @@ -127,7 +127,8 @@ class CORE_EXPORT ContextMenuController
bool ShowContextMenu(LocalFrame*, virtual bool ShowContextMenu(LocalFrame*,
const PhysicalOffset&, const PhysicalOffset&,
WebMenuSourceType, WebMenuSourceType,
- const MouseEvent* mouse_event = nullptr); - const MouseEvent* mouse_event);
+ const MouseEvent* mouse_event = nullptr, + const MouseEvent* mouse_event,
+ bool do_not_show_context_menu = false); + bool do_not_show_context_menu = false);
bool ShouldShowContextMenuFromTouch(const ContextMenuData&); bool ShouldShowContextMenuFromTouch(const ContextMenuData&);
+43 -8
View File
@@ -9,6 +9,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/browser/about_flags.cc | 1 + chrome/browser/about_flags.cc | 1 +
.../engagement/important_sites_util.cc | 9 +++++ .../engagement/important_sites_util.cc | 9 +++++
.../browser/media/media_engagement_service.cc | 4 ++-
.../auto_picture_in_picture_tab_helper.cc | 2 +-
.../internal/tracker_impl.cc | 3 ++ .../internal/tracker_impl.cc | 3 ++
.../public/feature_configurations.cc | 7 ++++ .../public/feature_configurations.cc | 7 ++++
.../content/site_engagement_score.cc | 5 +++ .../content/site_engagement_score.cc | 5 +++
@@ -16,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/site_engagement/core/features.cc | 30 ++++++++++++++++ components/site_engagement/core/features.cc | 30 ++++++++++++++++
components/site_engagement/core/features.h | 34 +++++++++++++++++++ components/site_engagement/core/features.h | 34 +++++++++++++++++++
.../Add-site-engagement-flag.inc | 10 ++++++ .../Add-site-engagement-flag.inc | 10 ++++++
9 files changed, 105 insertions(+) 11 files changed, 109 insertions(+), 2 deletions(-)
create mode 100644 components/site_engagement/core/features.cc create mode 100644 components/site_engagement/core/features.cc
create mode 100644 components/site_engagement/core/features.h create mode 100644 components/site_engagement/core/features.h
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
@@ -24,9 +26,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -166,6 +166,7 @@ @@ -169,6 +169,7 @@
#include "components/sensitive_content/features.h"
#include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/heap_profiling/public/cpp/switches.h"
#include "components/services/on_device_translation/buildflags/buildflags.h"
#include "components/services/storage/public/cpp/buckets/bucket_info.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"
@@ -43,7 +45,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
#include "components/site_engagement/core/mojom/site_engagement_details.mojom.h" #include "components/site_engagement/core/mojom/site_engagement_details.mojom.h"
#include "components/webapps/browser/banners/app_banner_settings_helper.h" #include "components/webapps/browser/banners/app_banner_settings_helper.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
@@ -344,6 +345,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( @@ -345,6 +346,10 @@ void ImportantSitesUtil::RegisterProfilePrefs(
// static // static
std::set<std::string> ImportantSitesUtil::GetInstalledRegisterableDomains( std::set<std::string> ImportantSitesUtil::GetInstalledRegisterableDomains(
Profile* profile) { Profile* profile) {
@@ -54,7 +56,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
std::set<GURL> installed_origins = GetOriginsWithInstalledWebApps(profile); std::set<GURL> installed_origins = GetOriginsWithInstalledWebApps(profile);
std::set<std::string> registerable_domains; std::set<std::string> registerable_domains;
@@ -358,6 +363,10 @@ std::vector<ImportantDomainInfo> @@ -359,6 +364,10 @@ std::vector<ImportantDomainInfo>
ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile, ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
size_t max_results) { size_t max_results) {
SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime"); SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime");
@@ -65,6 +67,39 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
std::map<std::string, ImportantDomainInfo> important_info; std::map<std::string, ImportantDomainInfo> important_info;
std::map<GURL, double> engagement_map; std::map<GURL, double> engagement_map;
diff --git a/chrome/browser/media/media_engagement_service.cc b/chrome/browser/media/media_engagement_service.cc
--- a/chrome/browser/media/media_engagement_service.cc
+++ b/chrome/browser/media/media_engagement_service.cc
@@ -25,6 +25,7 @@
#include "components/history/core/browser/history_service.h"
#include "components/no_state_prefetch/browser/no_state_prefetch_contents.h"
#include "components/prefs/pref_service.h"
+#include "components/site_engagement/core/features.h"
#include "content/public/browser/web_contents.h"
#include "media/base/media_switches.h"
#include "url/origin.h"
@@ -54,7 +55,8 @@ enum class MediaEngagementClearReason {
// static
bool MediaEngagementService::IsEnabled() {
- return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores);
+ return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores)
+ && base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement);
}
// static
diff --git a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc
--- a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc
+++ b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc
@@ -46,7 +46,7 @@ AutoPictureInPictureTabHelper::AutoPictureInPictureTabHelper(
Profile::FromBrowserContext(web_contents->GetBrowserContext()))),
auto_blocker_(PermissionDecisionAutoBlockerFactory::GetForProfile(
Profile::FromBrowserContext(web_contents->GetBrowserContext()))),
- media_engagement_service_(MediaEngagementService::Get(
+ media_engagement_service_(!MediaEngagementService::IsEnabled() ? nullptr : MediaEngagementService::Get(
Profile::FromBrowserContext(web_contents->GetBrowserContext()))),
clock_(base::DefaultTickClock::GetInstance()) {
// `base::Unretained` is safe here since we own `tab_observer_helper_`.
diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc
--- a/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc
+++ b/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc
@@ -76,7 +111,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components
#include "components/feature_engagement/internal/availability_model_impl.h" #include "components/feature_engagement/internal/availability_model_impl.h"
#include "components/feature_engagement/internal/blocked_iph_features.h" #include "components/feature_engagement/internal/blocked_iph_features.h"
#include "components/feature_engagement/internal/chrome_variations_configuration.h" #include "components/feature_engagement/internal/chrome_variations_configuration.h"
@@ -306,6 +307,8 @@ TrackerImpl::TrackerImpl( @@ -291,6 +292,8 @@ TrackerImpl::TrackerImpl(
TrackerImpl::~TrackerImpl() = default; TrackerImpl::~TrackerImpl() = default;
void TrackerImpl::NotifyEvent(const std::string& event) { void TrackerImpl::NotifyEvent(const std::string& event) {
@@ -88,7 +123,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components
diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc
--- a/components/feature_engagement/public/feature_configurations.cc --- a/components/feature_engagement/public/feature_configurations.cc
+++ b/components/feature_engagement/public/feature_configurations.cc +++ b/components/feature_engagement/public/feature_configurations.cc
@@ -11,6 +11,7 @@ @@ -6,6 +6,7 @@
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "build/build_config.h" #include "build/build_config.h"
@@ -96,7 +131,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co
#include "components/feature_engagement/public/configuration.h" #include "components/feature_engagement/public/configuration.h"
#include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/event_constants.h"
#include "components/feature_engagement/public/feature_constants.h" #include "components/feature_engagement/public/feature_constants.h"
@@ -118,6 +119,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig( @@ -121,6 +122,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
} }
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
@@ -12,18 +12,18 @@ 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
@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; @@ -68,6 +68,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController;
+import org.chromium.components.browser_ui.settings.SettingsUtils; +import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
import org.chromium.components.browser_ui.settings.SettingsFragment; import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver;
@@ -469,8 +470,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity @@ -922,8 +923,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finishCurrentSettings(mainFragment);
return true; return true;
} else if (item.getItemId() == R.id.menu_id_general_help) { } else if (item.getItemId() == R.id.menu_id_general_help) {
RecordUserAction.record("Settings.MobileHelpAndFeedback");
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile) - HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
- .show(this, getString(R.string.help_context_settings), null); - .show(this, getString(R.string.help_context_settings), null);
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) { + if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
@@ -38,7 +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
@@ -28,6 +28,10 @@ import org.chromium.ui.drawable.StateListDrawableBuilder; @@ -33,6 +33,10 @@ import java.util.ArrayList;
/** A helper class for Settings. */ /** A helper class for Settings. */
@NullMarked @NullMarked
public class SettingsUtils { public class SettingsUtils {
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc
--- a/base/android/content_uri_utils.cc --- a/base/android/content_uri_utils.cc
+++ b/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc
@@ -136,6 +136,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, @@ -137,6 +137,16 @@ static void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env,
Time::FromMillisecondsSinceUnixEpoch(last_modified)); Time::FromMillisecondsSinceUnixEpoch(last_modified));
} }
+17 -17
View File
@@ -52,7 +52,7 @@ new file mode 100644
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
+import org.chromium.components.content_settings.ContentSettingValues; +import org.chromium.components.content_settings.ContentSetting;
+import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.content_public.browser.BrowserContextHandle;
+ +
@@ -65,8 +65,8 @@ new file mode 100644
+public class BromiteWebGLContentSetting extends BromiteCustomContentSetting { +public class BromiteWebGLContentSetting extends BromiteCustomContentSetting {
+ public BromiteWebGLContentSetting() { + public BromiteWebGLContentSetting() {
+ super(/*contentSettingsType*/ ContentSettingsType.WEBGL, + super(/*contentSettingsType*/ ContentSettingsType.WEBGL,
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, + /*defaultEnabledValue*/ ContentSetting.ALLOW,
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, + /*defaultDisabledValue*/ ContentSetting.BLOCK,
+ /*allowException*/ true, + /*allowException*/ true,
+ /*preferenceKey*/ "webgl", + /*preferenceKey*/ "webgl",
+ /*profilePrefKey*/ "webgl"); + /*profilePrefKey*/ "webgl");
@@ -85,11 +85,11 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { + public int getCategorySummary(@Nullable @ContentSetting int value) {
+ switch (value) { + switch (value) {
+ case ContentSettingValues.ALLOW: + case ContentSetting.ALLOW:
+ return R.string.website_settings_category_webgl_enabled; + return R.string.website_settings_category_webgl_enabled;
+ case ContentSettingValues.BLOCK: + case ContentSetting.BLOCK:
+ return R.string.website_settings_category_webgl_disabled; + return R.string.website_settings_category_webgl_disabled;
+ default: + default:
+ return 0; + return 0;
@@ -117,8 +117,8 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { + public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
+ return value != ContentSettingValues.BLOCK; + return value != ContentSetting.BLOCK;
+ } + }
+} +}
diff --git a/components/browser_ui/strings/bromite_content_settings/webgl.grdp b/components/browser_ui/strings/bromite_content_settings/webgl.grdp diff --git a/components/browser_ui/strings/bromite_content_settings/webgl.grdp b/components/browser_ui/strings/bromite_content_settings/webgl.grdp
@@ -189,7 +189,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -86,6 +86,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor( @@ -94,6 +94,13 @@ blink::WebContentSettingsClient* GetContentSettingsClientFor(
return settings; return settings;
} }
@@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -114,6 +114,8 @@ enum ReasonForCallingCanExecuteScripts { @@ -149,6 +149,8 @@ enum ReasonForCallingCanExecuteScripts {
enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag };
@@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -345,6 +345,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( @@ -341,6 +341,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
} }
} }
@@ -232,8 +232,8 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() {
base::AutoLock locker(WebGLContextLimitLock()); base::AutoLock locker(WebGLContextLimitLock());
DCHECK(webgl_context_limits_initialized_); DCHECK(webgl_context_limits_initialized_);
@@ -615,25 +622,6 @@ static String ExtractWebGLContextCreationError( @@ -611,25 +618,6 @@ static String ExtractWebGLContextCreationError(
const Platform::GraphicsInfo& info) { const Platform::WebGLContextInfo& info) {
StringBuilder builder; StringBuilder builder;
builder.Append("Could not create a WebGL context"); builder.Append("Could not create a WebGL context");
- FormatWebGLStatusString( - FormatWebGLStatusString(
@@ -258,10 +258,10 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(),
builder); builder);
builder.Append('.'); builder.Append('.');
@@ -693,6 +681,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( @@ -690,6 +678,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
const CanvasContextCreationAttributesCore& attributes, const CanvasContextCreationAttributesCore& attributes,
Platform::ContextType context_type, Platform::WebGLContextType context_type,
Platform::GraphicsInfo* graphics_info) { Platform::WebGLContextInfo* context_info) {
+ if (!AllowWebglForHost(host)) { + if (!AllowWebglForHost(host)) {
+ host->HostDispatchEvent(WebGLContextEvent::Create( + host->HostDispatchEvent(WebGLContextEvent::Create(
+ event_type_names::kWebglcontextcreationerror, + event_type_names::kWebglcontextcreationerror,
@@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
@@ -1951,6 +1951,8 @@ class MODULES_EXPORT WebGLRenderingContextBase @@ -1965,6 +1965,8 @@ class MODULES_EXPORT WebGLRenderingContextBase
DOMArrayBufferView* pixels, DOMArrayBufferView* pixels,
int64_t offset); int64_t offset);
+18 -18
View File
@@ -49,7 +49,7 @@ new file mode 100644
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
+import org.chromium.components.content_settings.ContentSettingValues; +import org.chromium.components.content_settings.ContentSetting;
+import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.content_public.browser.BrowserContextHandle;
+ +
@@ -62,8 +62,8 @@ new file mode 100644
+public class BromiteWebRTCContentSetting extends BromiteCustomContentSetting { +public class BromiteWebRTCContentSetting extends BromiteCustomContentSetting {
+ public BromiteWebRTCContentSetting() { + public BromiteWebRTCContentSetting() {
+ super(/*contentSettingsType*/ ContentSettingsType.WEBRTC, + super(/*contentSettingsType*/ ContentSettingsType.WEBRTC,
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, + /*defaultEnabledValue*/ ContentSetting.ALLOW,
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, + /*defaultDisabledValue*/ ContentSetting.BLOCK,
+ /*allowException*/ true, + /*allowException*/ true,
+ /*preferenceKey*/ "webrtc", + /*preferenceKey*/ "webrtc",
+ /*profilePrefKey*/ "webrtc"); + /*profilePrefKey*/ "webrtc");
@@ -82,11 +82,11 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { + public int getCategorySummary(@Nullable @ContentSetting int value) {
+ switch (value) { + switch (value) {
+ case ContentSettingValues.ALLOW: + case ContentSetting.ALLOW:
+ return R.string.website_settings_category_webrtc_enabled; + return R.string.website_settings_category_webrtc_enabled;
+ case ContentSettingValues.BLOCK: + case ContentSetting.BLOCK:
+ return R.string.website_settings_category_webrtc_disabled; + return R.string.website_settings_category_webrtc_disabled;
+ default: + default:
+ // this will cause a runtime exception + // this will cause a runtime exception
@@ -115,8 +115,8 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { + public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
+ return value != ContentSettingValues.BLOCK; + return value != ContentSetting.BLOCK;
+ } + }
+} +}
diff --git a/components/browser_ui/strings/bromite_content_settings/webrtc.grdp b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp diff --git a/components/browser_ui/strings/bromite_content_settings/webrtc.grdp b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp
@@ -187,7 +187,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -46,6 +46,7 @@ @@ -47,6 +47,7 @@
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/task_type.h"
@@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
#include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/public/web/web_document.h" #include "third_party/blink/public/web/web_document.h"
@@ -1062,6 +1063,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( @@ -1041,6 +1042,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// |request_multiple_routes|. Whether local IP addresses could be // |request_multiple_routes|. Whether local IP addresses could be
// collected depends on if mic/camera permission is granted for this // collected depends on if mic/camera permission is granted for this
// origin. // origin.
@@ -210,9 +210,9 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
@@ -16,6 +16,9 @@ @@ -12,6 +12,9 @@
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "base/synchronization/lock.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
+#include "third_party/blink/public/platform/web_content_settings_client.h" +#include "third_party/blink/public/platform/web_content_settings_client.h"
+#include "third_party/blink/public/web/web_local_frame.h" +#include "third_party/blink/public/web/web_local_frame.h"
@@ -220,7 +220,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
@@ -288,6 +291,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, @@ -277,6 +280,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video") if (kind != "audio" && kind != "video")
return nullptr; return nullptr;
@@ -238,9 +238,9 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
@@ -21,6 +21,9 @@ @@ -17,6 +17,9 @@
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "base/strings/to_string.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
+#include "third_party/blink/public/platform/web_content_settings_client.h" +#include "third_party/blink/public/platform/web_content_settings_client.h"
+#include "third_party/blink/public/web/web_local_frame.h" +#include "third_party/blink/public/web/web_local_frame.h"
@@ -248,7 +248,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
@@ -1035,6 +1038,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, @@ -1019,6 +1022,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video") if (kind != "audio" && kind != "video")
return nullptr; return nullptr;
@@ -34,7 +34,7 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict
#include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h" #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
@@ -386,6 +387,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( @@ -388,6 +389,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
return; return;
} }
@@ -25,14 +25,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../blink/renderer/core/frame/local_frame.h | 3 +++ .../blink/renderer/core/frame/local_frame.h | 3 +++
.../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.cc | 9 +++++++++
.../renderer/core/frame/reporting_context.h | 7 +++++-- .../renderer/core/frame/reporting_context.h | 7 +++++--
.../renderer/core/frame/reporting_observer.cc | 3 +-- .../renderer/core/frame/reporting_observer.cc | 4 +---
22 files changed, 64 insertions(+), 25 deletions(-) 22 files changed, 64 insertions(+), 26 deletions(-)
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc
diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc
--- a/chrome/browser/net/chrome_report_sender.cc --- a/chrome/browser/net/chrome_report_sender.cc
+++ b/chrome/browser/net/chrome_report_sender.cc +++ b/chrome/browser/net/chrome_report_sender.cc
@@ -85,6 +85,7 @@ void SendReport( @@ -88,6 +88,7 @@ void SendReport(
const std::string& report, const std::string& report,
base::OnceClosure success_callback, base::OnceClosure success_callback,
ErrorCallback error_callback) { ErrorCallback error_callback) {
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1496,6 +1496,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { @@ -1517,6 +1517,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
} }
} }
@@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
std::vector<GURL> urls; std::vector<GURL> urls;
frame_host->ForEachRenderFrameHostImplWithAction( frame_host->ForEachRenderFrameHostImplWithAction(
@@ -1509,6 +1510,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) { @@ -1530,6 +1531,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
}); });
return urls; return urls;
} }
@@ -106,9 +106,9 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
#include "base/values.h" #include "base/values.h"
+#include "net/base/features.h" +#include "net/base/features.h"
#include "content/browser/service_worker/service_worker_host.h" #include "content/browser/service_worker/service_worker_host.h"
#include "content/browser/shared_storage/shared_storage_worklet_host.h"
#include "content/browser/worker_host/dedicated_worker_host.h" #include "content/browser/worker_host/dedicated_worker_host.h"
#include "content/browser/worker_host/shared_worker_host.h" @@ -241,12 +242,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
@@ -240,12 +241,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
const std::string& group, const std::string& group,
const std::string& type, const std::string& type,
base::Value::Dict body) { base::Value::Dict body) {
@@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -16153,12 +16153,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( @@ -16347,12 +16347,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
} }
} }
} }
@@ -308,7 +308,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
diff --git a/services/network/network_context.h b/services/network/network_context.h diff --git a/services/network/network_context.h b/services/network/network_context.h
--- a/services/network/network_context.h --- a/services/network/network_context.h
+++ b/services/network/network_context.h +++ b/services/network/network_context.h
@@ -494,14 +494,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext @@ -499,14 +499,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const GURL& url, const GURL& url,
const std::optional<base::UnguessableToken>& reporting_source, const std::optional<base::UnguessableToken>& reporting_source,
const net::NetworkAnonymizationKey& network_anonymization_key, const net::NetworkAnonymizationKey& network_anonymization_key,
@@ -329,7 +329,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc
--- a/services/network/public/cpp/parsed_headers.cc --- a/services/network/public/cpp/parsed_headers.cc
+++ b/services/network/public/cpp/parsed_headers.cc +++ b/services/network/public/cpp/parsed_headers.cc
@@ -125,6 +125,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( @@ -140,6 +140,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders(
} }
#if BUILDFLAG(ENABLE_REPORTING) #if BUILDFLAG(ENABLE_REPORTING)
@@ -340,7 +340,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
--- a/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn
@@ -1793,7 +1793,6 @@ mojom("mojom") { @@ -1833,7 +1833,6 @@ mojom("mojom") {
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h" export_header_blink = "third_party/blink/public/platform/web_common.h"
if (enable_reporting) { if (enable_reporting) {
@@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom
@@ -1240,6 +1240,7 @@ interface NetworkContext { @@ -1245,6 +1245,7 @@ interface NetworkContext {
// provided `network_anonymization_key`. // provided `network_anonymization_key`.
// //
// Spec: https://w3c.github.io/reporting/#concept-reports // Spec: https://w3c.github.io/reporting/#concept-reports
@@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueReport(string type, QueueReport(string type,
string group, string group,
url.mojom.Url url, url.mojom.Url url,
@@ -1247,6 +1248,7 @@ interface NetworkContext { @@ -1252,6 +1253,7 @@ interface NetworkContext {
NetworkAnonymizationKey network_anonymization_key, NetworkAnonymizationKey network_anonymization_key,
mojo_base.mojom.DictionaryValue body); mojo_base.mojom.DictionaryValue body);
@@ -367,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueEnterpriseReport(string type, QueueEnterpriseReport(string type,
string group, string group,
url.mojom.Url url, url.mojom.Url url,
@@ -1257,6 +1259,7 @@ interface NetworkContext { @@ -1262,6 +1264,7 @@ interface NetworkContext {
// Note that this queued report will never be delivered if no reporting // Note that this queued report will never be delivered if no reporting
// endpoint matching is registered for with the provided // endpoint matching is registered for with the provided
// `network_anonymization_key`. // `network_anonymization_key`.
@@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
#include "base/containers/contains.h" #include "base/containers/contains.h"
#include "base/debug/dump_without_crashing.h" #include "base/debug/dump_without_crashing.h"
#include "base/feature_list.h" #include "base/feature_list.h"
@@ -1344,6 +1345,7 @@ void ContentSecurityPolicy::ReportViolation( @@ -1355,6 +1356,7 @@ void ContentSecurityPolicy::ReportViolation(
ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) { ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) {
return; return;
} }
@@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
PostViolationReport(violation_data, context_frame, report_endpoints, PostViolationReport(violation_data, context_frame, report_endpoints,
use_reporting_api); use_reporting_api);
@@ -1351,6 +1353,7 @@ void ContentSecurityPolicy::ReportViolation( @@ -1362,6 +1364,7 @@ void ContentSecurityPolicy::ReportViolation(
// `context_frame` (i.e. we're not processing 'frame-ancestors'). // `context_frame` (i.e. we're not processing 'frame-ancestors').
if (delegate_ && !context_frame) if (delegate_ && !context_frame)
delegate_->DispatchViolationEvent(*violation_data, element); delegate_->DispatchViolationEvent(*violation_data, element);
@@ -405,7 +405,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -48,6 +48,7 @@ @@ -49,6 +49,7 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/message_pipe.h" #include "mojo/public/cpp/system/message_pipe.h"
@@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
#include "services/network/public/cpp/features.h" #include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h"
#include "services/network/public/mojom/source_location.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h"
@@ -2836,9 +2837,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { @@ -2871,9 +2872,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
} }
@@ -428,15 +428,15 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -37,6 +37,7 @@ @@ -38,6 +38,7 @@
#include "base/time/time.h"
#include "base/unguessable_token.h" #include "base/unguessable_token.h"
#include "build/build_config.h" #include "build/build_config.h"
+#include "net/net_buildflags.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "net/net_buildflags.h"
#include "net/storage_access_api/status.h" #include "net/storage_access_api/status.h"
@@ -671,7 +672,9 @@ class CORE_EXPORT LocalFrame final #include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
@@ -670,7 +671,9 @@ class CORE_EXPORT LocalFrame final
return client_hints_preferences_; return client_hints_preferences_;
} }
@@ -457,17 +457,17 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/task_type.h"
@@ -59,7 +60,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; @@ -55,7 +56,9 @@ bool ShouldReportBeVisibleToObservers(Report* report) {
ReportingContext::ReportingContext(ExecutionContext& context) ReportingContext::ReportingContext(ExecutionContext& context)
: Supplement<ExecutionContext>(context), : execution_context_(context),
execution_context_(context),
+#if BUILDFLAG(ENABLE_REPORTING) +#if BUILDFLAG(ENABLE_REPORTING)
reporting_service_(&context), reporting_service_(&context),
+#endif +#endif
receivers_(this, &context) {} receivers_(this, &context) {}
// static // static
@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const { @@ -121,7 +124,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
visitor->Trace(observers_); visitor->Trace(observers_);
visitor->Trace(report_buffer_); visitor->Trace(report_buffer_);
visitor->Trace(execution_context_); visitor->Trace(execution_context_);
@@ -475,9 +475,9 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
visitor->Trace(reporting_service_); visitor->Trace(reporting_service_);
+#endif +#endif
visitor->Trace(receivers_); visitor->Trace(receivers_);
Supplement<ExecutionContext>::Trace(visitor);
} }
@@ -149,6 +154,7 @@ void ReportingContext::CountReport(Report* report) {
@@ -143,6 +148,7 @@ void ReportingContext::CountReport(Report* report) {
UseCounter::Count(execution_context_, feature); UseCounter::Count(execution_context_, feature);
} }
@@ -485,7 +485,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
const HeapMojoRemote<mojom::blink::ReportingServiceProxy>& const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
ReportingContext::GetReportingService() const { ReportingContext::GetReportingService() const {
if (!reporting_service_.is_bound()) { if (!reporting_service_.is_bound()) {
@@ -158,6 +164,7 @@ ReportingContext::GetReportingService() const { @@ -152,6 +158,7 @@ ReportingContext::GetReportingService() const {
} }
return reporting_service_; return reporting_service_;
} }
@@ -493,7 +493,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
void ReportingContext::NotifyInternal(Report* report) { void ReportingContext::NotifyInternal(Report* report) {
if (!ShouldReportBeVisibleToObservers(report)) { if (!ShouldReportBeVisibleToObservers(report)) {
@@ -184,6 +191,7 @@ void ReportingContext::NotifyInternal(Report* report) { @@ -178,6 +185,7 @@ void ReportingContext::NotifyInternal(Report* report) {
void ReportingContext::SendToReportingAPI(Report* report, void ReportingContext::SendToReportingAPI(Report* report,
const String& endpoint) const { const String& endpoint) const {
@@ -501,7 +501,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
const String& type = report->type(); const String& type = report->type();
if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash || if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash ||
type == ReportType::kDeprecation || type == ReportType::kDeprecation ||
@@ -263,6 +271,7 @@ void ReportingContext::SendToReportingAPI(Report* report, @@ -262,6 +270,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
url, endpoint, body->featureId(), body->disposition(), body->message(), url, endpoint, body->featureId(), body->disposition(), body->message(),
body->sourceFile(), line_number, column_number); body->sourceFile(), line_number, column_number);
} }
@@ -520,7 +520,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
#include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h" #include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h"
#include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h" #include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/core_export.h"
@@ -56,10 +57,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>, @@ -52,10 +53,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
private: private:
// Counts the use of a report type via UseCounter. // Counts the use of a report type via UseCounter.
void CountReport(Report*); void CountReport(Report*);
@@ -533,7 +533,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
void NotifyInternal(Report* report); void NotifyInternal(Report* report);
// Send |report| via the Reporting API to |endpoint|. // Send |report| via the Reporting API to |endpoint|.
void SendToReportingAPI(Report* report, const String& endpoint) const; void SendToReportingAPI(Report* report, const String& endpoint) const;
@@ -71,8 +72,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>, @@ -67,8 +68,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
// This is declared mutable so that the service endpoint can be cached by // This is declared mutable so that the service endpoint can be cached by
// const methods. // const methods.
@@ -547,12 +547,13 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p
diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc
--- a/third_party/blink/renderer/core/frame/reporting_observer.cc --- a/third_party/blink/renderer/core/frame/reporting_observer.cc
+++ b/third_party/blink/renderer/core/frame/reporting_observer.cc +++ b/third_party/blink/renderer/core/frame/reporting_observer.cc
@@ -62,8 +62,7 @@ void ReportingObserver::QueueReport(Report* report) { @@ -61,9 +61,7 @@ void ReportingObserver::QueueReport(Report* report) {
} }
bool ReportingObserver::ObservedType(const String& type) { bool ReportingObserver::ObservedType(const String& type) {
- return !options_->hasTypesNonNull() || options_->typesNonNull().empty() || - return !options_->hasTypes() || !options_->types() ||
- options_->typesNonNull().Find(type) != kNotFound; - options_->types()->empty() ||
- options_->types()->Find(type) != kNotFound;
+ return false; + return false;
} }
@@ -17,21 +17,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../core/browser/supervised_user_pref_store.cc | 1 + .../core/browser/supervised_user_pref_store.cc | 1 +
.../core/browser/supervised_user_preferences.cc | 6 +++++- .../core/browser/supervised_user_preferences.cc | 6 +++++-
.../core/browser/supervised_user_service.cc | 1 + .../core/browser/supervised_user_service.cc | 1 +
components/supervised_user/core/common/features.cc | 2 +- components/supervised_user/core/common/features.cc | 3 ++-
extensions/browser/api/management/management_api.cc | 1 + extensions/browser/api/management/management_api.cc | 1 +
15 files changed, 13 insertions(+), 27 deletions(-) 15 files changed, 14 insertions(+), 27 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -819,7 +819,6 @@ if (_is_default_toolchain) { @@ -815,7 +815,6 @@ if (_is_default_toolchain) {
"//components/offline_pages/core:offline_page_model_enums_java", "//components/offline_pages/core:offline_page_model_enums_java",
"//components/sharing_message:sharing_dialog_type_generated_enum", "//components/sharing_message:sharing_dialog_type_generated_enum",
"//components/sharing_message:sharing_send_message_result_generated_enum", "//components/sharing_message:sharing_send_message_result_generated_enum",
- "//components/supervised_user/core/browser:supervised_user_utils_enum_javagen", - "//components/supervised_user/core/browser:supervised_user_utils_enum_javagen",
"//components/touch_to_search/core/browser:quick_action_category_enum_javagen",
] ]
# From java_sources.gni.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java
@@ -65,7 +65,7 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
@@ -319,7 +319,7 @@ void PrepareFactory( @@ -332,7 +332,7 @@ void PrepareFactory(
policy::BrowserPolicyConnector* policy_connector) { policy::BrowserPolicyConnector* policy_connector) {
factory->SetManagedPolicies(policy_service, policy_connector); factory->SetManagedPolicies(policy_service, policy_connector);
factory->SetRecommendedPolicies(policy_service, policy_connector); factory->SetRecommendedPolicies(policy_service, policy_connector);
@@ -77,7 +77,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
--- a/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc
+++ b/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc
@@ -471,7 +471,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { @@ -476,7 +476,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const {
} }
std::string ProfileAttributesEntry::GetSupervisedUserId() const { std::string ProfileAttributesEntry::GetSupervisedUserId() const {
@@ -89,7 +89,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc
@@ -684,10 +684,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { @@ -679,10 +679,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_);
pref_change_registrar_.Init(prefs); pref_change_registrar_.Init(prefs);
@@ -100,7 +100,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
// Changes in the profile avatar. // Changes in the profile avatar.
pref_change_registrar_.Add( pref_change_registrar_.Add(
@@ -1624,6 +1620,7 @@ GURL ProfileImpl::GetHomePage() { @@ -1603,6 +1599,7 @@ GURL ProfileImpl::GetHomePage() {
} }
void ProfileImpl::UpdateSupervisedUserIdInStorage() { void ProfileImpl::UpdateSupervisedUserIdInStorage() {
@@ -111,7 +111,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc
@@ -1192,10 +1192,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { @@ -1262,10 +1262,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
} }
@@ -122,7 +122,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
} }
void ProfileManager::RegisterTestingProfile(std::unique_ptr<Profile> profile, void ProfileManager::RegisterTestingProfile(std::unique_ptr<Profile> profile,
@@ -1962,9 +1958,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { @@ -2044,9 +2040,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index = init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -135,7 +135,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
--- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc --- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc
+++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc
@@ -99,6 +99,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) { @@ -98,6 +98,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) {
} }
bool AreExtensionsPermissionsEnabled(Profile* profile) { bool AreExtensionsPermissionsEnabled(Profile* profile) {
@@ -160,7 +160,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc --- a/chrome/browser/ui/webui/management/management_ui_handler.cc
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
@@ -617,10 +617,6 @@ bool ManagementUIHandler::managed() const { @@ -623,10 +623,6 @@ bool ManagementUIHandler::managed() const {
void ManagementUIHandler::RegisterPrefChange( void ManagementUIHandler::RegisterPrefChange(
PrefChangeRegistrar& pref_registrar) { PrefChangeRegistrar& pref_registrar) {
@@ -174,7 +174,7 @@ diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrom
diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc
--- a/components/supervised_user/core/browser/supervised_user_pref_store.cc --- a/components/supervised_user/core/browser/supervised_user_pref_store.cc
+++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc +++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc
@@ -175,6 +175,7 @@ void SupervisedUserPrefStore::OnNewContentFiltersStateAvailable( @@ -172,6 +172,7 @@ void SupervisedUserPrefStore::OnNewContentFiltersStateAvailable(
void SupervisedUserPrefStore::OnNewSettingsAvailable( void SupervisedUserPrefStore::OnNewSettingsAvailable(
const base::Value::Dict& settings) { const base::Value::Dict& settings) {
@@ -185,7 +185,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
@@ -164,6 +164,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { @@ -160,6 +160,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
} }
void EnableParentalControls(PrefService& pref_service) { void EnableParentalControls(PrefService& pref_service) {
@@ -196,7 +196,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
pref_service.SetString(prefs::kSupervisedUserId, pref_service.SetString(prefs::kSupervisedUserId,
supervised_user::kChildAccountSUID); supervised_user::kChildAccountSUID);
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
@@ -197,7 +201,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { @@ -187,7 +191,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) {
} }
bool IsSubjectToParentalControls(const PrefService& pref_service) { bool IsSubjectToParentalControls(const PrefService& pref_service) {
@@ -208,7 +208,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc
--- a/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc
+++ b/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc
@@ -249,6 +249,7 @@ SupervisedUserService::SupervisedUserService( @@ -244,6 +244,7 @@ SupervisedUserService::SupervisedUserService(
} }
void SupervisedUserService::SetSettingsServiceActive(bool active) { void SupervisedUserService::SetSettingsServiceActive(bool active) {
@@ -219,7 +219,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
--- a/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc
+++ b/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc
@@ -33,7 +33,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, @@ -30,7 +30,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals,
#else #else
base::FEATURE_DISABLED_BY_DEFAULT); base::FEATURE_DISABLED_BY_DEFAULT);
#endif #endif
@@ -227,7 +227,15 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup
#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
BUILDFLAG(IS_WIN) BUILDFLAG(IS_WIN)
const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000;
@@ -170,4 +169,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { @@ -116,6 +115,7 @@ const base::FeatureParam<std::string>
namespace {
bool PlatformSupportsLocalSupervision() {
+ if ((true)) return false;
int32_t major, minor, bugfix;
base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
bool supported_by_os = (major == 16 && minor >= 1) || major > 16;
@@ -151,4 +151,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() {
#endif #endif
@@ -236,7 +244,7 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup
diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc
--- a/extensions/browser/api/management/management_api.cc --- a/extensions/browser/api/management/management_api.cc
+++ b/extensions/browser/api/management/management_api.cc +++ b/extensions/browser/api/management/management_api.cc
@@ -312,6 +312,7 @@ void AddExtensionInfo(const Extension* source_extension, @@ -324,6 +324,7 @@ void AddExtensionInfo(const Extension* source_extension,
} }
bool PlatformSupportsApprovalFlowForExtensions() { bool PlatformSupportsApprovalFlowForExtensions() {
@@ -4,14 +4,26 @@ Subject: Allow playing audio in background
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../renderer/render_frame_media_playback_options.cc | 1 +
.../renderer/platform/media/web_media_player_impl.cc | 11 ++++++++++- .../renderer/platform/media/web_media_player_impl.cc | 11 ++++++++++-
.../renderer/platform/media/web_media_player_impl.h | 3 +++ .../renderer/platform/media/web_media_player_impl.h | 3 +++
2 files changed, 13 insertions(+), 1 deletion(-) 3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/content/public/renderer/render_frame_media_playback_options.cc b/content/public/renderer/render_frame_media_playback_options.cc
--- a/content/public/renderer/render_frame_media_playback_options.cc
+++ b/content/public/renderer/render_frame_media_playback_options.cc
@@ -14,6 +14,7 @@
namespace content {
bool IsBackgroundMediaSuspendEnabled() {
+ if ((true)) return false;
#if BUILDFLAG(IS_ANDROID)
// For Android devices, do not suspend background media for devices with large
// displays. Exception is for Webview.
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
@@ -1330,6 +1330,12 @@ bool WebMediaPlayerImpl::HasAudio() const { @@ -1287,6 +1287,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio; return pipeline_metadata_.has_audio;
} }
@@ -24,9 +36,9 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
void WebMediaPlayerImpl::EnabledAudioTracksChanged( void WebMediaPlayerImpl::EnabledAudioTracksChanged(
std::optional<WebMediaPlayer::TrackId> enabled_track_id) { std::optional<WebMediaPlayer::TrackId> enabled_track_id) {
DCHECK(main_task_runner_->BelongsToCurrentThread()); DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -3683,7 +3689,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { @@ -3654,7 +3660,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
: HasAudio();
const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured();
// Audio only stream is allowed to play when in background. // Audio only stream is allowed to play when in background.
- if (!HasVideo() && preserve_audio) - if (!HasVideo() && preserve_audio)
+ //pipeline_metadata_.has_video is true for MediaPlayerRenderer, + //pipeline_metadata_.has_video is true for MediaPlayerRenderer,
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resources/inspect/inspect.js diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resources/inspect/inspect.js
--- a/chrome/browser/resources/inspect/inspect.js --- a/chrome/browser/resources/inspect/inspect.js
+++ b/chrome/browser/resources/inspect/inspect.js +++ b/chrome/browser/resources/inspect/inspect.js
@@ -45,6 +45,7 @@ if ('browser-inspector' in queryParamsObject) { @@ -46,6 +46,7 @@ if ('browser-inspector' in queryParamsObject) {
})(); })();
function isVersionNewerThanHost(version) { function isVersionNewerThanHost(version) {
@@ -20,7 +20,7 @@ diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resour
if (!HOST_CHROME_VERSION) { if (!HOST_CHROME_VERSION) {
return false; return false;
} }
@@ -590,7 +591,7 @@ function formatValue(data, property) { @@ -597,7 +598,7 @@ function formatValue(data, property) {
function addFavicon(row, data) { function addFavicon(row, data) {
const favicon = document.createElement('img'); const favicon = document.createElement('img');
if (data['faviconUrl']) { if (data['faviconUrl']) {
@@ -10,15 +10,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -24,6 +24,7 @@ import org.chromium.base.metrics.RecordUserAction; @@ -23,6 +23,7 @@ import org.chromium.base.PackageManagerUtils;
import org.chromium.base.supplier.Supplier; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.Nullable;
+import org.chromium.cc.input.BrowserControlsState; +import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl;
@@ -43,6 +44,7 @@ import org.chromium.chrome.browser.preferences.Pref; @@ -45,6 +46,7 @@ import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory;
import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
@@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -303,6 +305,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @@ -348,6 +350,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Nullable Referrer referrer, @Nullable Referrer referrer,
boolean navigateToTab, boolean navigateToTab,
@Nullable AdditionalNavigationParams additionalNavigationParams) { @Nullable AdditionalNavigationParams additionalNavigationParams) {
@@ -34,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("MobileNewTabOpened");
RecordUserAction.record("LinkOpenedInNewTab"); RecordUserAction.record("LinkOpenedInNewTab");
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
@@ -323,6 +326,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @@ -368,6 +371,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
* @param url The URL to open. * @param url The URL to open.
*/ */
public void onOpenInNewTabInGroup(GURL url, @Nullable Referrer referrer) { public void onOpenInNewTabInGroup(GURL url, @Nullable Referrer referrer) {
@@ -7,22 +7,22 @@ Ignore any partner-provided home page.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ---- .../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ----
.../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 1 + .../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 2 +-
.../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 + .../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 +
.../partnercustomizations/PartnerBrowserCustomizations.java | 2 +- .../partnercustomizations/PartnerBrowserCustomizations.java | 2 +-
.../org/chromium/components/search_engines/TemplateUrl.java | 1 + .../org/chromium/components/search_engines/TemplateUrl.java | 1 +
.../search_engines/android/template_url_service_android.cc | 1 + .../search_engines/android/template_url_service_android.cc | 1 +
.../always-use-new-tab-page-for-default-home-page.inc | 1 + .../always-use-new-tab-page-for-default-home-page.inc | 1 +
7 files changed, 6 insertions(+), 5 deletions(-) 7 files changed, 6 insertions(+), 6 deletions(-)
create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -160,10 +160,6 @@ public class HomepageManager @@ -164,10 +164,6 @@ public class HomepageManager
* tab page if the homepage button is force enabled via flag. * tab page if the homepage button is force enabled via flag.
*/ */
public GURL getDefaultHomepageGurl() { public GURL getDefaultHomepageGurl(boolean isIncognito) {
- if (PartnerBrowserCustomizations.getInstance().isHomepageProviderAvailableAndEnabled()) { - if (PartnerBrowserCustomizations.getInstance().isHomepageProviderAvailableAndEnabled()) {
- return assumeNonNull(PartnerBrowserCustomizations.getInstance().getHomePageUrl()); - return assumeNonNull(PartnerBrowserCustomizations.getInstance().getHomePageUrl());
- } - }
@@ -33,14 +33,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java
@@ -60,6 +60,7 @@ public class DseNewTabUrlManager { @@ -59,7 +59,7 @@ public class DseNewTabUrlManager {
/** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */ /** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */
public static boolean isNewTabSearchEngineUrlAndroidEnabled() { public static boolean isNewTabSearchEngineUrlAndroidEnabled() {
+ if ((true)) return false; - return true;
return ChromeSharedPreferences.getInstance() + return false;
.readBoolean(ChromePreferenceKeys.IS_EEA_CHOICE_COUNTRY, false) }
|| (OmniboxFeatures.sOmniboxMobileParityUpdate.isEnabled()
/**
diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
--- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java --- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
+++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java +++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java
@@ -78,7 +79,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
--- a/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc
+++ b/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc
@@ -400,6 +400,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( @@ -404,6 +404,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
jimage_translate_source_language_param_key, jimage_translate_source_language_param_key,
const base::android::JavaParamRef<jstring>& const base::android::JavaParamRef<jstring>&
jimage_translate_target_language_param_key) { jimage_translate_target_language_param_key) {
File diff suppressed because it is too large Load Diff
@@ -18,15 +18,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
--- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
+++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java
@@ -40,6 +40,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro @@ -41,6 +41,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
private final Supplier<Boolean> mPersistentFullscreenMode; private final ObservableSupplier<Boolean> mPersistentFullscreenMode;
private long mCurrentShowingStartTime; private long mCurrentShowingStartTime;
+ private int temporaryToken; + private int temporaryToken;
/** /**
* Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by * Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by
@@ -65,7 +66,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro @@ -66,7 +67,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro
long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime; long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime;
if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return; if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return;
@@ -53,7 +53,7 @@ new file mode 100644
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -79,6 +79,12 @@ found in the LICENSE file. @@ -84,6 +84,12 @@ found in the LICENSE file.
android:key="disable_toolbar_swipeup" android:key="disable_toolbar_swipeup"
android:title="@string/disable_toolbar_swipe_up" /> android:title="@string/disable_toolbar_swipe_up" />
@@ -8,16 +8,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../common/ProductionSupportedFlagList.java | 3 + .../common/ProductionSupportedFlagList.java | 3 +
.../component_updater/registration.cc | 9 + .../component_updater/registration.cc | 9 +
build/config/freetype/freetype.gni | 2 +-
.../java/res/xml/developer_preferences.xml | 5 + .../java/res/xml/developer_preferences.xml | 5 +
chrome/browser/BUILD.gn | 7 + chrome/browser/BUILD.gn | 7 +
.../browser/component_updater/registration.cc | 10 + .../browser/component_updater/registration.cc | 10 +
...droid-fonts-fingerprinting-mitigation.grdp | 9 + ...droid-fonts-fingerprinting-mitigation.grdp | 9 +
chrome/browser/ui/prefs/prefs_tab_helper.cc | 9 +-
chrome/renderer/BUILD.gn | 4 + chrome/renderer/BUILD.gn | 4 +
.../installer_policies/BUILD.gn | 7 + .../installer_policies/BUILD.gn | 7 +
.../fonts_pack_component_installer.cc | 96 + .../fonts_pack_component_installer.cc | 96 +
.../fonts_pack_component_installer.h | 60 + .../fonts_pack_component_installer.h | 60 +
components/services/font/BUILD.gn | 10 + components/services/font/BUILD.gn | 10 +
components/services/font/font_service_app.cc | 44 + components/services/font/font_service_app.cc | 46 +
components/services/font/font_service_app.h | 1 + components/services/font/font_service_app.h | 1 +
.../services/font/public/cpp/font_loader.cc | 11 + .../services/font/public/cpp/font_loader.cc | 11 +
.../services/font/public/cpp/font_loader.h | 1 + .../services/font/public/cpp/font_loader.h | 1 +
@@ -29,20 +31,24 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
content/child/BUILD.gn | 7 + content/child/BUILD.gn | 7 +
content/renderer/BUILD.gn | 4 + content/renderer/BUILD.gn | 4 +
.../renderer/renderer_blink_platform_impl.cc | 55 +- .../renderer/renderer_blink_platform_impl.cc | 55 +-
...renderer_main_platform_delegate_android.cc | 2 +-
...ndroid-fonts-fingerprinting-mitigation.inc | 12 + ...ndroid-fonts-fingerprinting-mitigation.inc | 12 +
...ndroid-fonts-fingerprinting-mitigation.inc | 7 + ...ndroid-fonts-fingerprinting-mitigation.inc | 7 +
...ndroid-fonts-fingerprinting-mitigation.inc | 5 + ...ndroid-fonts-fingerprinting-mitigation.inc | 5 +
skia/BUILD.gn | 12 + skia/BUILD.gn | 12 +
skia/ext/font_utils.cc | 1 +
.../freetype/config/ftoption.h | 2 +-
.../include/ports/SkFontConfigInterface.h | 2 + .../include/ports/SkFontConfigInterface.h | 2 +
.../skia/include/ports/SkFontMgr_android.h | 42 +- .../skia/include/ports/SkFontMgr_android.h | 42 +-
.../skia/src/ports/SkFontConfigInterface.cpp | 4 + .../skia/src/ports/SkFontConfigInterface.cpp | 5 +
.../ports/SkFontConfigInterface_direct.cpp | 5 + .../ports/SkFontConfigInterface_direct.cpp | 5 +
.../src/ports/SkFontConfigInterface_direct.h | 1 + .../src/ports/SkFontConfigInterface_direct.h | 1 +
.../skia/src/ports/SkFontMgr_android.cpp | 279 ++- .../skia/src/ports/SkFontMgr_android.cpp | 282 ++-
.../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++ .../skia/src/ports/SkFontMgr_android_data.cpp | 1641 +++++++++++++++++
.../src/ports/SkFontMgr_android_parser.cpp | 49 +- .../skia/src/ports/SkFontMgr_android_ndk.cpp | 2 +-
.../src/ports/SkFontMgr_android_parser.cpp | 66 +-
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +- .../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
36 files changed, 2415 insertions(+), 76 deletions(-) 42 files changed, 2448 insertions(+), 85 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
@@ -54,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -1007,6 +1007,9 @@ public final class ProductionSupportedFlagList { @@ -933,6 +933,9 @@ public final class ProductionSupportedFlagList {
"Hides user preference on the system keyboard by setting the standard " "Hides user preference on the system keyboard by setting the standard "
+ "eng layout and removing the layout information from the " + "eng layout and removing the layout information from the "
+ "javascript keyboard events."), + "javascript keyboard events."),
@@ -67,9 +73,9 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/common/Produc
diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc
--- a/android_webview/nonembedded/component_updater/registration.cc --- a/android_webview/nonembedded/component_updater/registration.cc
+++ b/android_webview/nonembedded/component_updater/registration.cc +++ b/android_webview/nonembedded/component_updater/registration.cc
@@ -26,6 +26,9 @@ @@ -20,6 +20,9 @@
#include "components/component_updater/installer_policies/origin_trials_component_installer.h"
#include "components/update_client/update_client.h" #include "components/update_client/update_client.h"
#include "mojo/public/cpp/base/proto_wrapper.h"
+#include "third_party/blink/public/common/features.h" +#include "third_party/blink/public/common/features.h"
+#include "components/component_updater/installer_policies/fonts_pack_component_installer.h" +#include "components/component_updater/installer_policies/fonts_pack_component_installer.h"
@@ -77,7 +83,7 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
namespace android_webview { namespace android_webview {
void RegisterComponentsForUpdate( void RegisterComponentsForUpdate(
@@ -42,6 +45,12 @@ void RegisterComponentsForUpdate( @@ -36,6 +39,12 @@ void RegisterComponentsForUpdate(
std::vector<std::unique_ptr<component_updater::ComponentInstallerPolicy>> std::vector<std::unique_ptr<component_updater::ComponentInstallerPolicy>>
component_installer_list_cromite; component_installer_list_cromite;
@@ -90,6 +96,16 @@ diff --git a/android_webview/nonembedded/component_updater/registration.cc b/and
component_installer_list.push_back( component_installer_list.push_back(
std::make_unique< std::make_unique<
component_updater::OriginTrialsComponentInstallerPolicy>()); component_updater::OriginTrialsComponentInstallerPolicy>());
diff --git a/build/config/freetype/freetype.gni b/build/config/freetype/freetype.gni
--- a/build/config/freetype/freetype.gni
+++ b/build/config/freetype/freetype.gni
@@ -26,5 +26,5 @@ declare_args() {
# https://crbug.com/370816215
#
# Note: //build should not import directly from //pdf for layering reasons.
- enable_freetype = !is_android && !is_ios && (is_linux || !is_castos)
+ enable_freetype = is_android || (!is_ios && (is_linux || !is_castos))
}
diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml
--- a/chrome/android/java/res/xml/developer_preferences.xml --- a/chrome/android/java/res/xml/developer_preferences.xml
+++ b/chrome/android/java/res/xml/developer_preferences.xml +++ b/chrome/android/java/res/xml/developer_preferences.xml
@@ -106,8 +122,8 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -7951,6 +7951,13 @@ static_library("browser") { @@ -8012,6 +8012,13 @@ static_library("browser") {
} ]
} }
+ if (is_android) { + if (is_android) {
@@ -158,10 +174,36 @@ new file mode 100644
+ Replaces all system fonts with the same for all devices + Replaces all system fonts with the same for all devices
+ </message> + </message>
+</grit-part> +</grit-part>
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -64,8 +64,7 @@
#include <windows.h>
#endif
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
// If a font name in prefs default values starts with a comma, consider it's a
// comma-separated font list and resolve it to the first available font.
#define PREFS_FONT_LIST 1
@@ -442,9 +441,9 @@ void PrefsTabHelper::RegisterProfilePrefs(
value = gfx::FontList::FirstAvailableOrFirst(value);
}
#else // !PREFS_FONT_LIST
- DCHECK(!value.starts_with(','))
- << "This platform doesn't support default font lists. "
- << pref.pref_name << "=" << value;
+ // DCHECK(!value.starts_with(','))
+ // << "This platform doesn't support default font lists. "
+ // << pref.pref_name << "=" << value;
#endif // PREFS_FONT_LIST
registry->RegisterStringPref(pref.pref_name, value);
fonts_with_defaults.insert(pref.pref_name);
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn
@@ -258,6 +258,10 @@ static_library("renderer") { @@ -266,6 +266,10 @@ static_library("renderer") {
deps += [ "//components/strings" ] deps += [ "//components/strings" ]
} }
@@ -175,7 +217,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn
--- a/components/component_updater/installer_policies/BUILD.gn --- a/components/component_updater/installer_policies/BUILD.gn
+++ b/components/component_updater/installer_policies/BUILD.gn +++ b/components/component_updater/installer_policies/BUILD.gn
@@ -38,6 +38,13 @@ static_library("installer_policies_no_content_deps") { @@ -32,6 +32,13 @@ static_library("installer_policies_no_content_deps") {
"trust_token_key_commitments_component_installer_policy.h", "trust_token_key_commitments_component_installer_policy.h",
] ]
@@ -358,7 +400,7 @@ new file mode 100644
diff --git a/components/services/font/BUILD.gn b/components/services/font/BUILD.gn diff --git a/components/services/font/BUILD.gn b/components/services/font/BUILD.gn
--- a/components/services/font/BUILD.gn --- a/components/services/font/BUILD.gn
+++ b/components/services/font/BUILD.gn +++ b/components/services/font/BUILD.gn
@@ -24,6 +24,16 @@ source_set("lib") { @@ -23,6 +23,16 @@ source_set("lib") {
"//ui/gfx", "//ui/gfx",
] ]
@@ -378,7 +420,17 @@ diff --git a/components/services/font/BUILD.gn b/components/services/font/BUILD.
diff --git a/components/services/font/font_service_app.cc b/components/services/font/font_service_app.cc diff --git a/components/services/font/font_service_app.cc b/components/services/font/font_service_app.cc
--- a/components/services/font/font_service_app.cc --- a/components/services/font/font_service_app.cc
+++ b/components/services/font/font_service_app.cc +++ b/components/services/font/font_service_app.cc
@@ -20,6 +20,12 @@ @@ -4,7 +4,9 @@
#include "components/services/font/font_service_app.h"
+#if !BUILDFLAG(IS_ANDROID)
#include <fontconfig/fontconfig.h>
+#endif
#include <set>
#include <utility>
@@ -25,6 +27,12 @@
#include "ui/gfx/font_fallback_linux.h" #include "ui/gfx/font_fallback_linux.h"
#include "ui/gfx/font_render_params.h" #include "ui/gfx/font_render_params.h"
@@ -391,7 +443,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
#if BUILDFLAG(ENABLE_PDF) #if BUILDFLAG(ENABLE_PDF)
#include "components/services/font/pdf_fontconfig_matching.h" // nogncheck #include "components/services/font/pdf_fontconfig_matching.h" // nogncheck
#endif #endif
@@ -95,6 +101,7 @@ void FontServiceApp::BindReceiver( @@ -100,6 +108,7 @@ void FontServiceApp::BindReceiver(
void FontServiceApp::MatchFamilyName(const std::string& family_name, void FontServiceApp::MatchFamilyName(const std::string& family_name,
mojom::TypefaceStylePtr requested_style, mojom::TypefaceStylePtr requested_style,
MatchFamilyNameCallback callback) { MatchFamilyNameCallback callback) {
@@ -399,7 +451,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
TRACE_EVENT0("fonts", "FontServiceApp::MatchFamilyName"); TRACE_EVENT0("fonts", "FontServiceApp::MatchFamilyName");
SkFontConfigInterface::FontIdentity result_identity; SkFontConfigInterface::FontIdentity result_identity;
@@ -155,6 +162,7 @@ void FontServiceApp::MatchFamilyName(const std::string& family_name, @@ -160,6 +169,7 @@ void FontServiceApp::MatchFamilyName(const std::string& family_name,
std::move(callback).Run(std::move(identity), result_family_cppstring, std::move(callback).Run(std::move(identity), result_family_cppstring,
std::move(style)); std::move(style));
@@ -407,7 +459,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
} }
void FontServiceApp::OpenStream(uint32_t id_number, void FontServiceApp::OpenStream(uint32_t id_number,
@@ -169,12 +177,43 @@ void FontServiceApp::OpenStream(uint32_t id_number, @@ -174,12 +184,43 @@ void FontServiceApp::OpenStream(uint32_t id_number,
std::move(callback).Run(std::move(file)); std::move(callback).Run(std::move(file));
} }
@@ -451,7 +503,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
gfx::FallbackFontData fallback_font; gfx::FallbackFontData fallback_font;
if (gfx::GetFallbackFontForChar(character, locale, &fallback_font)) { if (gfx::GetFallbackFontForChar(character, locale, &fallback_font)) {
size_t index = FindOrAddPath(fallback_font.filepath); size_t index = FindOrAddPath(fallback_font.filepath);
@@ -189,6 +228,7 @@ void FontServiceApp::FallbackFontForCharacter( @@ -194,6 +235,7 @@ void FontServiceApp::FallbackFontForCharacter(
} else { } else {
std::move(callback).Run(nullptr, "", false, false); std::move(callback).Run(nullptr, "", false, false);
} }
@@ -459,7 +511,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
} }
void FontServiceApp::FontRenderStyleForStrike( void FontServiceApp::FontRenderStyleForStrike(
@@ -232,6 +272,9 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName( @@ -237,6 +279,9 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName(
TRACE_EVENT0("fonts", TRACE_EVENT0("fonts",
"FontServiceApp::MatchFontByPostscriptNameOrFullFontName"); "FontServiceApp::MatchFontByPostscriptNameOrFullFontName");
@@ -469,7 +521,7 @@ diff --git a/components/services/font/font_service_app.cc b/components/services/
std::optional<FontConfigLocalMatching::FontConfigMatchResult> match_result = std::optional<FontConfigLocalMatching::FontConfigMatchResult> match_result =
FontConfigLocalMatching::FindFontByPostscriptNameOrFullFontName(family); FontConfigLocalMatching::FindFontByPostscriptNameOrFullFontName(family);
if (match_result) { if (match_result) {
@@ -243,6 +286,7 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName( @@ -248,6 +293,7 @@ void FontServiceApp::MatchFontByPostscriptNameOrFullFontName(
return; return;
} }
std::move(callback).Run(nullptr); std::move(callback).Run(nullptr);
@@ -512,7 +564,7 @@ diff --git a/components/services/font/public/cpp/font_loader.cc b/components/ser
diff --git a/components/services/font/public/cpp/font_loader.h b/components/services/font/public/cpp/font_loader.h diff --git a/components/services/font/public/cpp/font_loader.h b/components/services/font/public/cpp/font_loader.h
--- a/components/services/font/public/cpp/font_loader.h --- a/components/services/font/public/cpp/font_loader.h
+++ b/components/services/font/public/cpp/font_loader.h +++ b/components/services/font/public/cpp/font_loader.h
@@ -54,6 +54,7 @@ class FontLoader : public SkFontConfigInterface, @@ -56,6 +56,7 @@ class FontLoader : public SkFontConfigInterface,
SkFontStyle* out_style) override; SkFontStyle* out_style) override;
SkStreamAsset* openStream(const FontIdentity& identity) override SkStreamAsset* openStream(const FontIdentity& identity) override
LOCKS_EXCLUDED(mapped_font_files_lock_); LOCKS_EXCLUDED(mapped_font_files_lock_);
@@ -523,7 +575,7 @@ diff --git a/components/services/font/public/cpp/font_loader.h b/components/serv
diff --git a/components/services/font/public/cpp/font_service_thread.cc b/components/services/font/public/cpp/font_service_thread.cc diff --git a/components/services/font/public/cpp/font_service_thread.cc b/components/services/font/public/cpp/font_service_thread.cc
--- a/components/services/font/public/cpp/font_service_thread.cc --- a/components/services/font/public/cpp/font_service_thread.cc
+++ b/components/services/font/public/cpp/font_service_thread.cc +++ b/components/services/font/public/cpp/font_service_thread.cc
@@ -247,6 +247,54 @@ void FontServiceThread::OpenStreamImpl(base::WaitableEvent* done_event, @@ -258,6 +258,54 @@ void FontServiceThread::OpenStreamImpl(base::WaitableEvent* done_event,
done_event, output_file)); done_event, output_file));
} }
@@ -581,7 +633,7 @@ diff --git a/components/services/font/public/cpp/font_service_thread.cc b/compon
diff --git a/components/services/font/public/cpp/font_service_thread.h b/components/services/font/public/cpp/font_service_thread.h diff --git a/components/services/font/public/cpp/font_service_thread.h b/components/services/font/public/cpp/font_service_thread.h
--- a/components/services/font/public/cpp/font_service_thread.h --- a/components/services/font/public/cpp/font_service_thread.h
+++ b/components/services/font/public/cpp/font_service_thread.h +++ b/components/services/font/public/cpp/font_service_thread.h
@@ -55,6 +55,8 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> { @@ -57,6 +57,8 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> {
SkFontStyle* out_style); SkFontStyle* out_style);
scoped_refptr<MappedFontFile> OpenStream( scoped_refptr<MappedFontFile> OpenStream(
const SkFontConfigInterface::FontIdentity& identity); const SkFontConfigInterface::FontIdentity& identity);
@@ -590,7 +642,7 @@ diff --git a/components/services/font/public/cpp/font_service_thread.h b/compone
bool FallbackFontForCharacter( bool FallbackFontForCharacter(
uint32_t character, uint32_t character,
@@ -118,6 +120,9 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> { @@ -121,6 +123,9 @@ class FontServiceThread : public base::RefCountedThreadSafe<FontServiceThread> {
void OpenStreamImpl(base::WaitableEvent* done_event, void OpenStreamImpl(base::WaitableEvent* done_event,
base::File* output_file, base::File* output_file,
const uint32_t id_number); const uint32_t id_number);
@@ -615,7 +667,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn --- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -2600,6 +2600,17 @@ source_set("browser") { @@ -2608,6 +2608,17 @@ source_set("browser") {
] ]
} }
@@ -633,8 +685,8 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
if (is_linux || is_chromeos) { if (is_linux || is_chromeos) {
sources -= sources -=
[ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ] [ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ]
@@ -2645,6 +2656,13 @@ source_set("browser") { @@ -2654,6 +2665,13 @@ source_set("browser") {
] deps += [ "//components/services/font_data:lib" ]
} }
+ if (is_android) { + if (is_android) {
@@ -662,7 +714,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
#include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck
#include "content/browser/font_service.h" // nogncheck #include "content/browser/font_service.h" // nogncheck
@@ -348,6 +353,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( @@ -351,6 +356,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver(
} }
#endif #endif
@@ -679,7 +731,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
--- a/content/child/BUILD.gn --- a/content/child/BUILD.gn
+++ b/content/child/BUILD.gn +++ b/content/child/BUILD.gn
@@ -136,6 +136,13 @@ target(link_target_type, "child") { @@ -135,6 +135,13 @@ target(link_target_type, "child") {
] ]
} }
@@ -696,7 +748,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
--- a/content/renderer/BUILD.gn --- a/content/renderer/BUILD.gn
+++ b/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -346,6 +346,10 @@ target(link_target_type, "renderer") { @@ -350,6 +350,10 @@ target(link_target_type, "renderer") {
deps += [ "//services/screen_ai/public/mojom" ] deps += [ "//services/screen_ai/public/mojom" ]
} }
@@ -710,7 +762,7 @@ diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
--- a/content/renderer/renderer_blink_platform_impl.cc --- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -137,6 +137,23 @@ @@ -142,6 +142,23 @@
#include "content/common/android/sync_compositor_statics.h" #include "content/common/android/sync_compositor_statics.h"
#endif #endif
@@ -734,7 +786,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
using blink::Platform; using blink::Platform;
using blink::WebAudioDevice; using blink::WebAudioDevice;
using blink::WebAudioLatencyHint; using blink::WebAudioLatencyHint;
@@ -180,6 +197,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { @@ -192,6 +209,37 @@ viz::command_buffer_metrics::ContextType ToVizContextType(
NOTREACHED(); NOTREACHED();
} }
@@ -772,7 +824,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
} // namespace } // namespace
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -193,18 +241,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( @@ -205,18 +253,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl(
is_locked_to_site_(false), is_locked_to_site_(false),
main_thread_scheduler_(main_thread_scheduler), main_thread_scheduler_(main_thread_scheduler),
next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) { next_frame_sink_id_(uint32_t{std::numeric_limits<int32_t>::max()} + 1) {
@@ -795,7 +847,19 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer
+#endif +#endif
#endif #endif
#if BUILDFLAG(IS_WIN) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
diff --git a/content/renderer/renderer_main_platform_delegate_android.cc b/content/renderer/renderer_main_platform_delegate_android.cc
--- a/content/renderer/renderer_main_platform_delegate_android.cc
+++ b/content/renderer/renderer_main_platform_delegate_android.cc
@@ -35,7 +35,7 @@ void RendererMainPlatformDelegate::PlatformInitialize() {
// Android 14+ user devices with updated system fonts will call statx and
// possibly other system calls that are not allowed in the sandbox.
// See https://crbug.com/40618213 for details.
- [[maybe_unused]] auto mgr = skia::DefaultFontMgr();
+ // [[maybe_unused]] auto mgr = skia::DefaultFontMgr();
}
void RendererMainPlatformDelegate::PlatformUninitialize() {
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc b/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc diff --git a/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc b/cromite_flags/chrome/browser/about_flags_cc/Android-fonts-fingerprinting-mitigation.inc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@@ -838,7 +902,7 @@ new file mode 100644
diff --git a/skia/BUILD.gn b/skia/BUILD.gn diff --git a/skia/BUILD.gn b/skia/BUILD.gn
--- a/skia/BUILD.gn --- a/skia/BUILD.gn
+++ b/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -463,6 +463,18 @@ component("skia") { @@ -449,6 +449,18 @@ component("skia") {
sources += skia_ports_fci_sources sources += skia_ports_fci_sources
} }
@@ -857,6 +921,29 @@ diff --git a/skia/BUILD.gn b/skia/BUILD.gn
if (is_linux || is_chromeos || is_android) { if (is_linux || is_chromeos || is_android) {
# Retain the files for the SkFontMgr_Android on linux to emulate android # Retain the files for the SkFontMgr_Android on linux to emulate android
# fonts. See content/zygote/zygote_main_linux.cc # fonts. See content/zygote/zygote_main_linux.cc
diff --git a/skia/ext/font_utils.cc b/skia/ext/font_utils.cc
--- a/skia/ext/font_utils.cc
+++ b/skia/ext/font_utils.cc
@@ -59,6 +59,7 @@ SkFontMgr* g_fontmgr_override = nullptr;
#if BUILDFLAG(IS_ANDROID)
// https://crbug.com/461659286 Failure to create any font causes crash.
BASE_FEATURE(kUseAndroidNDKFontAPI, base::FEATURE_DISABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kUseAndroidNDKFontAPI);
#endif
} // namespace
diff --git a/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h b/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
--- a/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
+++ b/third_party/freetype/include/freetype-custom/freetype/config/ftoption.h
@@ -607,7 +607,7 @@ FT_BEGIN_HEADER
* module (namely TrueType~& OpenType).
*/
/* Not needed since PDFs do not support any of the color font formats. */
-/* #define TT_CONFIG_OPTION_COLOR_LAYERS */
+#define TT_CONFIG_OPTION_COLOR_LAYERS
/**************************************************************************
diff --git a/third_party/skia/include/ports/SkFontConfigInterface.h b/third_party/skia/include/ports/SkFontConfigInterface.h diff --git a/third_party/skia/include/ports/SkFontConfigInterface.h b/third_party/skia/include/ports/SkFontConfigInterface.h
--- a/third_party/skia/include/ports/SkFontConfigInterface.h --- a/third_party/skia/include/ports/SkFontConfigInterface.h
+++ b/third_party/skia/include/ports/SkFontConfigInterface.h +++ b/third_party/skia/include/ports/SkFontConfigInterface.h
@@ -933,11 +1020,12 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
diff --git a/third_party/skia/src/ports/SkFontConfigInterface.cpp b/third_party/skia/src/ports/SkFontConfigInterface.cpp diff --git a/third_party/skia/src/ports/SkFontConfigInterface.cpp b/third_party/skia/src/ports/SkFontConfigInterface.cpp
--- a/third_party/skia/src/ports/SkFontConfigInterface.cpp --- a/third_party/skia/src/ports/SkFontConfigInterface.cpp
+++ b/third_party/skia/src/ports/SkFontConfigInterface.cpp +++ b/third_party/skia/src/ports/SkFontConfigInterface.cpp
@@ -22,7 +22,11 @@ sk_sp<SkFontConfigInterface> SkFontConfigInterface::RefGlobal() { @@ -22,7 +22,12 @@ sk_sp<SkFontConfigInterface> SkFontConfigInterface::RefGlobal() {
if (gFontConfigInterface) { if (gFontConfigInterface) {
return sk_ref_sp(gFontConfigInterface); return sk_ref_sp(gFontConfigInterface);
} }
+#if defined(CROMITE_IS_ANDROID) +#if defined(CROMITE_IS_ANDROID)
+ SkASSERT(false);
+ return nullptr; + return nullptr;
+#else +#else
return sk_ref_sp(SkFontConfigInterface::GetSingletonDirectInterface()); return sk_ref_sp(SkFontConfigInterface::GetSingletonDirectInterface());
@@ -987,10 +1075,12 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
#include <algorithm> #include <algorithm>
#include <limits> #include <limits>
@@ -36,6 +38,91 @@ using namespace skia_private; @@ -37,7 +39,95 @@ class SkData;
class SkData;
namespace { namespace {
-[[maybe_unused]] static inline const constexpr bool kSkFontMgrVerbose = false;
+static inline const constexpr bool kSkFontMgrVerbose = true;
+ +
+#include "SkFontMgr_android_data.cpp" +#include "SkFontMgr_android_data.cpp"
+ +
@@ -1038,18 +1128,22 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ desc->setFactoryId(SkTypeface_FreeType::FactoryId); + desc->setFactoryId(SkTypeface_FreeType::FactoryId);
+ *serialize = false; + *serialize = false;
+ } + }
+
+ std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override { + std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
+ *ttcIndex = fIndex; + *ttcIndex = fIndex;
+ return this->makeStream(); + return this->makeStream();
+ } + }
+
+ std::unique_ptr<SkFontData> onMakeFontData() const override { + std::unique_ptr<SkFontData> onMakeFontData() const override {
+ return std::make_unique<SkFontData>( + return std::make_unique<SkFontData>(
+ this->makeStream(), fIndex, 0, fAxes.begin(), fAxes.size(), nullptr, 0); + this->makeStream(), fIndex, 0, fAxes.begin(), fAxes.size(), nullptr, 0);
+ } + }
+
+ sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override { + sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
+ SkFontStyle style = this->fontStyle(); + SkFontStyle style = this->fontStyle();
+ std::unique_ptr<SkFontData> data = this->cloneFontData(args, &style); + std::unique_ptr<SkFontData> data = this->cloneFontData(args, &style);
+ if (!data) { + if (!data) {
+ SkASSERT(false);
+ return nullptr; + return nullptr;
+ } + }
+ return sk_make_sp<SkTypeface_AndroidSystemCustom>( + return sk_make_sp<SkTypeface_AndroidSystemCustom>(
@@ -1075,11 +1169,10 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ +
+ using INHERITED = SkTypeface_FreeType; + using INHERITED = SkTypeface_FreeType;
+}; +};
+
class SkTypeface_AndroidSystem : public SkTypeface_proxy { class SkTypeface_AndroidSystem : public SkTypeface_proxy {
public: public:
static sk_sp<SkTypeface_AndroidSystem> Make(sk_sp<SkTypeface> realTypeface, @@ -112,7 +202,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
@@ -109,7 +196,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
class SkFontStyleSet_Android : public SkFontStyleSet { class SkFontStyleSet_Android : public SkFontStyleSet {
public: public:
explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner, explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner,
@@ -1089,7 +1182,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
const SkString* cannonicalFamilyName = nullptr; const SkString* cannonicalFamilyName = nullptr;
if (!family.fNames.empty()) { if (!family.fNames.empty()) {
cannonicalFamilyName = &family.fNames[0]; cannonicalFamilyName = &family.fNames[0];
@@ -118,38 +206,60 @@ public: @@ -121,38 +212,60 @@ public:
// TODO? make this lazy // TODO? make this lazy
for (int i = 0; i < family.fFonts.size(); ++i) { for (int i = 0; i < family.fFonts.size(); ++i) {
@@ -1138,7 +1231,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ use_custom = true; + use_custom = true;
+ if (!GetFontData(fontFile.fFileName, + if (!GetFontData(fontFile.fFileName,
+ &familyName, &fontStyle, &isFixedWidth, &axisDefinitions)) { + &familyName, &fontStyle, &isFixedWidth, &axisDefinitions)) {
+ stream = custom->getPlatformFile(pathName.c_str()); + stream = custom->getPlatformFile(fontFile.fFileName.c_str());
+ } + }
+ pathName = fontFile.fFileName; + pathName = fontFile.fFileName;
} }
@@ -1173,7 +1266,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
} }
uint32_t variant = family.fVariant; uint32_t variant = family.fVariant;
@@ -160,13 +270,25 @@ public: @@ -163,13 +276,25 @@ public:
// The first specified family name overrides the family name found in the font. // The first specified family name overrides the family name found in the font.
// TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return // TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return
// all of the specified family names in addition to the names found in the font. // all of the specified family names in addition to the names found in the font.
@@ -1205,7 +1298,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
int weight = fontFile.fWeight != 0 ? fontFile.fWeight : fontStyle.weight(); int weight = fontFile.fWeight != 0 ? fontFile.fWeight : fontStyle.weight();
SkFontStyle::Slant slant = fontStyle.slant(); SkFontStyle::Slant slant = fontStyle.slant();
switch (fontFile.fStyle) { switch (fontFile.fStyle) {
@@ -177,6 +299,19 @@ public: @@ -180,6 +305,19 @@ public:
} }
fontStyle = SkFontStyle(weight, fontStyle.width(), slant); fontStyle = SkFontStyle(weight, fontStyle.width(), slant);
@@ -1225,7 +1318,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
fStyles.push_back( fStyles.push_back(
SkTypeface_AndroidSystem::Make(proxy, SkTypeface_AndroidSystem::Make(proxy,
fontStyle, proxy->isFixedPitch(), fontStyle, proxy->isFixedPitch(),
@@ -205,15 +340,18 @@ public: @@ -208,15 +346,18 @@ public:
return fStyles[index]; return fStyles[index];
} }
@@ -1247,7 +1340,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
SkString fFallbackFor; SkString fFallbackFor;
friend struct NameToFamily; friend struct NameToFamily;
@@ -234,24 +372,26 @@ struct NameToFamily { @@ -237,24 +378,26 @@ struct NameToFamily {
class SkFontMgr_Android : public SkFontMgr { class SkFontMgr_Android : public SkFontMgr {
public: public:
@@ -1257,7 +1350,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
: fScanner(std::move(scanner)) { : fScanner(std::move(scanner)) {
+ custom_ = std::move(custom_in); + custom_ = std::move(custom_in);
+ auto* custom = custom_.get(); + auto* custom = custom_.get();
SkTDArray<FontFamily*> families; std::vector<std::unique_ptr<FontFamily>> families;
if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) { if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) {
SkString base(custom->fBasePath); SkString base(custom->fBasePath);
SkFontMgr_Android_Parser::GetCustomFontFamilies( SkFontMgr_Android_Parser::GetCustomFontFamilies(
@@ -1278,22 +1371,24 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
} }
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false); this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
this->findDefaultStyleSet(); this->findDefaultStyleSet();
@@ -309,33 +449,53 @@ protected: @@ -309,12 +452,12 @@ protected:
return sset->matchStyle(style);
} }
enum class NameType { Self, Fallback };
- static sk_sp<SkTypeface_AndroidSystem> find_family_style_character( - static sk_sp<SkTypeface_AndroidSystem> find_family_style_character(
+ sk_sp<SkTypeface> find_family_style_character( + sk_sp<SkTypeface> find_family_style_character(
const SkString& familyName, const SkString& familyName,
const TArray<NameToFamily, true>& fallbackNameToFamilyMap, const TArray<NameToFamily, true>& nameToFamilyMap,
NameType nameType,
const SkFontStyle& style, bool elegant, const SkFontStyle& style, bool elegant,
- const SkString& langTag, SkUnichar character) - const SkString& langTag, SkUnichar character)
+ const SkString& langTag, SkUnichar character) const + const SkString& langTag, SkUnichar character) const
{ {
for (int i = 0; i < fallbackNameToFamilyMap.size(); ++i) { for (auto&& nameToFamily : nameToFamilyMap) {
SkFontStyleSet_Android* family = fallbackNameToFamilyMap[i].styleSet; SkFontStyleSet_Android* family = nameToFamily.styleSet;
if (familyName != family->fFallbackFor) { @@ -325,22 +468,42 @@ protected:
continue; continue;
}
} }
- sk_sp<SkTypeface_AndroidSystem> face(family->matchAStyle(style)); - sk_sp<SkTypeface_AndroidSystem> face(family->matchAStyle(style));
+ if (custom_) { + if (custom_) {
@@ -1334,38 +1429,29 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
+ { + {
+ continue; + continue;
+ } + }
+
+ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) {
+ continue;
+ }
- if (face->unicharToGlyph(character) != 0) { - if (face->unicharToGlyph(character) != 0) {
- return face; - return face;
+ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) {
+ continue;
+ }
+
+ if (face->unicharToGlyph(character) != 0) { + if (face->unicharToGlyph(character) != 0) {
+ return face; + return face;
+ } + }
} }
} }
return nullptr; return nullptr;
@@ -358,7 +518,7 @@ protected: @@ -355,7 +518,7 @@ protected:
for (int bcp47Index = bcp47Count; bcp47Index --> 0;) { // The variant 'default' means 'compact and elegant'.
SkLanguage lang(bcp47[bcp47Index]); // As a result, it is not possible to know the variant context from the font alone.
while (!lang.getTag().isEmpty()) { // TODO: add 'is_elegant' and 'is_compact' bits to 'style' request.
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface = - sk_sp<SkTypeface_AndroidSystem> matchingTypeface;
+ sk_sp<SkTypeface> matchingTypeface = + sk_sp<SkTypeface> matchingTypeface;
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap, SkString familyNameString(familyName);
style, SkToBool(elegant), for (const SkString& currentFamilyName : { familyNameString, SkString() }) {
lang.getTag(), character); // The first time match anything elegant, second time anything not elegant.
@@ -369,7 +529,7 @@ protected: @@ -435,6 +598,7 @@ protected:
lang = lang.getParent();
}
}
- sk_sp<SkTypeface_AndroidSystem> matchingTypeface =
+ sk_sp<SkTypeface> matchingTypeface =
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
style, SkToBool(elegant),
SkString(), character);
@@ -420,6 +580,7 @@ protected:
private: private:
std::unique_ptr<SkFontScanner> fScanner; std::unique_ptr<SkFontScanner> fScanner;
@@ -1373,7 +1459,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets; TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
sk_sp<SkFontStyleSet> fDefaultStyleSet; sk_sp<SkFontStyleSet> fDefaultStyleSet;
@@ -441,7 +602,7 @@ private: @@ -456,7 +620,7 @@ private:
} }
sk_sp<SkFontStyleSet_Android> newSet = sk_sp<SkFontStyleSet_Android> newSet =
@@ -1382,22 +1468,22 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
if (0 == newSet->count()) { if (0 == newSet->count()) {
return; return;
} }
@@ -486,7 +647,11 @@ static char const * const gSystemFontUseStrings[] = { @@ -502,7 +666,11 @@ static char const * const gSystemFontUseStrings[] = {
} // namespace } // namespace
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, std::unique_ptr<SkFontScanner> scanner) { -sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) { +sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) {
+ return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType()); + return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType());
+} +}
+ +
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom, std::unique_ptr<SkFontScanner> scanner) { +sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom,
std::unique_ptr<SkFontScanner> scanner) {
if (custom) { if (custom) {
SkASSERT(0 <= custom->fSystemFontUse); SkASSERT(0 <= custom->fSystemFontUse);
SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings)); @@ -515,5 +683,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
@@ -496,5 +661,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust custom->fFallbackFontsXml);
custom->fFontsXml, }
custom->fFallbackFontsXml);
} }
- return sk_make_sp<SkFontMgr_Android>(custom, std::move(scanner)); - return sk_make_sp<SkFontMgr_Android>(custom, std::move(scanner));
+ return sk_make_sp<SkFontMgr_Android>(std::move(custom), std::move(scanner)); + return sk_make_sp<SkFontMgr_Android>(std::move(custom), std::move(scanner));
@@ -1406,7 +1492,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_data.cpp b/third_party
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/third_party/skia/src/ports/SkFontMgr_android_data.cpp +++ b/third_party/skia/src/ports/SkFontMgr_android_data.cpp
@@ -0,0 +1,1640 @@ @@ -0,0 +1,1641 @@
+// AUTOGENERATED +// AUTOGENERATED
+// +//
+// SkString dumpAxis("axis|"); +// SkString dumpAxis("axis|");
@@ -2996,6 +3082,7 @@ new file mode 100644
+ return true; + return true;
+ } + }
+ else if (file.equals("RobotoStatic-Regular.ttf")) { + else if (file.equals("RobotoStatic-Regular.ttf")) {
+ // see https://android.googlesource.com/platform/frameworks/base/+/89abe560d722a6f4136b7a05d80f23b269413aad
+ familyName->set("RobotoStatic"); + familyName->set("RobotoStatic");
+ *style = SkFontStyle(400, 5, SkFontStyle::kUpright_Slant); + *style = SkFontStyle(400, 5, SkFontStyle::kUpright_Slant);
+ *isFixedPitch = false; + *isFixedPitch = false;
@@ -3047,13 +3134,25 @@ new file mode 100644
+ +
+ return false; + return false;
+} +}
diff --git a/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp b/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp
--- a/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp
+++ b/third_party/skia/src/ports/SkFontMgr_android_ndk.cpp
@@ -996,7 +996,7 @@ public:
}
std::vector<std::unique_ptr<FontFamily>> xmlFamilies;
- SkFontMgr_Android_Parser::GetSystemFontFamilies(xmlFamilies);
+ SkFontMgr_Android_Parser::GetSystemFontFamilies(xmlFamilies, /*custom*/ nullptr);
skia_private::THashMap<SkString, std::unique_ptr<SkStreamAsset>> streamForPath;
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp --- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp +++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp
@@ -652,14 +652,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = { @@ -654,14 +654,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = {
* families array. Returns the version of the file, negative if the file does not exist.
*/ */
static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& families, static int parse_config_file(const char* filename,
std::vector<std::unique_ptr<FontFamily>>& families,
- const SkString& basePath, bool isFallback) - const SkString& basePath, bool isFallback)
+ const SkString& basePath, bool isFallback, + const SkString& basePath, bool isFallback,
+ const SkFontMgr_Android_CustomFonts* custom = nullptr) + const SkFontMgr_Android_CustomFonts* custom = nullptr)
@@ -3084,7 +3183,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
return -1; return -1;
} }
@@ -691,8 +704,8 @@ static int parse_config_file(const char* filename, SkTDArray<FontFamily*>& famil @@ -693,8 +706,8 @@ static int parse_config_file(const char* filename,
SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n"); SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n");
return -1; return -1;
} }
@@ -3095,57 +3194,83 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
XML_Status status = XML_ParseBuffer(parser, len, done); XML_Status status = XML_ParseBuffer(parser, len, done);
if (XML_STATUS_ERROR == status) { if (XML_STATUS_ERROR == status) {
XML_Error error = XML_GetErrorCode(parser); XML_Error error = XML_GetErrorCode(parser);
@@ -765,8 +778,10 @@ static void append_fallback_font_families_for_locale(SkTDArray<FontFamily*>& fal @@ -706,6 +719,23 @@ static int parse_config_file(const char* filename,
return -1;
}
}
+ if (custom) {
+ // remove NotoColorEmojiLegacy.ttf
+ for (int i = 0; i < families.size(); ++i) {
+ bool exists = false;
+ auto& family = families[i];
+ for (auto& font : family->fFonts) {
+ if (font.fFileName.equals("NotoColorEmojiLegacy.ttf")) {
+ exists = true;
+ break;
+ }
+ }
+ if (exists) {
+ families.erase(families.begin() + i);
+ break;
+ }
+ }
+ }
return self.fVersion;
} }
static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts, @@ -768,8 +798,10 @@ static void append_fallback_font_families_for_locale(
- const SkString& basePath)
+ const SkString& basePath, static void append_system_fallback_font_families(
+ const SkFontMgr_Android_CustomFonts* custom) std::vector<std::unique_ptr<FontFamily>>& fallbackFonts,
- const SkString& basePath)
+ const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom)
{ {
+ if (custom) return; + if (custom) return;
parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true); parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true);
append_fallback_font_families_for_locale(fallbackFonts, append_fallback_font_families_for_locale(fallbackFonts,
LOCALE_FALLBACK_FONTS_SYSTEM_DIR, LOCALE_FALLBACK_FONTS_SYSTEM_DIR,
@@ -774,8 +789,10 @@ static void append_system_fallback_font_families(SkTDArray<FontFamily*>& fallbac @@ -778,8 +810,10 @@ static void append_system_fallback_font_families(
}
static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallbackFonts, static void mixin_vendor_fallback_font_families(
- const SkString& basePath) std::vector<std::unique_ptr<FontFamily>>& fallbackFonts,
+ const SkString& basePath, - const SkString& basePath)
+ const SkFontMgr_Android_CustomFonts* custom) + const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom)
{ {
+ if (custom) return; + if (custom) return;
SkTDArray<FontFamily*> vendorFonts; std::vector<std::unique_ptr<FontFamily>> vendorFonts;
parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true); parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true);
append_fallback_font_families_for_locale(vendorFonts, append_fallback_font_families_for_locale(vendorFonts,
@@ -806,7 +823,8 @@ static void mixin_vendor_fallback_font_families(SkTDArray<FontFamily*>& fallback @@ -811,7 +845,8 @@ static void mixin_vendor_fallback_font_families(
}
} }
-void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies) { void SkFontMgr_Android_Parser::GetSystemFontFamilies(
+void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies, - std::vector<std::unique_ptr<FontFamily>>& fontFamilies)
+ const SkFontMgr_Android_CustomFonts* custom) { + std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
+ const SkFontMgr_Android_CustomFonts* custom)
{
// Version 21 of the system font configuration does not need any fallback configuration files. // Version 21 of the system font configuration does not need any fallback configuration files.
SkString basePath(getenv("ANDROID_ROOT")); SkString basePath(getenv("ANDROID_ROOT"));
basePath.append(SK_FONT_FILE_PREFIX, sizeof(SK_FONT_FILE_PREFIX) - 1); @@ -823,8 +858,8 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(
@@ -817,22 +835,23 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray<FontFamily*>& fon
// Append all the fallback fonts to system fonts // Append all the fallback fonts to system fonts
SkTDArray<FontFamily*> fallbackFonts; std::vector<std::unique_ptr<FontFamily>> fallbackFonts;
- append_system_fallback_font_families(fallbackFonts, basePath); - append_system_fallback_font_families(fallbackFonts, basePath);
- mixin_vendor_fallback_font_families(fallbackFonts, basePath); - mixin_vendor_fallback_font_families(fallbackFonts, basePath);
+ append_system_fallback_font_families(fallbackFonts, basePath, custom); + append_system_fallback_font_families(fallbackFonts, basePath, custom);
+ mixin_vendor_fallback_font_families(fallbackFonts, basePath, custom); + mixin_vendor_fallback_font_families(fallbackFonts, basePath, custom);
fontFamilies.append(fallbackFonts.size(), fallbackFonts.begin()); fontFamilies.insert(fontFamilies.end(),
} std::make_move_iterator(fallbackFonts.begin()),
std::make_move_iterator(fallbackFonts.end()));
void SkFontMgr_Android_Parser::GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies, @@ -833,15 +868,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(
const SkString& basePath, void SkFontMgr_Android_Parser::GetCustomFontFamilies(
+ const SkFontMgr_Android_CustomFonts* custom, std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
const char* fontsXml, const SkString& basePath,
const char* fallbackFontsXml, + const SkFontMgr_Android_CustomFonts* custom,
const char* langFallbackFontsDir) const char* fontsXml,
const char* fallbackFontsXml,
const char* langFallbackFontsDir)
{ {
if (fontsXml) { if (fontsXml) {
- parse_config_file(fontsXml, fontFamilies, basePath, false); - parse_config_file(fontsXml, fontFamilies, basePath, false);
@@ -3160,7 +3285,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par
diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h
--- a/third_party/skia/src/ports/SkFontMgr_android_parser.h --- a/third_party/skia/src/ports/SkFontMgr_android_parser.h
+++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h +++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h
@@ -15,6 +15,7 @@ @@ -17,6 +17,7 @@
#include "include/private/base/SkTArray.h" #include "include/private/base/SkTArray.h"
#include "include/private/base/SkTDArray.h" #include "include/private/base/SkTDArray.h"
#include "src/core/SkTHash.h" #include "src/core/SkTHash.h"
@@ -3168,16 +3293,16 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party
#include <climits> #include <climits>
#include <limits> #include <limits>
@@ -105,11 +106,13 @@ struct FontFamily { @@ -109,11 +110,13 @@ struct FontFamily {
namespace SkFontMgr_Android_Parser { namespace SkFontMgr_Android_Parser {
/** Parses system font configuration files and appends result to fontFamilies. */ /** Parses system font configuration files and appends result to fontFamilies. */
-void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies); -void GetSystemFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies);
+void GetSystemFontFamilies(SkTDArray<FontFamily*>& fontFamilies, +void GetSystemFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
+ const SkFontMgr_Android_CustomFonts* custom); + const SkFontMgr_Android_CustomFonts* custom);
/** Parses font configuration files and appends result to fontFamilies. */ /** Parses font configuration files and appends result to fontFamilies. */
void GetCustomFontFamilies(SkTDArray<FontFamily*>& fontFamilies, void GetCustomFontFamilies(std::vector<std::unique_ptr<FontFamily>>& fontFamilies,
const SkString& basePath, const SkString& basePath,
+ const SkFontMgr_Android_CustomFonts* custom, + const SkFontMgr_Android_CustomFonts* custom,
const char* fontsXml, const char* fontsXml,
@@ -87,7 +87,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivit
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java
@@ -23,17 +23,39 @@ import org.chromium.build.annotations.Nullable; @@ -22,10 +22,31 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector; import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector;
import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector.ConnectionState; import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector.ConnectionState;
@@ -118,9 +118,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
+import org.chromium.content_public.browser.WebContents; +import org.chromium.content_public.browser.WebContents;
+import org.chromium.net.NetworkChangeNotifier; +import org.chromium.net.NetworkChangeNotifier;
+ +
import java.util.function.Supplier;
/** /**
* Class that detects if the network is offline. Waits for the network to stablize before notifying @@ -34,7 +55,8 @@ import java.util.function.Supplier;
* the observer.
*/ */
@NullMarked @NullMarked
class OfflineDetector class OfflineDetector
@@ -130,7 +131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
// If the connection is online, then we report that immediately via |mIsOfflineCallback|. // If the connection is online, then we report that immediately via |mIsOfflineCallback|.
// |STATUS_INDICATOR_WAIT_ON_OFFLINE_DURATION_MS| and // |STATUS_INDICATOR_WAIT_ON_OFFLINE_DURATION_MS| and
// |mStatusIndicatorWaitOnSwitchOnlineToOfflineDurationMs| control the duration before // |mStatusIndicatorWaitOnSwitchOnlineToOfflineDurationMs| control the duration before
@@ -119,6 +141,11 @@ class OfflineDetector @@ -120,6 +142,11 @@ class OfflineDetector
private static final String TAG = "OfflineDetector"; private static final String TAG = "OfflineDetector";
@@ -142,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
/** /**
* Constructs the offline indicator. * Constructs the offline indicator.
* @param isOfflineCallback The {@link Callback} is invoked when the connectivity status is * @param isOfflineCallback The {@link Callback} is invoked when the connectivity status is
@@ -130,7 +157,13 @@ class OfflineDetector @@ -131,7 +158,13 @@ class OfflineDetector
OfflineDetector( OfflineDetector(
Callback<Boolean> isOfflineCallback, Callback<Boolean> isOfflineCallback,
Callback<Boolean> isForegroundCallback, Callback<Boolean> isForegroundCallback,
@@ -157,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
mIsOfflineCallback = isOfflineCallback; mIsOfflineCallback = isOfflineCallback;
mIsForegroundCallback = isForegroundCallback; mIsForegroundCallback = isForegroundCallback;
mContext = context; mContext = context;
@@ -234,6 +267,75 @@ class OfflineDetector @@ -235,6 +268,75 @@ class OfflineDetector
updateState(); updateState();
} }
@@ -198,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
+ Snackbar snackbar = Snackbar.make( + Snackbar snackbar = Snackbar.make(
+ mContext.getString(R.string.ask_to_restart_on_connection_change_restart), + mContext.getString(R.string.ask_to_restart_on_connection_change_restart),
+ /* snackbarController */ this, Snackbar.TYPE_PERSISTENT, Snackbar.UMA_UNKNOWN) + /* snackbarController */ this, Snackbar.TYPE_PERSISTENT, Snackbar.UMA_UNKNOWN)
+ .setSingleLine(false) + .setDefaultLines(false)
+ .setAction(mContext.getString(R.string.relaunch), /*actionData*/0) + .setAction(mContext.getString(R.string.relaunch), /*actionData*/0)
+ .setDismissAction(mContext.getString(R.string.ask_to_restart_on_connection_change_close_notification), /*actionData*/1); + .setDismissAction(mContext.getString(R.string.ask_to_restart_on_connection_change_close_notification), /*actionData*/1);
+ SnackbarManager snackbarManager = mSnackbarManagerSupplier.get(); + SnackbarManager snackbarManager = mSnackbarManagerSupplier.get();
@@ -233,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
private void logToAdbConsoleNow(String prefix) { private void logToAdbConsoleNow(String prefix) {
Log.i( Log.i(
TAG, TAG,
@@ -320,6 +422,7 @@ class OfflineDetector @@ -321,6 +423,7 @@ class OfflineDetector
** Calls |mUpdateOfflineStatusIndicatorDelayedRunnable| to update the connection state. ** Calls |mUpdateOfflineStatusIndicatorDelayedRunnable| to update the connection state.
*/ */
private void updateState() { private void updateState() {
@@ -244,9 +245,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java
@@ -31,6 +31,11 @@ import org.chromium.content_public.common.ContentSwitches; @@ -31,6 +31,11 @@ import java.lang.annotation.Retention;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.util.function.Supplier;
+import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.base.supplier.ObservableSupplierImpl;
+import org.chromium.chrome.browser.layouts.LayoutManager; +import org.chromium.chrome.browser.layouts.LayoutManager;
@@ -283,7 +284,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -1417,7 +1417,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @@ -1525,7 +1525,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mActivity, mActivity,
mStatusIndicatorCoordinator, mStatusIndicatorCoordinator,
isUrlBarFocusedSupplier, isUrlBarFocusedSupplier,
@@ -298,7 +299,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
@@ -198,6 +198,13 @@ public abstract class TabModelSelectorBase @@ -200,6 +200,13 @@ public abstract class TabModelSelectorBase
return null; return null;
} }
@@ -352,9 +353,9 @@ new file mode 100644
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
@@ -146,6 +146,8 @@ public interface TabModelSelector { @@ -150,6 +150,8 @@ public interface TabModelSelector {
/** Get total tab count across all tab models */ /** Get total pinned tab count across all tab models */
int getTotalTabCount(); int getTotalPinnedTabCount();
+ void setPagesFrozen(boolean frozen); + void setPagesFrozen(boolean frozen);
+ +
@@ -364,7 +365,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java
@@ -16,12 +16,16 @@ import org.chromium.build.annotations.Nullable; @@ -15,6 +15,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
@@ -372,16 +373,17 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.base.WindowAndroid;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; @@ -22,6 +23,9 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.function.Supplier;
+import java.util.Collections; +import java.util.Collections;
+import java.util.stream.IntStream; +import java.util.stream.IntStream;
+import java.util.stream.Collectors; +import java.util.stream.Collectors;
/** /**
* A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s. * A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s.
@@ -55,6 +59,20 @@ public class TabModelUtils { @@ -54,6 +58,20 @@ public class TabModelUtils {
return TabModel.INVALID_TAB_INDEX; return TabModel.INVALID_TAB_INDEX;
} }
@@ -405,7 +407,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java --- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
@@ -133,6 +133,8 @@ public interface TabWindowManager { @@ -138,6 +138,8 @@ public interface TabWindowManager {
/** Returns the total number of incognito tabs across all tab model selectors. */ /** Returns the total number of incognito tabs across all tab model selectors. */
int getIncognitoTabCount(); int getIncognitoTabCount();
@@ -417,7 +419,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java --- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
+++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java
@@ -546,6 +546,16 @@ public class TabWindowManagerImpl implements TabWindowManager { @@ -568,6 +568,16 @@ public class TabWindowManagerImpl implements TabWindowManager {
return tabGroupModelFilter.getTabsInGroup(tabGroupId); return tabGroupModelFilter.getTabsInGroup(tabGroupId);
} }
@@ -495,7 +497,7 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/c
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java
@@ -136,6 +136,8 @@ public class Snackbar { @@ -140,6 +140,8 @@ public class Snackbar {
private @Nullable String mTemplateText; private @Nullable String mTemplateText;
private @Nullable String mActionText; private @Nullable String mActionText;
private @Nullable Object mActionData; private @Nullable Object mActionData;
@@ -503,8 +505,8 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
+ private Object mDismissActionData; + private Object mDismissActionData;
private int mBackgroundColor; private int mBackgroundColor;
private int mTextApperanceResId; private int mTextApperanceResId;
private boolean mSingleLine = true; private boolean mDefaultLines = true;
@@ -241,6 +243,20 @@ public class Snackbar { @@ -246,6 +248,20 @@ public class Snackbar {
return this; return this;
} }
@@ -528,7 +530,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
--- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
+++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java
@@ -326,6 +326,12 @@ public class SnackbarManager @@ -348,6 +348,12 @@ public class SnackbarManager
new SnackbarView( new SnackbarView(
mActivity, mActivity,
this, this,
@@ -552,38 +554,38 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
private final ImageView mProfileImageView; private final ImageView mProfileImageView;
private final int mAnimationDuration; private final int mAnimationDuration;
private final boolean mIsTablet; private final boolean mIsTablet;
@@ -101,11 +102,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { @@ -100,11 +101,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
public SnackbarView( public SnackbarView(
Activity activity, Activity activity,
OnClickListener listener, SnackbarManager manager,
+ OnClickListener dismissListener, + OnClickListener dismissListener,
Snackbar snackbar, Snackbar snackbar,
ViewGroup parentView, ViewGroup parentView,
@Nullable WindowAndroid windowAndroid, @Nullable WindowAndroid windowAndroid,
boolean isTablet) { boolean isTablet) {
- this(activity, listener, snackbar, parentView, windowAndroid, null, isTablet); - this(activity, manager, snackbar, parentView, windowAndroid, null, isTablet);
+ this(activity, listener, dismissListener, snackbar, parentView, windowAndroid, null, isTablet); + this(activity, manager, dismissListener, snackbar, parentView, windowAndroid, null, isTablet);
} }
/** /**
@@ -124,6 +126,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { @@ -122,6 +124,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
public SnackbarView( public SnackbarView(
Activity activity, Activity activity,
OnClickListener listener, SnackbarManager manager,
+ OnClickListener dismissListener, + OnClickListener dismissListener,
Snackbar snackbar, Snackbar snackbar,
ViewGroup parentView, ViewGroup parentView,
@Nullable WindowAndroid windowAndroid, @Nullable WindowAndroid windowAndroid,
@@ -154,6 +157,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { @@ -158,6 +161,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
(TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message); (TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message);
mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button); mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button);
mActionButtonView.setOnClickListener(listener); mActionButtonView.setOnClickListener(manager);
+ mDismissButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_dismiss); + mDismissButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_dismiss);
+ mDismissButtonView.setOnClickListener(dismissListener); + mDismissButtonView.setOnClickListener(dismissListener);
mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image);
mEdgeToEdgeSupplier = edgeToEdgeSupplier; mEdgeToEdgeSupplier = edgeToEdgeSupplier;
if (SnackbarManager.isFloatingSnackbarEnabled()) { // TODO(crbug.com/451807932): Replace with a custom pad adjuster to account for inset
@@ -428,6 +433,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { @@ -434,6 +439,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setVisibility(View.VISIBLE);
mActionButtonView.setContentDescription(snackbar.getActionText()); mActionButtonView.setContentDescription(snackbar.getActionText());
setViewText(mActionButtonView, snackbar.getActionText(), animate); setViewText(mActionButtonView, snackbar.getActionText(), animate);
@@ -599,7 +601,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
--- a/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc
@@ -903,6 +903,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { @@ -911,6 +911,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) {
view->SetFocus(focused); view->SetFocus(focused);
} }
@@ -625,7 +627,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
--- a/content/browser/web_contents/web_contents_android.h --- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h +++ b/content/browser/web_contents/web_contents_android.h
@@ -196,6 +196,7 @@ class CONTENT_EXPORT WebContentsAndroid { @@ -199,6 +199,7 @@ class CONTENT_EXPORT WebContentsAndroid {
void OnScaleFactorChanged(JNIEnv* env); void OnScaleFactorChanged(JNIEnv* env);
void SetFocus(JNIEnv* env, jboolean focused); void SetFocus(JNIEnv* env, jboolean focused);
@@ -636,7 +638,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4080,8 +4080,10 @@ void WebContentsImpl::Stop() { @@ -4096,8 +4096,10 @@ void WebContentsImpl::Stop() {
void WebContentsImpl::SetPageFrozen(bool frozen) { void WebContentsImpl::SetPageFrozen(bool frozen) {
TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen);
@@ -650,7 +652,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -1138,6 +1138,12 @@ public class WebContentsImpl @@ -1143,6 +1143,12 @@ public class WebContentsImpl
WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus);
} }
@@ -663,7 +665,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
@Override @Override
public void setDisplayCutoutSafeArea(Rect insets) { public void setDisplayCutoutSafeArea(Rect insets) {
if (mNativeWebContentsAndroid == 0) return; if (mNativeWebContentsAndroid == 0) return;
@@ -1447,6 +1453,8 @@ public class WebContentsImpl @@ -1486,6 +1492,8 @@ public class WebContentsImpl
void setFocus(long nativeWebContentsAndroid, boolean focused); void setFocus(long nativeWebContentsAndroid, boolean focused);
@@ -675,7 +677,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -288,6 +288,8 @@ public interface WebContents extends Parcelable { @@ -297,6 +297,8 @@ public interface WebContents extends Parcelable {
*/ */
void setFocus(boolean hasFocus); void setFocus(boolean hasFocus);
@@ -687,7 +689,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser
diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
--- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
+++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java
@@ -188,6 +188,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa @@ -191,6 +191,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa
@Override @Override
public void setFocus(boolean hasFocus) {} public void setFocus(boolean hasFocus) {}
@@ -732,7 +734,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -4614,6 +4614,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { @@ -4665,6 +4665,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) {
} }
void Document::DispatchFreezeEvent() { void Document::DispatchFreezeEvent() {
@@ -743,7 +745,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -3273,6 +3273,7 @@ void LocalFrame::DidFreeze() { @@ -3321,6 +3321,7 @@ void LocalFrame::DidFreeze() {
LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); LoaderFreezeMode freeze_mode = GetLoaderFreezeMode();
GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode);
Loader().SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode);
@@ -751,7 +753,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
} }
void LocalFrame::DidResume() { void LocalFrame::DidResume() {
@@ -3287,6 +3288,7 @@ void LocalFrame::DidResume() { @@ -3335,6 +3336,7 @@ void LocalFrame::DidResume() {
GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone);
Loader().SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone);
@@ -762,7 +764,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
@@ -989,7 +989,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( @@ -1025,7 +1025,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState(
if (!parent_page_scheduler_) if (!parent_page_scheduler_)
return SchedulingLifecycleState::kNotThrottled; return SchedulingLifecycleState::kNotThrottled;
if (parent_page_scheduler_->IsFrozen()) { if (parent_page_scheduler_->IsFrozen()) {
@@ -775,7 +777,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_sch
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
--- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc
@@ -237,10 +237,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) { @@ -236,10 +236,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) {
// it is desirable to reject the page freeze to prevent the scheduler from // it is desirable to reject the page freeze to prevent the scheduler from
// being put in a bad state. See https://crbug.com/873214 for context of how // being put in a bad state. See https://crbug.com/873214 for context of how
// this can happen on the browser side. // this can happen on the browser side.
@@ -788,7 +790,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_sche
PolicyUpdater policy_updater; PolicyUpdater policy_updater;
SetPageFrozenImpl(frozen, policy_updater); SetPageFrozenImpl(frozen, policy_updater);
} }
@@ -815,7 +817,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { @@ -804,7 +806,12 @@ bool PageSchedulerImpl::IsBackgrounded() const {
// expire immediately when a page is backgrounded, which is undesirable in // expire immediately when a page is backgrounded, which is undesirable in
// headless mode. To prevent that, a page is never considerer backgrounded // headless mode. To prevent that, a page is never considerer backgrounded
// when virtual time is enabled. // when virtual time is enabled.
@@ -15,9 +15,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../modules/webaudio/base_audio_context.cc | 12 ++++++++++++ .../modules/webaudio/base_audio_context.cc | 12 ++++++++++++
.../renderer/modules/webaudio/base_audio_context.h | 2 ++ .../renderer/modules/webaudio/base_audio_context.h | 2 ++
.../modules/webaudio/offline_audio_context.cc | 1 + .../modules/webaudio/offline_audio_context.cc | 1 +
.../renderer/modules/webaudio/realtime_analyser.cc | 9 ++++++++- .../renderer/modules/webaudio/realtime_analyser.cc | 13 ++++++++++---
.../platform/runtime_enabled_features.json5 | 5 ++--- .../platform/runtime_enabled_features.json5 | 5 ++---
11 files changed, 57 insertions(+), 5 deletions(-) 11 files changed, 59 insertions(+), 7 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
create mode 100644 cromite_flags/third_party/blink/common/features_h/AudioBuffer-AnalyserNode-fp-mitigations.inc create mode 100644 cromite_flags/third_party/blink/common/features_h/AudioBuffer-AnalyserNode-fp-mitigations.inc
@@ -76,7 +76,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.h
@@ -116,6 +116,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable { @@ -115,6 +115,8 @@ class MODULES_EXPORT AudioBuffer final : public ScriptWrappable {
std::unique_ptr<SharedAudioBuffer> CreateSharedAudioBuffer(); std::unique_ptr<SharedAudioBuffer> CreateSharedAudioBuffer();
@@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -16,6 +16,7 @@ @@ -20,6 +20,7 @@
#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/mediastream/media_devices.h" #include "third_party/blink/public/common/mediastream/media_devices.h"
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
@@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
@@ -678,7 +679,9 @@ double AudioContext::baseLatency() const { @@ -921,7 +922,9 @@ double AudioContext::baseLatency() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_);
DCHECK(destination()); DCHECK(destination());
@@ -110,15 +110,15 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.cc
@@ -29,6 +29,7 @@ @@ -30,6 +30,7 @@
#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_functions.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "media/base/audio_bus.h"
+#include "third_party/blink/public/common/features.h" +#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/platform.h"
@@ -710,6 +711,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { @@ -777,6 +778,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const {
return To<LocalDOMWindow>(GetExecutionContext()); return To<LocalDOMWindow>(GetExecutionContext());
} }
@@ -151,7 +151,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
@@ -374,6 +374,7 @@ void OfflineAudioContext::FireCompletionEvent() { @@ -395,6 +395,7 @@ void OfflineAudioContext::FireCompletionEvent() {
if (!rendered_buffer) { if (!rendered_buffer) {
return; return;
} }
@@ -162,33 +162,30 @@ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.c
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc --- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc +++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
@@ -32,6 +32,7 @@ @@ -33,6 +33,7 @@
#include <complex>
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "media/base/audio_bus.h"
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h" +#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
#include "third_party/blink/renderer/platform/audio/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_bus.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h" #include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h" #include "third_party/blink/renderer/platform/audio/vector_math.h"
@@ -156,6 +157,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( @@ -118,7 +119,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array,
input_buffer[(i + write_index - fft_size + kInputBufferSize) % for (unsigned i = 0; i < len; ++i) {
kInputBufferSize]); const float linear_value = UNSAFE_TODO(source[i]);
const double db_mag = audio_utilities::LinearToDecibels(linear_value);
+ value = BaseAudioContext::ShuffleAudioData(value, i); - UNSAFE_TODO(destination[i]) = static_cast<float>(db_mag);
UNSAFE_TODO(destination[i]) = value; + auto v = static_cast<float>(db_mag);
+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i);
} }
} }
@@ -183,6 +185,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { }
input_buffer[(i + write_index - fft_size + kInputBufferSize) % @@ -156,9 +158,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array,
kInputBufferSize]);
+ value = BaseAudioContext::ShuffleAudioData(value, i); // The range m_minDecibels to m_maxDecibels will be scaled to byte values
+ // from 0 to UCHAR_MAX.
// Scale from nominal -1 -> +1 to unsigned byte. - const double scaled_value =
double scaled_value = 128 * (value + 1); + double scaled_value =
@@ -306,6 +310,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
double scaled_value =
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor; UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
+ scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i); + scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i);
@@ -196,20 +193,32 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
// Clip to valid range. // Clip to valid range.
UNSAFE_TODO(destination[i]) = UNSAFE_TODO(destination[i]) =
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX)); static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
@@ -324,7 +330,8 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { @@ -189,6 +193,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
for (unsigned i = 0; i < len; ++i) { input_buffer[(i + write_index - fft_size + kInputBufferSize) %
float linear_value = UNSAFE_TODO(source[i]); kInputBufferSize]);
double db_mag = audio_utilities::LinearToDecibels(linear_value);
- UNSAFE_TODO(destination[i]) = static_cast<float>(db_mag); + value = BaseAudioContext::ShuffleAudioData(value, i);
+ auto v = static_cast<float>(db_mag); UNSAFE_TODO(destination[i]) = value;
+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i);
} }
} }
} @@ -212,10 +217,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
for (unsigned i = 0; i < len; ++i) {
// Buffer access is protected due to modulo operation.
- const float value = UNSAFE_TODO(
+ float value = UNSAFE_TODO(
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
kInputBufferSize]);
+ value = BaseAudioContext::ShuffleAudioData(value, i);
+
// Scale from nominal -1 -> +1 to unsigned byte.
const double scaled_value = 128 * (value + 1);
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -575,9 +575,8 @@ @@ -639,9 +639,8 @@
{ {
// AudioContext.playoutStats interface. // AudioContext.playoutStats interface.
// https://chromestatus.com/feature/5172818344148992 // https://chromestatus.com/feature/5172818344148992
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc --- a/third_party/blink/renderer/modules/battery/battery_manager.cc
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc +++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
@@ -80,46 +80,28 @@ ScriptPromise<BatteryManager> BatteryManager::StartRequest( @@ -77,46 +77,28 @@ ScriptPromise<BatteryManager> BatteryManager::StartRequest(
} }
bool BatteryManager::charging() { bool BatteryManager::charging() {
@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -395,6 +395,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>, @@ -425,6 +425,7 @@ class CORE_EXPORT ExecutionContext : public MojoBindingContext,
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
HeapObserverList<ContextLifecycleObserver>& ContextLifecycleObserverSet(); HeapObserverList<ContextLifecycleObserver>& ContextLifecycleObserverSet();
@@ -45,7 +45,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -1057,6 +1057,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { @@ -1122,6 +1122,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request; return should_block_request;
} }
@@ -75,7 +75,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h --- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -187,6 +187,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, @@ -191,6 +191,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle() std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
override; override;
@@ -93,8 +93,8 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
+#include "third_party/blink/renderer/platform/network/network_utils.h" +#include "third_party/blink/renderer/platform/network/network_utils.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h" #include "third_party/blink/renderer/platform/scheduler/public/virtual_time_controller.h"
#include "third_party/blink/renderer/platform/supplementable.h" #include "third_party/blink/renderer/platform/weborigin/security_policy.h"
@@ -90,6 +91,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { @@ -89,6 +90,26 @@ bool WorkerFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request; return should_block_request;
} }
@@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc --- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
@@ -285,6 +285,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { @@ -288,6 +288,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
return false; return false;
} }
@@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -5133,7 +5133,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( @@ -5158,7 +5158,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
} }
void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) {
@@ -82,7 +82,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli
#include "third_party/blink/renderer/bindings/core/v8/binding_security.h" #include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/document.h"
@@ -126,8 +127,20 @@ DOMStringList* Location::ancestorOrigins() const { @@ -127,8 +128,20 @@ DOMStringList* Location::ancestorOrigins() const {
auto* origins = MakeGarbageCollected<DOMStringList>(); auto* origins = MakeGarbageCollected<DOMStringList>();
if (!IsAttached()) if (!IsAttached())
return origins; return origins;
@@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -833,6 +833,11 @@ WebString DocumentLoader::HttpMethod() const { @@ -835,6 +835,11 @@ WebString DocumentLoader::HttpMethod() const {
} }
const AtomicString& DocumentLoader::GetReferrer() const { const AtomicString& DocumentLoader::GetReferrer() const {
@@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return referrer_; return referrer_;
} }
@@ -2898,6 +2903,13 @@ void DocumentLoader::CommitNavigation() { @@ -2913,6 +2918,13 @@ void DocumentLoader::CommitNavigation() {
response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly));
} }
@@ -135,7 +135,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
--- a/third_party/blink/renderer/core/loader/document_loader.h --- a/third_party/blink/renderer/core/loader/document_loader.h
+++ b/third_party/blink/renderer/core/loader/document_loader.h +++ b/third_party/blink/renderer/core/loader/document_loader.h
@@ -771,7 +771,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>, @@ -768,7 +768,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,
// |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set. // |archive_|, but won't have |loading_main_document_from_mhtml_archive_| set.
bool loading_main_document_from_mhtml_archive_ = false; bool loading_main_document_from_mhtml_archive_ = false;
const bool loading_srcdoc_ = false; const bool loading_srcdoc_ = false;
@@ -1,277 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 30 Oct 2019 11:50:13 +0100
Subject: Block 'qjz9zk' or 'trk:' requests
An info bar is displayed unless the --disable-trkbar command-line flag or the chrome://flag option is used.
This patch is based on Iridium's 'net: add "trk:" scheme and help identify URLs being retrieved'
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../chrome_autocomplete_scheme_classifier.cc | 1 +
chrome/browser/history/history_utils.cc | 1 +
chrome/browser/ui/singleton_tabs.cc | 5 ++++
.../omnibox/browser/autocomplete_input.cc | 8 ++++-
components/url_formatter/url_fixer.cc | 4 +++
.../child_process_security_policy_impl.cc | 1 +
net/BUILD.gn | 2 ++
net/url_request/trk_protocol_handler.cc | 25 ++++++++++++++++
net/url_request/trk_protocol_handler.h | 30 +++++++++++++++++++
net/url_request/url_request.cc | 8 +++++
.../url_request_context_builder.cc | 3 ++
url/url_constants.h | 1 +
url/url_util.cc | 2 ++
13 files changed, 90 insertions(+), 1 deletion(-)
create mode 100644 net/url_request/trk_protocol_handler.cc
create mode 100644 net/url_request/trk_protocol_handler.h
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.cc
@@ -72,6 +72,7 @@ ChromeAutocompleteSchemeClassifier::GetInputTypeForScheme(
if (base::IsStringASCII(scheme) &&
(ProfileIOData::IsHandledProtocol(scheme) ||
base::EqualsCaseInsensitiveASCII(scheme, content::kViewSourceScheme) ||
+ base::EqualsCaseInsensitiveASCII(scheme, url::kTraceScheme) ||
base::EqualsCaseInsensitiveASCII(scheme, url::kJavaScriptScheme) ||
base::EqualsCaseInsensitiveASCII(scheme, url::kDataScheme))) {
return metrics::OmniboxInputType::URL;
diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/history_utils.cc
--- a/chrome/browser/history/history_utils.cc
+++ b/chrome/browser/history/history_utils.cc
@@ -22,6 +22,7 @@ bool CanAddURLToHistory(const GURL& url) {
url.SchemeIs(content::kChromeUIScheme) ||
url.SchemeIs(content::kChromeUIUntrustedScheme) ||
url.SchemeIs(content::kViewSourceScheme) ||
+ url.SchemeIs(url::kTraceScheme) ||
url.SchemeIs(chrome::kChromeNativeScheme) ||
url.SchemeIs(chrome::kChromeSearchScheme) ||
url.SchemeIs(dom_distiller::kDomDistillerScheme))
diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc
--- a/chrome/browser/ui/singleton_tabs.cc
+++ b/chrome/browser/ui/singleton_tabs.cc
@@ -136,6 +136,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) {
continue;
}
+ // trk: URLs must not be rewritten
+ if (tab_url.SchemeIs(url::kTraceScheme)) {
+ continue;
+ }
+
GURL rewritten_tab_url = tab_url;
content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
&rewritten_tab_url, browser->profile());
diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc
--- a/components/omnibox/browser/autocomplete_input.cc
+++ b/components/omnibox/browser/autocomplete_input.cc
@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) {
bool HasScheme(const std::u16string& input, const char* scheme) {
std::string utf8_input(base::UTF16ToUTF8(input));
url::Component view_source_scheme;
+
+ if (url::FindAndCompareScheme(utf8_input, url::kTraceScheme, &view_source_scheme)) {
+ return false;
+ }
if (url::FindAndCompareScheme(utf8_input, kViewSourceScheme,
&view_source_scheme)) {
utf8_input.erase(0, view_source_scheme.end() + 1);
}
+
return url::FindAndCompareScheme(utf8_input, scheme, nullptr);
}
@@ -578,7 +583,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
// For the view-source and blob schemes, we should emphasize the host of the
// URL qualified by the view-source or blob prefix.
if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) ||
- base::EqualsCaseInsensitiveASCII(scheme_str, url::kBlobScheme)) &&
+ base::EqualsCaseInsensitiveASCII(scheme_str, url::kBlobScheme) ||
+ base::EqualsCaseInsensitiveASCII(scheme_str, url::kTraceScheme)) &&
(static_cast<int>(text.length()) > after_scheme_and_colon)) {
// Obtain the URL prefixed by view-source or blob and parse it.
std::u16string real_url(text.substr(after_scheme_and_colon));
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
--- a/components/url_formatter/url_fixer.cc
+++ b/components/url_formatter/url_fixer.cc
@@ -602,6 +602,10 @@ GURL FixupURLInternal(const std::string& text,
}
}
+ if (scheme == url::kTraceScheme) {
+ return GURL();
+ }
+
// We handle the file scheme separately.
if (scheme == url::kFileScheme) {
return GURL(parts.scheme.is_valid() ? text : FixupPath(text));
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -970,6 +970,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
RegisterPseudoScheme(url::kJavaScriptScheme);
RegisterPseudoScheme(kViewSourceScheme);
RegisterPseudoScheme(kGoogleChromeScheme);
+ RegisterWebSafeScheme(url::kTraceScheme);
}
ChildProcessSecurityPolicyImpl::~ChildProcessSecurityPolicyImpl() = default;
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1127,6 +1127,8 @@ component("net") {
"url_request/url_request_http_job.cc",
"url_request/url_request_http_job.h",
"url_request/url_request_interceptor.cc",
+ "url_request/trk_protocol_handler.cc",
+ "url_request/trk_protocol_handler.h",
"url_request/url_request_interceptor.h",
"url_request/url_request_job.cc",
"url_request/url_request_job.h",
diff --git a/net/url_request/trk_protocol_handler.cc b/net/url_request/trk_protocol_handler.cc
new file mode 100644
--- /dev/null
+++ b/net/url_request/trk_protocol_handler.cc
@@ -0,0 +1,25 @@
+// Copyright (c) 2018 The ungoogled-chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/url_request/trk_protocol_handler.h"
+
+#include "base/logging.h"
+#include "net/base/net_errors.h"
+#include "net/url_request/url_request_error_job.h"
+
+namespace net {
+
+TrkProtocolHandler::TrkProtocolHandler() = default;
+
+std::unique_ptr<URLRequestJob> TrkProtocolHandler::CreateJob(
+ URLRequest* request) const {
+ LOG(ERROR) << "Blocked URL in TrkProtocolHandler: " << request->original_url();
+ return std::make_unique<URLRequestErrorJob>(request, ERR_BLOCKED_BY_CLIENT);
+}
+
+bool TrkProtocolHandler::IsSafeRedirectTarget(const GURL& location) const {
+ return true;
+}
+
+} // namespace net
diff --git a/net/url_request/trk_protocol_handler.h b/net/url_request/trk_protocol_handler.h
new file mode 100644
--- /dev/null
+++ b/net/url_request/trk_protocol_handler.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2018 The ungoogled-chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_
+#define NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_
+
+#include "base/compiler_specific.h"
+#include "net/base/net_export.h"
+#include "net/url_request/url_request_job_factory.h"
+
+namespace net {
+
+class URLRequestJob;
+
+// Implements a ProtocolHandler for Trk jobs.
+class NET_EXPORT TrkProtocolHandler
+ : public URLRequestJobFactory::ProtocolHandler {
+ public:
+ TrkProtocolHandler(const TrkProtocolHandler&) = delete;
+ TrkProtocolHandler& operator=(const TrkProtocolHandler&) = delete;
+
+ TrkProtocolHandler();
+ std::unique_ptr<URLRequestJob> CreateJob(URLRequest* request) const override;
+ bool IsSafeRedirectTarget(const GURL& location) const override;
+};
+
+} // namespace net
+
+#endif // NET_URL_REQUEST_TRK_PROTOCOL_HANDLER_H_
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
--- a/net/url_request/url_request.cc
+++ b/net/url_request/url_request.cc
@@ -15,6 +15,7 @@
#include "base/notreached.h"
#include "base/rand_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/strings/string_util.h"
#include "base/synchronization/lock.h"
#include "base/task/single_thread_task_runner.h"
#include "base/types/optional_util.h"
@@ -55,6 +56,7 @@
#include "net/url_request/url_request_redirect_job.h"
#include "url/gurl.h"
#include "url/origin.h"
+#include "url/url_constants.h"
namespace net {
@@ -653,6 +655,12 @@ URLRequest::URLRequest(base::PassKey<URLRequestContext> pass_key,
// Sanity check out environment.
DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault());
+ if (!url.SchemeIs(url::kTraceScheme) &&
+ base::EndsWith(url.host(), "qjz9zk", base::CompareCase::INSENSITIVE_ASCII)) {
+ LOG(ERROR) << "Block URL in URLRequest: " << url;
+ url_chain_[0] = GURL(url::kTraceScheme + (":" + url.possibly_invalid_spec()));
+ }
+
context->url_requests()->insert(this);
net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, [&] {
return NetLogURLRequestConstructorParams(url, priority_,
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -55,6 +55,7 @@
#include "net/socket/network_binding_client_socket_factory.h"
#include "net/ssl/ssl_config_service_defaults.h"
#include "net/url_request/static_http_user_agent_settings.h"
+#include "net/url_request/trk_protocol_handler.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_job_factory.h"
#include "url/url_constants.h"
@@ -619,6 +620,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
job_factory->SetProtocolHandler(scheme_handler.first,
std::move(scheme_handler.second));
}
+ job_factory->SetProtocolHandler(url::kTraceScheme,
+ std::make_unique<TrkProtocolHandler>());
protocol_handlers_.clear();
context->set_job_factory(std::move(job_factory));
diff --git a/url/url_constants.h b/url/url_constants.h
--- a/url/url_constants.h
+++ b/url/url_constants.h
@@ -34,6 +34,7 @@ inline constexpr char16_t kDataScheme16[] = u"data";
inline constexpr char kDrivefsScheme[] = "drivefs";
inline constexpr char kFileScheme[] = "file";
inline constexpr char16_t kFileScheme16[] = u"file";
+inline constexpr char kTraceScheme[] = "trk";
inline constexpr char kFileSystemScheme[] = "filesystem";
inline constexpr char16_t kFileSystemScheme16[] = u"filesystem";
inline constexpr char kFtpScheme[] = "ftp";
diff --git a/url/url_util.cc b/url/url_util.cc
--- a/url/url_util.cc
+++ b/url/url_util.cc
@@ -54,6 +54,7 @@ struct SchemeRegistry {
std::vector<SchemeWithType> standard_schemes = {
{kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
{kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
+ {kTraceScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
// Yes, file URLs can have a hostname, so file URLs should be handled as
// "standard". File URLs never have a port as specified by the SchemeType
// field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file
@@ -99,6 +100,7 @@ struct SchemeRegistry {
kAboutScheme,
kJavaScriptScheme,
kDataScheme,
+ kTraceScheme,
};
// Schemes that can be sent CORS requests.
--
@@ -80,7 +80,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -249,6 +249,9 @@ CHAR_LIMIT guidelines: @@ -264,6 +264,9 @@ CHAR_LIMIT guidelines:
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]"> <message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
Sites Sites
</message> </message>
+266 -265
View File
@@ -21,12 +21,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/endpoint_fetcher/BUILD.gn | 32 ++ chrome/browser/endpoint_fetcher/BUILD.gn | 32 ++
chrome/browser/endpoint_fetcher/DEPS | 3 + chrome/browser/endpoint_fetcher/DEPS | 3 +
chrome/browser/endpoint_fetcher/OWNERS | 1 + chrome/browser/endpoint_fetcher/OWNERS | 1 +
.../endpoint_fetcher_android.cc | 149 +++++++++ .../endpoint_fetcher_android.cc | 107 +++++++
.../endpoint_fetcher/EndpointFetcher.java | 116 +++++++ .../endpoint_fetcher/EndpointFetcher.java | 63 ++++
.../EndpointHeaderResponse.java | 31 ++ .../EndpointHeaderResponse.java | 31 ++
.../endpoint_fetcher/EndpointResponse.java | 30 ++ .../endpoint_fetcher/EndpointResponse.java | 30 ++
.../flags/android/chrome_feature_list.cc | 1 + .../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 1 + .../browser/flags/ChromeFeatureList.java | 1 +
.../access_code_cast_discovery_interface.cc | 2 +-
chrome/browser/omaha/android/BUILD.gn | 3 + chrome/browser/omaha/android/BUILD.gn | 3 +
.../chrome/browser/omaha/OmahaPrefUtils.java | 52 +++- .../chrome/browser/omaha/OmahaPrefUtils.java | 52 +++-
.../chrome/browser/omaha/UpdateConfigs.java | 27 +- .../chrome/browser/omaha/UpdateConfigs.java | 27 +-
@@ -34,15 +35,22 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/omaha/VersionNumberGetter.java | 4 +- .../browser/omaha/VersionNumberGetter.java | 4 +-
.../omaha/inline/InlineUpdateController.java | 57 ++++ .../omaha/inline/InlineUpdateController.java | 57 ++++
.../safety_hub/SafetyHubFetchService.java | 5 - .../safety_hub/SafetyHubFetchService.java | 5 -
.../browser/save_to_drive/drive_uploader.cc | 2 +-
.../strings/android_chrome_strings.grd | 23 +- .../strings/android_chrome_strings.grd | 23 +-
.../ui/lens/lens_overlay_query_controller.cc | 1 + .../ui/lens/lens_overlay_query_controller.cc | 2 +-
.../endpoint_fetcher/endpoint_fetcher.cc | 123 ++++++-- components/commerce/core/account_checker.cc | 2 +-
.../endpoint_fetcher/endpoint_fetcher.h | 25 ++ .../core/compare/cluster_server_proxy.cc | 2 +-
components/manta/base_provider.cc | 1 + .../product_specifications_server_proxy.cc | 2 +-
.../composebox/composebox_query_controller.cc | 2 +- .../subscriptions_server_proxy.cc | 2 +-
.../internal/composebox_query_controller.cc | 2 +-
.../data_sharing_network_loader_impl.cc | 2 +-
.../internal/preview_server_proxy.cc | 2 +-
.../endpoint_fetcher/endpoint_fetcher.cc | 127 ++++++--
.../endpoint_fetcher/endpoint_fetcher.h | 28 +-
components/manta/base_provider.cc | 4 +-
.../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 3 +
.../Bromite-auto-updater.inc | 1 + .../Bromite-auto-updater.inc | 1 +
34 files changed, 1235 insertions(+), 93 deletions(-) 42 files changed, 1154 insertions(+), 106 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn
@@ -71,7 +79,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni --- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni +++ b/build/config/android/rules.gni
@@ -1945,6 +1945,9 @@ if (!is_robolectric && enable_java_templates) { @@ -1959,6 +1959,9 @@ if (!is_robolectric && enable_java_templates) {
sources = [ "//build/android/java/templates/BuildConfig.template" ] sources = [ "//build/android/java/templates/BuildConfig.template" ]
defines = [] defines = []
@@ -84,7 +92,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
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
@@ -833,6 +833,8 @@ chrome_java_sources = [ @@ -871,6 +871,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/OmahaBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java",
"java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java",
"java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java",
@@ -111,7 +119,7 @@ diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/a
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
@@ -29,13 +29,19 @@ import org.chromium.ui.widget.Toast; @@ -31,10 +31,15 @@ import org.chromium.ui.widget.Toast;
import java.util.Calendar; import java.util.Calendar;
@@ -121,10 +129,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/
+ +
/** Settings fragment that displays information about Chrome. */ /** Settings fragment that displays information about Chrome. */
@NullMarked @NullMarked
public class AboutChromeSettings extends PreferenceFragmentCompat public class AboutChromeSettings extends ChromeBaseSettingsFragment
- implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener { - implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener {
+ implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener, + implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener,
+ Preference.OnPreferenceChangeListener { + Preference.OnPreferenceChangeListener {
static {
CalendarFactory.warmUp();
}
@@ -42,6 +47,7 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment
private static final int TAPS_FOR_DEVELOPER_SETTINGS = 7; private static final int TAPS_FOR_DEVELOPER_SETTINGS = 7;
private static final String PREF_APPLICATION_VERSION = "application_version"; private static final String PREF_APPLICATION_VERSION = "application_version";
@@ -132,9 +144,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/
private static final String PREF_OS_VERSION = "os_version"; private static final String PREF_OS_VERSION = "os_version";
private static final String PREF_LEGAL_INFORMATION = "legal_information"; private static final String PREF_LEGAL_INFORMATION = "legal_information";
@@ -72,6 +78,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat @@ -78,6 +84,13 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment
assumeNonNull(p); assumeNonNull(p);
int currentYear = Calendar.getInstance().get(Calendar.YEAR); int currentYear = CalendarFactory.get().get(Calendar.YEAR);
p.setSummary(getString(R.string.legal_information_summary, currentYear)); p.setSummary(getString(R.string.legal_information_summary, currentYear));
+ +
+ ChromeSwitchPreference allowInlineUpdate = + ChromeSwitchPreference allowInlineUpdate =
@@ -146,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/
} }
@Override @Override
@@ -142,6 +155,19 @@ public class AboutChromeSettings extends PreferenceFragmentCompat @@ -148,6 +161,19 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment
return true; return true;
} }
@@ -246,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
import android.view.Choreographer; import android.view.Choreographer;
+import androidx.annotation.StringRes; +import androidx.annotation.StringRes;
import org.chromium.base.BuildInfo; import org.chromium.base.ApkInfo;
import org.chromium.base.Callback; import org.chromium.base.Callback;
@@ -23,6 +24,7 @@ import org.chromium.build.annotations.Nullable; @@ -23,6 +24,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.R; import org.chromium.chrome.R;
@@ -312,7 +324,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
// The badge is hidden if the update menu item has been clicked until there is an // The badge is hidden if the update menu item has been clicked until there is an
// even newer version of Chrome available. // even newer version of Chrome available.
showBadge |= showBadge |=
@@ -255,6 +270,72 @@ public class UpdateMenuItemHelper { @@ -254,6 +269,72 @@ public class UpdateMenuItemHelper {
mMenuUiState.itemState.icon = R.drawable.ic_error_24dp_filled; mMenuUiState.itemState.icon = R.drawable.ic_error_24dp_filled;
mMenuUiState.itemState.enabled = false; mMenuUiState.itemState.enabled = false;
break; break;
@@ -678,7 +690,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2685,6 +2685,12 @@ static_library("browser") { @@ -2652,6 +2652,12 @@ static_library("browser") {
} }
if (is_android) { if (is_android) {
@@ -746,7 +758,7 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc +++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc
@@ -0,0 +1,149 @@ @@ -0,0 +1,107 @@
+// Copyright 2019 The Chromium Authors +// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be +// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. +// found in the LICENSE file.
@@ -801,48 +813,6 @@ new file mode 100644
+} +}
+} // namespace +} // namespace
+ +
+// TODO(crbug.com/1077537) Create a KeyProvider so
+// we can have one centralized API.
+
+static void JNI_EndpointFetcher_NativeFetchOAuth(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jprofile,
+ const base::android::JavaParamRef<jstring>& joauth_consumer_name,
+ const base::android::JavaParamRef<jstring>& jurl,
+ const base::android::JavaParamRef<jstring>& jhttps_method,
+ const base::android::JavaParamRef<jstring>& jcontent_type,
+ const base::android::JavaParamRef<jobjectArray>& jscopes,
+ const base::android::JavaParamRef<jstring>& jpost_data,
+ jlong jtimeout,
+ jint jannotation_hash_code,
+ const base::android::JavaParamRef<jobject>& jcallback) {
+ std::vector<std::string> scopes;
+ base::android::AppendJavaStringArrayToStringVector(env, jscopes, &scopes);
+ auto endpoint_fetcher = std::make_unique<endpoint_fetcher::EndpointFetcher>(
+ Profile::FromJavaObject(jprofile)
+ ->GetDefaultStoragePartition()
+ ->GetURLLoaderFactoryForBrowserProcess(),
+ base::android::ConvertJavaStringToUTF8(env, joauth_consumer_name),
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ base::android::ConvertJavaStringToUTF8(env, jhttps_method),
+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), scopes,
+ base::Milliseconds(jtimeout), base::android::ConvertJavaStringToUTF8(env, jpost_data),
+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
+ jannotation_hash_code),
+ IdentityManagerFactory::GetForProfile(
+ Profile::FromJavaObject(jprofile)),
+ // TODO(crbug.com/1466445): ConsentLevel::kSync is deprecated and should
+ // be removed. See ConsentLevel::kSync documentation for details.
+ signin::ConsentLevel::kSync);
+ auto* const endpoint_fetcher_ptr = endpoint_fetcher.get();
+ endpoint_fetcher_ptr->Fetch(
+ base::BindOnce(&OnEndpointFetcherComplete,
+ base::android::ScopedJavaGlobalRef<jobject>(jcallback),
+ // unique_ptr endpoint_fetcher is passed until the callback
+ // to ensure its lifetime across the request.
+ std::move(endpoint_fetcher)));
+}
+
+static void JNI_EndpointFetcher_NativeFetchWithNoAuth( +static void JNI_EndpointFetcher_NativeFetchWithNoAuth(
+ JNIEnv* env, + JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jprofile, + const base::android::JavaParamRef<jobject>& jprofile,
@@ -900,7 +870,7 @@ diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browse
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java +++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
@@ -0,0 +1,116 @@ @@ -0,0 +1,63 @@
+// Copyright 2019 The Chromium Authors +// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be +// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. +// found in the LICENSE file.
@@ -928,47 +898,6 @@ new file mode 100644
+public final class EndpointFetcher { +public final class EndpointFetcher {
+ private EndpointFetcher() {} + private EndpointFetcher() {}
+ +
+ /**
+ * Calls an endpoint using OAuth and returns the response via a callback
+ * @param callback callback function response is returned in
+ * @param profile profile via which the endpoint is called
+ * @param oathConsumerName consumer name for OAuth
+ * @param url endpoint URL called
+ * @param httpsMethod the HTTPS method used e.g. "GET" or "POST"
+ * @param contentType the content type e.g. "application/json"
+ * @param scopes scopes used as part of authentication
+ * @param postData data for a "POST" request
+ * @param timeout time after which the request will terminate in the event a response hasn't
+ * been received
+ */
+ @MainThread
+ public static void fetchUsingOAuth(
+ Callback<EndpointResponse> callback,
+ Profile profile,
+ String oathConsumerName,
+ String url,
+ String httpsMethod,
+ String contentType,
+ String[] scopes,
+ String postData,
+ long timeout,
+ NetworkTrafficAnnotationTag annotation) {
+ // EndpointFetcher currently does not support incognito mode
+ assert !profile.isOffTheRecord();
+ EndpointFetcherJni.get()
+ .nativeFetchOAuth(
+ profile,
+ oathConsumerName,
+ url,
+ httpsMethod,
+ contentType,
+ scopes,
+ postData,
+ timeout,
+ annotation.getHashCode(),
+ callback);
+ }
+
+ @MainThread + @MainThread
+ public static void nativeHeadWithNoAuth( + public static void nativeHeadWithNoAuth(
+ Callback<EndpointHeaderResponse> callback, Profile profile, + Callback<EndpointHeaderResponse> callback, Profile profile,
@@ -989,18 +918,6 @@ new file mode 100644
+ +
+ @NativeMethods + @NativeMethods
+ public interface Natives { + public interface Natives {
+ void nativeFetchOAuth(
+ Profile profile,
+ String oathConsumerName,
+ String url,
+ String httpsMethod,
+ String contentType,
+ String[] scopes,
+ String postData,
+ long timeout,
+ int annotationHashCode,
+ Callback<EndpointResponse> callback);
+
+ void nativeFetchWithNoAuth( + void nativeFetchWithNoAuth(
+ Profile profile, + Profile profile,
+ String url, + String url,
@@ -1091,25 +1008,37 @@ new file mode 100644
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
@@ -363,6 +363,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -387,6 +387,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kProtectedTabsAndroid, &kProtectedTabsAndroid,
&kPwaRestoreUi, &kPwaRestoreUi,
&kPwaRestoreUiAtStartup, &kPwaRestoreUiAtStartup,
+ &kInlineUpdateFlow, + &kInlineUpdateFlow,
&kOmahaMinSdkVersionAndroid, &kReadAloud,
&kShortCircuitUnfocusAnimation, &kReadAloudAudioOverviews,
&kShowHomeButtonPolicyAndroid, &kReadAloudAudioOverviewsFeedback,
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
@@ -453,6 +453,7 @@ public abstract class ChromeFeatureList { @@ -477,6 +477,7 @@ public abstract class ChromeFeatureList {
public static final String HUB_BACK_BUTTON = "HubBackButton"; public static final String INCOGNITO_NTP_SMALL_ICON = "IncognitoNtpSmallIcon";
public static final String HUB_SLIDE_ANIMATION = "HubSlideAnimation";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INCOGNITO_THEME_OVERLAY_TESTING = "IncognitoThemeOverlayTesting";
+ public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2";
public static final String IP_PROTECTION_UX = "IpProtectionUx"; public static final String IP_PROTECTION_UX = "IpProtectionUx";
public static final String KEYBOARD_ESC_BACK_NAVIGATION = "KeyboardEscBackNavigation"; public static final String KEYBOARD_ESC_BACK_NAVIGATION = "KeyboardEscBackNavigation";
diff --git a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc
--- a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc
+++ b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc
@@ -264,7 +264,7 @@ AccessCodeCastDiscoveryInterface::CreateEndpointFetcher(
.SetTimeout(kTimeout)
.SetUrl(GURL(base::StrCat({GetDiscoveryUrl(), "/", access_code})))
.SetPostData(kEmptyPostData)
- .Build());
+ .Build(), kTrafficAnnotation);
}
void AccessCodeCastDiscoveryInterface::ValidateDiscoveryAccessCode(
diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn
--- a/chrome/browser/omaha/android/BUILD.gn --- a/chrome/browser/omaha/android/BUILD.gn
+++ b/chrome/browser/omaha/android/BUILD.gn +++ b/chrome/browser/omaha/android/BUILD.gn
@@ -1282,10 +1211,10 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
+import org.chromium.base.ActivityState; +import org.chromium.base.ActivityState;
+import org.chromium.base.ApplicationStatus; +import org.chromium.base.ApplicationStatus;
+import org.chromium.base.ApplicationStatus.ActivityStateListener; +import org.chromium.base.ApplicationStatus.ActivityStateListener;
import org.chromium.base.BuildInfo; import org.chromium.base.ApkInfo;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.ObserverList; import org.chromium.base.DeviceInfo;
@@ -30,6 +33,7 @@ import org.chromium.base.task.TaskTraits; @@ -31,6 +34,7 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.Nullable;
import org.chromium.build.annotations.RequiresNonNull; import org.chromium.build.annotations.RequiresNonNull;
@@ -1293,7 +1222,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
import org.chromium.chrome.browser.omaha.metrics.UpdateSuccessMetrics; import org.chromium.chrome.browser.omaha.metrics.UpdateSuccessMetrics;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -39,6 +43,11 @@ import java.io.File; @@ -40,6 +44,11 @@ import java.io.File;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@@ -1305,7 +1234,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
/** /**
* Provides the current update state for Chrome. This update state is asynchronously determined and * Provides the current update state for Chrome. This update state is asynchronously determined and
* can change as Chrome runs. * can change as Chrome runs.
@@ -46,24 +55,26 @@ import java.lang.annotation.RetentionPolicy; @@ -47,24 +56,26 @@ import java.lang.annotation.RetentionPolicy;
* For manually testing this functionality, see {@link UpdateConfigs}. * For manually testing this functionality, see {@link UpdateConfigs}.
*/ */
@NullMarked @NullMarked
@@ -1340,7 +1269,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
} }
/** A set of properties that represent the current update state for Chrome. */ /** A set of properties that represent the current update state for Chrome. */
@@ -97,6 +108,12 @@ public class UpdateStatusProvider { @@ -98,6 +109,12 @@ public class UpdateStatusProvider {
*/ */
private boolean mIsSimulated; private boolean mIsSimulated;
@@ -1353,7 +1282,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
public UpdateStatus() {} public UpdateStatus() {}
UpdateStatus(UpdateStatus other) { UpdateStatus(UpdateStatus other) {
@@ -105,11 +122,13 @@ public class UpdateStatusProvider { @@ -106,11 +123,13 @@ public class UpdateStatusProvider {
latestVersion = other.latestVersion; latestVersion = other.latestVersion;
latestUnsupportedVersion = other.latestUnsupportedVersion; latestUnsupportedVersion = other.latestUnsupportedVersion;
mIsSimulated = other.mIsSimulated; mIsSimulated = other.mIsSimulated;
@@ -1367,7 +1296,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
private final UpdateQuery mOmahaQuery; private final UpdateQuery mOmahaQuery;
private final UpdateSuccessMetrics mMetrics; private final UpdateSuccessMetrics mMetrics;
private @Nullable UpdateStatus mStatus; private @Nullable UpdateStatus mStatus;
@@ -117,11 +136,6 @@ public class UpdateStatusProvider { @@ -118,11 +137,6 @@ public class UpdateStatusProvider {
/** Whether or not we've recorded the initial update status yet. */ /** Whether or not we've recorded the initial update status yet. */
private boolean mRecordedInitialStatus; private boolean mRecordedInitialStatus;
@@ -1379,7 +1308,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
/** /**
* Adds {@code observer} to notify about update state changes. It is safe to call this multiple * Adds {@code observer} to notify about update state changes. It is safe to call this multiple
* times with the same {@code observer}. This method will always notify {@code observer} of the * times with the same {@code observer}. This method will always notify {@code observer} of the
@@ -177,6 +191,30 @@ public class UpdateStatusProvider { @@ -178,6 +192,30 @@ public class UpdateStatusProvider {
pingObservers(); pingObservers();
} }
@@ -1410,7 +1339,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
/** /**
* Starts the intent update process, if possible * Starts the intent update process, if possible
* @param context An {@link Context} that will be used to fire off the update intent. * @param context An {@link Context} that will be used to fire off the update intent.
@@ -184,12 +222,11 @@ public class UpdateStatusProvider { @@ -185,12 +223,11 @@ public class UpdateStatusProvider {
* @return Whether or not the update intent was sent and had a valid handler. * @return Whether or not the update intent was sent and had a valid handler.
*/ */
public boolean startIntentUpdate(Context context, boolean newTask) { public boolean startIntentUpdate(Context context, boolean newTask) {
@@ -1424,7 +1353,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mStatus.updateUrl)); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mStatus.updateUrl));
if (newTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (newTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent); context.startActivity(intent);
@@ -200,9 +237,15 @@ public class UpdateStatusProvider { @@ -201,9 +238,15 @@ public class UpdateStatusProvider {
return true; return true;
} }
@@ -1442,7 +1371,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
} }
@RequiresNonNull("mStatus") @RequiresNonNull("mStatus")
@@ -211,35 +254,52 @@ public class UpdateStatusProvider { @@ -212,35 +255,52 @@ public class UpdateStatusProvider {
} }
private void resolveStatus() { private void resolveStatus() {
@@ -1504,7 +1433,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
mCallback = resultReceiver; mCallback = resultReceiver;
} }
@@ -251,7 +311,7 @@ public class UpdateStatusProvider { @@ -252,7 +312,7 @@ public class UpdateStatusProvider {
protected UpdateStatus doInBackground() { protected UpdateStatus doInBackground() {
UpdateStatus testStatus = getTestStatus(); UpdateStatus testStatus = getTestStatus();
if (testStatus != null) return testStatus; if (testStatus != null) return testStatus;
@@ -1513,7 +1442,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
} }
@Override @Override
@@ -269,6 +329,8 @@ public class UpdateStatusProvider { @@ -270,6 +330,8 @@ public class UpdateStatusProvider {
status.mIsSimulated = true; status.mIsSimulated = true;
status.updateState = forcedUpdateState; status.updateState = forcedUpdateState;
@@ -1522,7 +1451,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
// Push custom configurations for certain update states. // Push custom configurations for certain update states.
switch (forcedUpdateState) { switch (forcedUpdateState) {
case UpdateState.UPDATE_AVAILABLE: case UpdateState.UPDATE_AVAILABLE:
@@ -286,31 +348,33 @@ public class UpdateStatusProvider { @@ -287,31 +349,33 @@ public class UpdateStatusProvider {
return status; return status;
} }
@@ -1537,7 +1466,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o
- boolean allowedToUpdate = - boolean allowedToUpdate =
- checkForSufficientStorage() - checkForSufficientStorage()
- // Disable the version update check for automotive. See b/297925838. - // Disable the version update check for automotive. See b/297925838.
- && !BuildInfo.getInstance().isAutomotive - && !DeviceInfo.isAutomotive()
- && PackageUtils.isPackageInstalled( - && PackageUtils.isPackageInstalled(
- GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE); - GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE);
- status.updateState = - status.updateState =
@@ -1677,10 +1606,22 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow
} }
/** See {@link ChromeActivitySessionTracker#onForegroundSessionStart()}. */ /** See {@link ChromeActivitySessionTracker#onForegroundSessionStart()}. */
diff --git a/chrome/browser/save_to_drive/drive_uploader.cc b/chrome/browser/save_to_drive/drive_uploader.cc
--- a/chrome/browser/save_to_drive/drive_uploader.cc
+++ b/chrome/browser/save_to_drive/drive_uploader.cc
@@ -290,7 +290,7 @@ DriveUploader::CreateEndpointFetcher(
return std::make_unique<endpoint_fetcher::EndpointFetcher>(
/*url_loader_factory=*/url_loader_factory_.get(),
/*identity_manager=*/identity_manager_,
- /*request_params=*/std::move(request_params));
+ /*request_params=*/std::move(request_params), kTrafficAnnotationTag);
}
DriveUploaderType DriveUploader::get_drive_uploader_type() const {
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
@@ -2324,6 +2324,12 @@ Your Google account may have other forms of browsing history like searches and a @@ -2315,6 +2315,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported"> <message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
Chrome updates are no longer supported for this version of Android Chrome updates are no longer supported for this version of Android
</message> </message>
@@ -1693,7 +1634,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Account management UI strings. --> <!-- Account management UI strings. -->
<message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]"> <message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
@@ -4288,7 +4294,10 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d @@ -4366,7 +4372,10 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<!-- Main menu items --> <!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]"> <message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -1705,7 +1646,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message> </message>
<message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]"> <message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
Newer version is available Newer version is available
@@ -4299,6 +4308,18 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d @@ -4377,6 +4386,18 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]"> <message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
Android version is unsupported Android version is unsupported
</message> </message>
@@ -1727,18 +1668,103 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
--- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc --- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc
+++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
@@ -802,6 +802,7 @@ LensOverlayQueryController::CreateEndpointFetcher( @@ -770,7 +770,7 @@ LensOverlayQueryController::CreateEndpointFetcher(
/*post_data=*/std::move(request_string), .SetTimeout(timeout)
/*headers=*/request_headers, .SetUrl(fetch_url)
/*cors_exempt_headers=*/cors_exempt_headers, chrome::GetChannel(), .SetUploadProgressCallback(std::move(upload_progress_callback))
+ kTrafficAnnotationTag, - .Build());
/*request_params=*/ + .Build(), kTrafficAnnotationTag);
EndpointFetcher::RequestParams::Builder(http_method, }
kTrafficAnnotationTag)
void LensOverlayQueryController::SendLatencyGen204IfEnabled(
diff --git a/components/commerce/core/account_checker.cc b/components/commerce/core/account_checker.cc
--- a/components/commerce/core/account_checker.cc
+++ b/components/commerce/core/account_checker.cc
@@ -327,7 +327,7 @@ std::unique_ptr<EndpointFetcher> AccountChecker::CreateEndpointFetcher(
.SetPostData(post_data);
MaybeUseAlternateShoppingServer(request_params);
return std::make_unique<EndpointFetcher>(
- url_loader_factory_, identity_manager_, request_params.Build());
+ url_loader_factory_, identity_manager_, request_params.Build(), annotation_tag);
}
} // namespace commerce
diff --git a/components/commerce/core/compare/cluster_server_proxy.cc b/components/commerce/core/compare/cluster_server_proxy.cc
--- a/components/commerce/core/compare/cluster_server_proxy.cc
+++ b/components/commerce/core/compare/cluster_server_proxy.cc
@@ -156,7 +156,7 @@ std::unique_ptr<EndpointFetcher> ClusterServerProxy::CreateEndpointFetcher(
.SetPostData(post_data);
commerce::MaybeUseAlternateShoppingServer(request_params);
return std::make_unique<EndpointFetcher>(
- url_loader_factory_, identity_manager_, request_params.Build());
+ url_loader_factory_, identity_manager_, request_params.Build(), kGetComparableProductsTrafficAnnotation);
}
void ClusterServerProxy::HandleCompareResponse(
diff --git a/components/commerce/core/compare/product_specifications_server_proxy.cc b/components/commerce/core/compare/product_specifications_server_proxy.cc
--- a/components/commerce/core/compare/product_specifications_server_proxy.cc
+++ b/components/commerce/core/compare/product_specifications_server_proxy.cc
@@ -296,7 +296,7 @@ ProductSpecificationsServerProxy::CreateEndpointFetcher(
.SetPostData(post_data);
MaybeUseAlternateShoppingServer(request_params);
return std::make_unique<EndpointFetcher>(
- url_loader_factory_, identity_manager_, request_params.Build());
+ url_loader_factory_, identity_manager_, request_params.Build(), kShoppingListTrafficAnnotation);
}
std::optional<ProductSpecifications>
diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
--- a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
+++ b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
@@ -302,7 +302,7 @@ SubscriptionsServerProxy::CreateEndpointFetcher(
.SetPostData(post_data);
MaybeUseAlternateShoppingServer(request_params);
return std::make_unique<EndpointFetcher>(
- url_loader_factory_, identity_manager_, request_params.Build());
+ url_loader_factory_, identity_manager_, request_params.Build(), annotation_tag);
}
void SubscriptionsServerProxy::HandleManageSubscriptionsResponses(
diff --git a/components/contextual_search/internal/composebox_query_controller.cc b/components/contextual_search/internal/composebox_query_controller.cc
--- a/components/contextual_search/internal/composebox_query_controller.cc
+++ b/components/contextual_search/internal/composebox_query_controller.cc
@@ -777,7 +777,7 @@ ComposeboxQueryController::CreateEndpointFetcher(
.SetTimeout(timeout)
.SetUploadProgressCallback(std::move(upload_progress_callback))
.SetUrl(fetch_url)
- .Build());
+ .Build(), kTrafficAnnotationTag);
}
lens::LensOverlayClientContext ComposeboxQueryController::CreateClientContext()
diff --git a/components/data_sharing/internal/data_sharing_network_loader_impl.cc b/components/data_sharing/internal/data_sharing_network_loader_impl.cc
--- a/components/data_sharing/internal/data_sharing_network_loader_impl.cc
+++ b/components/data_sharing/internal/data_sharing_network_loader_impl.cc
@@ -63,7 +63,7 @@ DataSharingNetworkLoaderImpl::CreateEndpointFetcher(
.SetUrl(url)
.SetOAuthConsumerId(signin::OAuthConsumerId::kDataSharingAndroid)
.SetPostData(post_data)
- .Build());
+ .Build(), annotation_tag);
}
void DataSharingNetworkLoaderImpl::OnDownloadComplete(
diff --git a/components/data_sharing/internal/preview_server_proxy.cc b/components/data_sharing/internal/preview_server_proxy.cc
--- a/components/data_sharing/internal/preview_server_proxy.cc
+++ b/components/data_sharing/internal/preview_server_proxy.cc
@@ -346,7 +346,7 @@ std::unique_ptr<EndpointFetcher> PreviewServerProxy::CreateEndpointFetcher(
.SetContentType(kContentType)
.SetTimeout(kTimeout)
.SetUrl(url)
- .Build());
+ .Build(), kGetSharedDataPreviewTrafficAnnotation);
}
void PreviewServerProxy::HandleServerResponse(
diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc
--- a/components/endpoint_fetcher/endpoint_fetcher.cc --- a/components/endpoint_fetcher/endpoint_fetcher.cc
+++ b/components/endpoint_fetcher/endpoint_fetcher.cc +++ b/components/endpoint_fetcher/endpoint_fetcher.cc
@@ -21,6 +21,11 @@ @@ -29,6 +29,11 @@
#include "services/network/public/mojom/referrer_policy.mojom-shared.h" #include "services/network/public/mojom/referrer_policy.mojom-shared.h"
#include "services/network/public/mojom/url_response_head.mojom.h" #include "services/network/public/mojom/url_response_head.mojom.h"
@@ -1750,61 +1776,43 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
namespace endpoint_fetcher { namespace endpoint_fetcher {
namespace { namespace {
@@ -37,6 +42,8 @@ std::string GetHttpMethodString(const HttpMethod& http_method) { @@ -47,6 +52,8 @@ std::string GetHttpMethodString(const HttpMethod& http_method) {
return "POST";
case HttpMethod::kDelete:
return "DELETE"; return "DELETE";
case HttpMethod::kPut:
return "PUT";
+ case HttpMethod::kHead: + case HttpMethod::kHead:
+ return "HEAD"; + return "HEAD";
default: default:
DCHECK(0) << base::StringPrintf("Unknown HttpMethod %d\n", DCHECK(0) << base::StringPrintf("Unknown HttpMethod %d\n",
static_cast<int>(http_method)); static_cast<int>(http_method));
@@ -51,6 +58,8 @@ HttpMethod GetHttpMethod(const std::string& http_method_string) { @@ -54,6 +61,13 @@ std::string GetHttpMethodString(const HttpMethod& http_method) {
return HttpMethod::kPost; return "";
} else if (http_method_string == "DELETE") {
return HttpMethod::kDelete;
+ } else if (http_method_string == "HEAD") {
+ return HttpMethod::kHead;
}
return HttpMethod::kUndefined;
} }
@@ -110,6 +119,7 @@ EndpointFetcher::EndpointFetcher(
RequestParams request_params) +HttpMethod GetHttpMethod(const std::string& http_method_string) {
+ if (http_method_string == "HEAD") {
+ return HttpMethod::kHead;
+ }
+ return HttpMethod::kUndefined;
+}
+
} // namespace
EndpointResponse::EndpointResponse() = default;
@@ -109,9 +123,11 @@ EndpointFetcher::RequestParams::Builder::Build() {
EndpointFetcher::EndpointFetcher(
const scoped_refptr<network::SharedURLLoaderFactory>& url_loader_factory,
signin::IdentityManager* identity_manager,
- RequestParams request_params)
+ RequestParams request_params,
+ const net::NetworkTrafficAnnotationTag& annotation_tag)
: url_loader_factory_(url_loader_factory), : url_loader_factory_(url_loader_factory),
identity_manager_(identity_manager), identity_manager_(identity_manager),
+ intercept_redirect_(false), + intercept_redirect_(false),
request_params_(std::move(request_params)) { request_params_(std::move(request_params)) {
if (request_params_.auth_type() == OAUTH) { if (request_params_.auth_type() == OAUTH) {
DCHECK(identity_manager_) DCHECK(identity_manager_)
@@ -150,9 +160,11 @@ EndpointFetcher::EndpointFetcher( @@ -124,12 +140,32 @@ EndpointFetcher::EndpointFetcher(
const std::vector<std::string>& headers,
const std::vector<std::string>& cors_exempt_headers,
version_info::Channel channel,
+ const net::NetworkTrafficAnnotationTag& annotation_tag,
const RequestParams request_params)
: url_loader_factory_(url_loader_factory),
identity_manager_(nullptr),
+ intercept_redirect_(false),
request_params_(EndpointFetcher::RequestParams::Builder(request_params)
.SetAuthType(CHROME_API_KEY)
.SetUrl(url)
@@ -171,6 +183,7 @@ EndpointFetcher::EndpointFetcher(
const net::NetworkTrafficAnnotationTag& annotation_tag)
: url_loader_factory_(url_loader_factory),
identity_manager_(nullptr),
+ intercept_redirect_(false),
request_params_(EndpointFetcher::RequestParams::Builder(HttpMethod::kGet,
annotation_tag)
.SetAuthType(NO_AUTH)
@@ -193,6 +206,7 @@ EndpointFetcher::EndpointFetcher(
signin::ConsentLevel consent_level)
: url_loader_factory_(url_loader_factory),
identity_manager_(identity_manager),
+ intercept_redirect_(false),
request_params_(
EndpointFetcher::RequestParams::Builder(GetHttpMethod(http_method),
annotation_tag)
@@ -212,6 +226,7 @@ EndpointFetcher::EndpointFetcher(
EndpointFetcher::EndpointFetcher( EndpointFetcher::EndpointFetcher(
const net::NetworkTrafficAnnotationTag& annotation_tag) const net::NetworkTrafficAnnotationTag& annotation_tag)
: identity_manager_(nullptr), : identity_manager_(nullptr),
@@ -1812,11 +1820,10 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
request_params_( request_params_(
EndpointFetcher::RequestParams::Builder(HttpMethod::kUndefined, EndpointFetcher::RequestParams::Builder(HttpMethod::kUndefined,
annotation_tag) annotation_tag)
@@ -219,6 +234,25 @@ EndpointFetcher::EndpointFetcher( .SetTimeout(kDefaultTimeOut)
.SetSanitizeResponse(true)
.Build()) {} .Build()) {}
+// constructor used by Bromite +// constructor used by Cromite
+EndpointFetcher::EndpointFetcher( +EndpointFetcher::EndpointFetcher(
+ const scoped_refptr<network::SharedURLLoaderFactory>& url_loader_factory, + const scoped_refptr<network::SharedURLLoaderFactory>& url_loader_factory,
+ const GURL& url, + const GURL& url,
@@ -1838,7 +1845,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
EndpointFetcher::~EndpointFetcher() = default; EndpointFetcher::~EndpointFetcher() = default;
void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) { void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) {
@@ -301,13 +335,10 @@ void EndpointFetcher::PerformHttpRequest( @@ -212,13 +248,10 @@ void EndpointFetcher::PerformHttpRequest(
auto resource_request = std::make_unique<network::ResourceRequest>(); auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->method = GetHttpMethodString(request_params_.http_method()); resource_request->method = GetHttpMethodString(request_params_.http_method());
resource_request->url = request_params_.url(); resource_request->url = request_params_.url();
@@ -1853,9 +1860,9 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ resource_request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE + resource_request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE
+ | net::LOAD_DO_NOT_SAVE_COOKIES; + | net::LOAD_DO_NOT_SAVE_COOKIES;
// Add Content-Type header if post data is present. // Add Content-Type header if post data is present.
if (request_params_.http_method() == HttpMethod::kPost && bool has_body_content = (request_params_.http_method() == HttpMethod::kPost ||
request_params_.post_data()) { request_params_.http_method() == HttpMethod::kPut) &&
@@ -346,8 +377,23 @@ void EndpointFetcher::PerformHttpRequest( @@ -259,8 +292,23 @@ void EndpointFetcher::PerformHttpRequest(
break; break;
} }
@@ -1877,9 +1884,9 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ &EndpointFetcher::OnSimpleLoaderRedirect, base::Unretained(this))); + &EndpointFetcher::OnSimpleLoaderRedirect, base::Unretained(this)));
+ } + }
if (request_params_.http_method() == HttpMethod::kPost && if (has_body_content) {
request_params_.post_data()) { simple_url_loader_->AttachStringForUpload(
@@ -361,9 +407,18 @@ void EndpointFetcher::PerformHttpRequest( @@ -273,9 +321,18 @@ void EndpointFetcher::PerformHttpRequest(
simple_url_loader_->SetRetryOptions(GetMaxRetries(), simple_url_loader_->SetRetryOptions(GetMaxRetries(),
network::SimpleURLLoader::RETRY_ON_5XX); network::SimpleURLLoader::RETRY_ON_5XX);
@@ -1898,10 +1905,10 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ base::Unretained(this))); + base::Unretained(this)));
+ return; + return;
+ } + }
network::SimpleURLLoader::BodyAsStringCallbackDeprecated network::SimpleURLLoader::BodyAsStringCallback body_as_string_callback =
body_as_string_callback = base::BindOnce( base::BindOnce(&EndpointFetcher::OnResponseFetched,
&EndpointFetcher::OnResponseFetched, weak_ptr_factory_.GetWeakPtr(), weak_ptr_factory_.GetWeakPtr(),
@@ -453,21 +508,6 @@ void EndpointFetcher::OnSanitizationResult( @@ -334,21 +391,6 @@ void EndpointFetcher::OnResponseFetched(
std::move(endpoint_fetcher_callback).Run(std::move(response)); std::move(endpoint_fetcher_callback).Run(std::move(response));
} }
@@ -1921,9 +1928,9 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
-} -}
- -
int EndpointFetcher::GetMaxRetries() const { int EndpointFetcher::GetMaxRetries() const {
if (!request_params_.max_retries.has_value()) { return request_params_.max_retries.value_or(kNumRetries);
return kNumRetries; }
@@ -493,4 +533,39 @@ std::string EndpointFetcher::GetUrlForTesting() { @@ -366,4 +408,39 @@ std::string EndpointFetcher::GetUrlForTesting() {
return request_params_.url().spec(); return request_params_.url().spec();
} }
@@ -1966,59 +1973,55 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h
--- a/components/endpoint_fetcher/endpoint_fetcher.h --- a/components/endpoint_fetcher/endpoint_fetcher.h
+++ b/components/endpoint_fetcher/endpoint_fetcher.h +++ b/components/endpoint_fetcher/endpoint_fetcher.h
@@ -21,6 +21,8 @@ @@ -20,6 +20,9 @@
#include "services/network/public/mojom/fetch_api.mojom-forward.h"
#include "url/gurl.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
+
namespace base { namespace base {
class TimeDelta; class TimeDelta;
} // namespace base } // namespace base
+#include "services/network/public/cpp/resource_request.h" @@ -61,6 +64,7 @@ enum class HttpMethod {
+#include "services/network/public/mojom/url_response_head.mojom.h"
namespace network {
class SimpleURLLoader;
@@ -59,6 +61,7 @@ enum class HttpMethod {
kGet = 0,
kPost = 1, kPost = 1,
kDelete = 2, kDelete = 2,
+ kHead = 3, kPut = 3,
+ kHead = 4,
}; };
enum AuthType { enum AuthType {
@@ -72,6 +75,8 @@ enum AuthType { @@ -79,6 +83,8 @@ struct EndpointResponse {
~EndpointResponse();
struct EndpointResponse {
std::string response; std::string response;
+ long last_modified; + long last_modified;
+ std::string redirect_url; + std::string redirect_url;
int http_status_code{-1}; int http_status_code{-1};
std::optional<FetchErrorType> error_type; std::optional<FetchErrorType> error_type;
}; scoped_refptr<net::HttpResponseHeaders> headers;
@@ -359,6 +364,7 @@ class EndpointFetcher { @@ -301,7 +307,16 @@ class EndpointFetcher {
const std::vector<std::string>& headers, EndpointFetcher(
const std::vector<std::string>& cors_exempt_headers, const scoped_refptr<network::SharedURLLoaderFactory>& url_loader_factory,
version_info::Channel channel, signin::IdentityManager* identity_manager,
+ const net::NetworkTrafficAnnotationTag& annotation_tag, - RequestParams request_params);
const RequestParams request_params); + RequestParams request_params,
+ const net::NetworkTrafficAnnotationTag& annotation_tag);
// Less preferred convenience constructor for requests requiring no +
@@ -375,6 +381,14 @@ class EndpointFetcher { + // Constructor used by cromite
const GURL& url,
const net::NetworkTrafficAnnotationTag& annotation_tag);
+ // Constructor if no authentication is needed, with timeout
+ EndpointFetcher(const scoped_refptr<network::SharedURLLoaderFactory>& url_loader_factory, + EndpointFetcher(const scoped_refptr<network::SharedURLLoaderFactory>& url_loader_factory,
+ const GURL& url, + const GURL& url,
+ const std::string& http_method, + const std::string& http_method,
+ int64_t timeout_ms, + int64_t timeout_ms,
+ const bool intercept_redirect, + const bool intercept_redirect,
+ const net::NetworkTrafficAnnotationTag& annotation_tag); + const net::NetworkTrafficAnnotationTag& annotation_tag);
+
// Used internally. Can be used if caller constructs their own EndpointFetcher(const EndpointFetcher& endpoint_fetcher) = delete;
// url_loader_factory and identity_manager. EndpointFetcher& operator=(const EndpointFetcher& endpoint_fetcher) = delete;
EndpointFetcher( @@ -334,11 +349,17 @@ class EndpointFetcher {
@@ -424,11 +438,17 @@ class EndpointFetcher {
void OnSanitizationResult(std::unique_ptr<EndpointResponse> response, void OnResponseFetched(EndpointFetcherCallback callback,
EndpointFetcherCallback endpoint_fetcher_callback, std::optional<std::string> response_body);
data_decoder::JsonSanitizer::Result result);
+ void OnURLLoadComplete(scoped_refptr<net::HttpResponseHeaders> headers); + void OnURLLoadComplete(scoped_refptr<net::HttpResponseHeaders> headers);
+ void OnSimpleLoaderRedirect(const GURL& url_before_redirect, + void OnSimpleLoaderRedirect(const GURL& url_before_redirect,
+ const net::RedirectInfo& redirect_info, + const net::RedirectInfo& redirect_info,
@@ -2033,16 +2036,16 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
// Members set in constructor // Members set in constructor
const scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; const scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
@@ -436,6 +456,8 @@ class EndpointFetcher { @@ -349,6 +370,8 @@ class EndpointFetcher {
// this case, callers should invoke `PerformRequest` directly). // SingleClientSharedTabGroupVersioningSyncTest.ShouldShowVersioningMessagesAfterRestart/kSyncTransportOnly
const raw_ptr<signin::IdentityManager> identity_manager_; const raw_ptr<signin::IdentityManager, DanglingUntriaged> identity_manager_;
+ const bool intercept_redirect_; + const bool intercept_redirect_;
+ +
// The complete definition of the specific network request to be performed. // The complete definition of the specific network request to be performed.
// Contains authentication details and response handling preferences. // Contains authentication details and response handling preferences.
const RequestParams request_params_; const RequestParams request_params_;
@@ -445,6 +467,9 @@ class EndpointFetcher { @@ -358,6 +381,9 @@ class EndpointFetcher {
access_token_fetcher_; access_token_fetcher_;
std::unique_ptr<network::SimpleURLLoader> simple_url_loader_; std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
@@ -2055,26 +2058,24 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.cc diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.cc
--- a/components/manta/base_provider.cc --- a/components/manta/base_provider.cc
+++ b/components/manta/base_provider.cc +++ b/components/manta/base_provider.cc
@@ -163,6 +163,7 @@ std::unique_ptr<EndpointFetcher> BaseProvider::CreateEndpointFetcherForDemoMode( @@ -140,7 +140,7 @@ std::unique_ptr<EndpointFetcher> BaseProvider::CreateEndpointFetcher(
/*cors_exempt_headers=*/std::vector<std::string>(), .SetUrl(url)
// ChromeOS always uses the stable channel API key .SetOAuthConsumerId(signin::OAuthConsumerId::kManta)
version_info::Channel::STABLE, .SetPostData(post_data)
+ annotation_tag, - .Build());
EndpointFetcher::RequestParams::Builder(kHttpMethod, annotation_tag) + .Build(), annotation_tag);
.Build());
} }
diff --git a/components/omnibox/composebox/composebox_query_controller.cc b/components/omnibox/composebox/composebox_query_controller.cc
--- a/components/omnibox/composebox/composebox_query_controller.cc std::unique_ptr<EndpointFetcher> BaseProvider::CreateEndpointFetcherForDemoMode(
+++ b/components/omnibox/composebox/composebox_query_controller.cc @@ -158,7 +158,7 @@ std::unique_ptr<EndpointFetcher> BaseProvider::CreateEndpointFetcherForDemoMode(
@@ -314,7 +314,7 @@ ComposeboxQueryController::CreateEndpointFetcher( .SetTimeout(timeout)
/*post_data=*/std::move(request_string), .SetPostData(post_data)
/*headers=*/request_headers, .SetChannel(version_info::Channel::STABLE)
/*cors_exempt_headers=*/cors_exempt_headers, - .Build());
- /*channel=*/channel_, + .Build(), annotation_tag);
+ /*channel=*/channel_, kTrafficAnnotationTag, }
/*request_params=*/
EndpointFetcher::RequestParams::Builder(http_method, } // namespace manta
kTrafficAnnotationTag)
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@@ -33,7 +33,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../flags/android/adblock_native_gateway.cc | 31 ++ .../flags/android/adblock_native_gateway.cc | 31 ++
.../browser/flags/AdBlockNativeGateway.java | 30 ++ .../browser/flags/AdBlockNativeGateway.java | 30 ++
.../net/system_network_context_manager.cc | 4 + .../net/system_network_context_manager.cc | 4 +
.../sessions/session_restore_android.cc | 7 +-
.../strings/android_chrome_strings.grd | 14 + .../strings/android_chrome_strings.grd | 14 +
chrome/common/pref_names.h | 5 + chrome/common/pref_names.h | 5 +
.../strings/android/site_settings.grdp | 3 + .../strings/android/site_settings.grdp | 3 +
@@ -51,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/subresource_filter_features.cc | 118 +------- .../browser/subresource_filter_features.cc | 118 +-------
.../core/browser/verified_ruleset_dealer.cc | 4 + .../core/browser/verified_ruleset_dealer.cc | 4 +
.../core/common/indexed_ruleset.cc | 5 +- .../core/common/indexed_ruleset.cc | 5 +-
39 files changed, 1287 insertions(+), 129 deletions(-) 38 files changed, 1282 insertions(+), 127 deletions(-)
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@@ -66,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -325,6 +325,7 @@ if (_is_default_toolchain) { @@ -302,6 +302,7 @@ if (_is_default_toolchain) {
"//chrome/android/features/tab_ui/public:ui_java_resources", "//chrome/android/features/tab_ui/public:ui_java_resources",
"//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java", "//chrome/android/webapk/libs/client:client_java",
@@ -77,15 +76,15 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni
@@ -419,6 +419,7 @@ chrome_java_resources = [ @@ -453,6 +453,7 @@ chrome_java_resources = [
"java/res/layout/account_divider_preference.xml",
"java/res/layout/account_management_account_row.xml", "java/res/layout/account_management_account_row.xml",
"java/res/layout/app_history_filter.xml", "java/res/layout/app_history_filter.xml",
"java/res/layout/auto_pip_permission_dialog.xml",
+ "java/res/layout/adblock_editor.xml", + "java/res/layout/adblock_editor.xml",
"java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_name_and_number.xml", "java/res/layout/autofill_card_name_and_number.xml",
@@ -608,6 +609,7 @@ chrome_java_resources = [ @@ -658,6 +659,7 @@ chrome_java_resources = [
"java/res/xml/account_management_preferences.xml", "java/res/xml/account_management_preferences.xml",
"java/res/xml/ad_services_config.xml", "java/res/xml/ad_services_config.xml",
"java/res/xml/appearance_preferences.xml", "java/res/xml/appearance_preferences.xml",
@@ -96,7 +95,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -903,6 +903,8 @@ chrome_java_sources = [ @@ -942,6 +942,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java", "java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java",
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
@@ -180,8 +179,8 @@ new file mode 100644
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
--- a/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml
+++ b/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml
@@ -273,6 +273,24 @@ found in the LICENSE file. @@ -331,6 +331,24 @@ found in the LICENSE file.
<item name="android:textSize">20sp</item> </item>
</style> </style>
+ <style name="ButtonBarTopSpacer" parent="ButtonBarTopSpacerLight"> + <style name="ButtonBarTopSpacer" parent="ButtonBarTopSpacerLight">
@@ -252,7 +251,7 @@ new file mode 100644
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -120,6 +120,11 @@ for the previous order (main_preferences_legacy). --> @@ -111,6 +111,11 @@ found in the LICENSE file.
android:key="toolbar_shortcut" android:key="toolbar_shortcut"
android:order="21" android:order="21"
android:title="@string/toolbar_shortcut"/> android:title="@string/toolbar_shortcut"/>
@@ -377,7 +376,7 @@ new file mode 100644
+ +
+import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.base.supplier.ObservableSupplierImpl;
+import org.chromium.base.supplier.Supplier; +import java.util.function.Supplier;
+ +
+import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.content_public.browser.BrowserContextHandle;
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
@@ -442,17 +441,17 @@ new file mode 100644
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
@@ -72,6 +72,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; @@ -95,6 +95,8 @@ import java.util.HashMap;
import java.lang.ref.WeakReference;
import java.util.Locale; import java.util.Locale;
import java.util.Map;
+import org.chromium.chrome.browser.settings.AdBlockEditor; +import org.chromium.chrome.browser.settings.AdBlockEditor;
+ +
/** /**
* The Chrome settings activity. * The Chrome settings activity.
* *
@@ -683,6 +685,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity @@ -1175,6 +1177,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { && !MAIN_FRAGMENT_TAG.equals(fragment.getTag())) {
return; return;
} }
+ if (fragment instanceof AdBlockEditor) return; + if (fragment instanceof AdBlockEditor) return;
@@ -462,7 +461,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -16888,6 +16888,16 @@ Please help our engineers fix this problem. Tell us what happened right before y @@ -17395,6 +17395,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again. Never show this again.
</message> </message>
@@ -522,7 +521,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
namespace gcm { namespace gcm {
class GCMDriver; class GCMDriver;
} }
@@ -271,6 +276,7 @@ class BrowserProcess { @@ -276,6 +281,7 @@ class BrowserProcess {
#endif #endif
virtual component_updater::ComponentUpdateService* component_updater() = 0; virtual component_updater::ComponentUpdateService* component_updater() = 0;
@@ -533,7 +532,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc
@@ -1273,6 +1273,34 @@ BrowserProcessImpl::component_updater() { @@ -1284,6 +1284,34 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get(); return component_updater_.get();
} }
@@ -571,7 +570,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
--- a/chrome/browser/browser_process_impl.h --- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h
@@ -212,6 +212,7 @@ class BrowserProcessImpl : public BrowserProcess, @@ -213,6 +213,7 @@ class BrowserProcessImpl : public BrowserProcess,
#endif #endif
component_updater::ComponentUpdateService* component_updater() override; component_updater::ComponentUpdateService* component_updater() override;
@@ -579,7 +578,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
MediaFileSystemRegistry* media_file_system_registry() override; MediaFileSystemRegistry* media_file_system_registry() override;
WebRtcLogUploader* webrtc_log_uploader() override; WebRtcLogUploader* webrtc_log_uploader() override;
network_time::NetworkTimeTracker* network_time_tracker() override; network_time::NetworkTimeTracker* network_time_tracker() override;
@@ -429,6 +430,7 @@ class BrowserProcessImpl : public BrowserProcess, @@ -426,6 +427,7 @@ class BrowserProcessImpl : public BrowserProcess,
// to concerns over integrity of data shared between profiles, // to concerns over integrity of data shared between profiles,
// but some users of component updater only install per-user. // but some users of component updater only install per-user.
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_; std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
@@ -590,7 +589,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc
@@ -384,6 +384,9 @@ StartupProfileInfo CreateInitialProfile( @@ -430,6 +430,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test. // missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile."; CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -603,7 +602,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn
@@ -8,6 +8,7 @@ import("//third_party/jni_zero/jni_zero.gni") @@ -9,6 +9,7 @@ import("//third_party/jni_zero/jni_zero.gni")
android_library("java") { android_library("java") {
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
sources += [ sources += [
@@ -611,7 +610,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
@@ -47,6 +48,7 @@ java_bromite_impl("java_cromite_cached_flags") { @@ -49,6 +50,7 @@ java_bromite_impl("java_cromite_cached_flags") {
generate_jni("jni_headers") { generate_jni("jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
sources += [ sources += [
@@ -619,7 +618,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
] ]
@@ -61,6 +63,7 @@ static_library("flags_android") { @@ -62,6 +64,7 @@ static_library("flags_android") {
"android/chrome_session_state.cc", "android/chrome_session_state.cc",
"android/chrome_session_state.h", "android/chrome_session_state.h",
] ]
@@ -701,7 +700,7 @@ new file mode 100755
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc
@@ -721,6 +721,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { @@ -716,6 +716,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry);
NetworkProcessLaunchWatcher::RegisterPrefs(registry); NetworkProcessLaunchWatcher::RegisterPrefs(registry);
@@ -712,28 +711,11 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
// Static auth params // Static auth params
registry->RegisterStringPref(prefs::kAuthSchemes, registry->RegisterStringPref(prefs::kAuthSchemes,
"basic,digest,ntlm,negotiate"); "basic,digest,ntlm,negotiate");
diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc
--- a/chrome/browser/sessions/session_restore_android.cc
+++ b/chrome/browser/sessions/session_restore_android.cc
@@ -58,8 +58,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab(
DCHECK(current_tab);
// If swapped, return the current tab's most up-to-date web contents.
if (disposition == WindowOpenDisposition::CURRENT_TAB) {
- current_tab->SwapWebContents(std::move(new_web_contents), false, false);
- return current_tab->web_contents();
+ int active_tab_index = tab_model->GetActiveIndex();
+ tab_model->CreateTab(current_tab, new_web_contents.release(),
+ disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
+ tab_model->CloseTabAt(active_tab_index);
+ return raw_new_web_contents;
}
DCHECK(disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB ||
disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -221,6 +221,20 @@ CHAR_LIMIT guidelines: @@ -236,6 +236,20 @@ CHAR_LIMIT guidelines:
<ph name="PREF_TITLE">%1$s</ph> <ph name="BEGIN_NEW">&lt;new&gt;</ph>New<ph name="END_NEW">&lt;/new&gt;</ph> Try searching the help center
</message> </message>
+ <!-- AdBlock settings --> + <!-- AdBlock settings -->
@@ -756,7 +738,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h --- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -2907,6 +2907,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; @@ -2979,6 +2979,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
inline constexpr char kAudioCaptureAllowedUrls[] = inline constexpr char kAudioCaptureAllowedUrls[] =
"hardware.audio_capture_allowed_urls"; "hardware.audio_capture_allowed_urls";
@@ -771,7 +753,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -391,6 +391,9 @@ @@ -424,6 +424,9 @@
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads"> <message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
This site shows intrusive or misleading ads This site shows intrusive or misleading ads
</message> </message>
@@ -1613,7 +1595,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
web_contents_helper_(web_contents_helper) {} web_contents_helper_(web_contents_helper) {}
ContentSubresourceFilterThrottleManager:: ContentSubresourceFilterThrottleManager::
@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager:: @@ -661,6 +665,17 @@ ContentSubresourceFilterThrottleManager::
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
ad_tagging_state); ad_tagging_state);
} }
@@ -1634,7 +1616,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
@@ -403,6 +403,8 @@ class ContentSubresourceFilterThrottleManager @@ -410,6 +410,8 @@ class ContentSubresourceFilterThrottleManager
std::unique_ptr<ProfileInteractionManager> profile_interaction_manager_; std::unique_ptr<ProfileInteractionManager> profile_interaction_manager_;
@@ -2016,15 +1998,15 @@ diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer.
diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc
--- a/components/subresource_filter/core/common/indexed_ruleset.cc --- a/components/subresource_filter/core/common/indexed_ruleset.cc
+++ b/components/subresource_filter/core/common/indexed_ruleset.cc +++ b/components/subresource_filter/core/common/indexed_ruleset.cc
@@ -6,6 +6,7 @@ @@ -7,6 +7,7 @@
#include "base/check.h" #include "base/check.h"
#include "base/functional/callback.h"
#include "base/hash/hash.h" #include "base/hash/hash.h"
+#include "base/logging.h" +#include "base/logging.h"
#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_functions.h"
#include "base/strings/strcat.h" #include "base/strings/strcat.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
@@ -37,7 +38,9 @@ VerifyStatus GetVerifyStatus(base::span<const uint8_t> buffer, @@ -38,7 +39,9 @@ VerifyStatus GetVerifyStatus(base::span<const uint8_t> buffer,
// least once. The verifier detects a subset of the errors detected by the // least once. The verifier detects a subset of the errors detected by the
// checksum, and is unneeded once expected_checksum is consistently nonzero. // checksum, and is unneeded once expected_checksum is consistently nonzero.
flatbuffers::Verifier verifier(buffer.data(), buffer.size()); flatbuffers::Verifier verifier(buffer.data(), buffer.size());
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
--- a/chrome/browser/ui/views/toolbar/reload_button.cc --- a/chrome/browser/ui/views/toolbar/reload_button.cc
+++ b/chrome/browser/ui/views/toolbar/reload_button.cc +++ b/chrome/browser/ui/views/toolbar/reload_button.cc
@@ -225,6 +225,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) { @@ -276,6 +276,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) {
command = IDC_RELOAD; command = IDC_RELOAD;
} }
@@ -33,9 +33,9 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
--- a/ui/views/widget/widget.h --- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h
@@ -1456,6 +1456,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -1468,6 +1468,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// initialized.
WidgetAXManager* ax_manager() { return ax_manager_.get(); } void SaveWindowPlacementIfNeeded();
+ // Type of ways to ignore activation changes. + // Type of ways to ignore activation changes.
+ enum class DisableActivationChangeHandlingType { + enum class DisableActivationChangeHandlingType {
@@ -53,8 +53,8 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
protected: protected:
// Creates the RootView to be used within this Widget. Subclasses may override // Creates the RootView to be used within this Widget. Subclasses may override
// to create custom RootViews that do specialized event processing. // to create custom RootViews that do specialized event processing.
@@ -1494,13 +1507,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -1508,13 +1521,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
ui::ColorProviderKey GetColorProviderKey() const override; void set_widget_closed() { widget_closed_ = true; }
private: private:
- // Type of ways to ignore activation changes. - // Type of ways to ignore activation changes.
@@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
class PaintAsActiveLockImpl; class PaintAsActiveLockImpl;
friend class ButtonTest; friend class ButtonTest;
@@ -1511,11 +1517,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, @@ -1525,11 +1531,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
friend class ui_devtools::BubbleLocking; friend class ui_devtools::BubbleLocking;
friend void DisableActivationChangeHandlingForTests(); friend void DisableActivationChangeHandlingForTests();
+39 -15
View File
@@ -6,20 +6,33 @@ In site settings added ability to block all popups per site
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../settings/site_settings/popups_page.html | 2 +
.../tab_under_navigation_throttle.cc | 11 +- .../tab_under_navigation_throttle.cc | 11 +-
.../android/popup_blocked_message_delegate.cc | 20 +++- .../android/popup_blocked_message_delegate.cc | 20 +++-
.../android/popup_blocked_message_delegate.h | 1 + .../android/popup_blocked_message_delegate.h | 1 +
components/blocked_content/popup_blocker.cc | 3 + components/blocked_content/popup_blocker.cc | 3 +
components/blocked_content_strings.grdp | 3 + components/blocked_content_strings.grdp | 3 +
.../impl/BromitePopupContentSetting.java | 106 ++++++++++++++++++ .../impl/BromitePopupContentSetting.java | 106 ++++++++++++++++++
.../bromite_content_settings/popups.grdp | 12 ++ .../bromite_content_settings/popups.grdp | 18 +++
.../bromite_content_settings/popups.inc | 8 ++ .../bromite_content_settings/popups.inc | 13 +++
.../core/browser/content_settings_registry.cc | 2 +- .../core/browser/content_settings_registry.cc | 2 +-
9 files changed, 160 insertions(+), 6 deletions(-) 10 files changed, 173 insertions(+), 6 deletions(-)
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp
create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc
diff --git a/chrome/browser/resources/settings/site_settings/popups_page.html b/chrome/browser/resources/settings/site_settings/popups_page.html
--- a/chrome/browser/resources/settings/site_settings/popups_page.html
+++ b/chrome/browser/resources/settings/site_settings/popups_page.html
@@ -10,6 +10,8 @@
category="[[contentSettingsTypesEnum_.POPUPS]]"
allow-option-label="$i18n{siteSettingsPopupsAllowed}"
allow-option-icon="cr:open-in-new"
+ ask-option-label="$i18n{brSiteSettingspopupsAsk}"
+ ask-option-icon="privacy:open-in-new-off"
block-option-label="$i18n{siteSettingsPopupsBlocked}"
block-option-icon="privacy:open-in-new-off">
</settings-category-default-radio-group>
diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
--- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc --- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
+++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc +++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
@@ -160,7 +173,7 @@ new file mode 100644
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
+import org.chromium.components.content_settings.ContentSettingValues; +import org.chromium.components.content_settings.ContentSetting;
+import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.content_public.browser.BrowserContextHandle;
+ +
@@ -173,8 +186,8 @@ new file mode 100644
+public class BromitePopupContentSetting extends BromiteCustomContentSetting { +public class BromitePopupContentSetting extends BromiteCustomContentSetting {
+ public BromitePopupContentSetting() { + public BromitePopupContentSetting() {
+ super(/*contentSettingsType*/ ContentSettingsType.POPUPS, + super(/*contentSettingsType*/ ContentSettingsType.POPUPS,
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, + /*defaultEnabledValue*/ ContentSetting.ALLOW,
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, + /*defaultDisabledValue*/ ContentSetting.BLOCK,
+ /*allowException*/ true, + /*allowException*/ true,
+ /*preferenceKey*/ "popups", + /*preferenceKey*/ "popups",
+ /*profilePrefKey*/ "popups"); + /*profilePrefKey*/ "popups");
@@ -193,13 +206,13 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { + public int getCategorySummary(@Nullable @ContentSetting int value) {
+ switch (value) { + switch (value) {
+ case ContentSettingValues.ALLOW: + case ContentSetting.ALLOW:
+ return R.string.website_settings_category_popup_allowed; + return R.string.website_settings_category_popup_allowed;
+ case ContentSettingValues.BLOCK: + case ContentSetting.BLOCK:
+ return R.string.website_settings_category_popup_blocked; + return R.string.website_settings_category_popup_blocked;
+ case ContentSettingValues.ASK: + case ContentSetting.ASK:
+ return R.string.website_settings_category_popup_block_all; + return R.string.website_settings_category_popup_block_all;
+ default: + default:
+ return 0; + return 0;
@@ -236,17 +249,23 @@ new file mode 100644
+ } + }
+ +
+ @Override + @Override
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { + public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) {
+ return ContentSettingValues.ALLOW != value; + return ContentSetting.ALLOW != value;
+ } + }
+} +}
diff --git a/components/browser_ui/strings/bromite_content_settings/popups.grdp b/components/browser_ui/strings/bromite_content_settings/popups.grdp diff --git a/components/browser_ui/strings/bromite_content_settings/popups.grdp b/components/browser_ui/strings/bromite_content_settings/popups.grdp
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/components/browser_ui/strings/bromite_content_settings/popups.grdp +++ b/components/browser_ui/strings/bromite_content_settings/popups.grdp
@@ -0,0 +1,12 @@ @@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?>
+<grit-part> +<grit-part>
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP" desc="" formatter_data="android_java">
+ Block sites from showing pop-ups and redirects
+ </message>
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_DESCRIPTION" desc="" formatter_data="android_java">
+ When on, sites can use pop-ups and redirects. When off, sites cant use pop-ups and redirects.
+ </message>
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL" desc="" formatter_data="android_java"> + <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL" desc="" formatter_data="android_java">
+ Block all popups + Block all popups
+ </message> + </message>
@@ -261,15 +280,20 @@ diff --git a/components/content_settings/core/browser/bromite_content_settings/p
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/components/content_settings/core/browser/bromite_content_settings/popups.inc +++ b/components/content_settings/core/browser/bromite_content_settings/popups.inc
@@ -0,0 +1,8 @@ @@ -0,0 +1,13 @@
+ content_settings::WebsiteSettingsRegistry::GetInstance() + content_settings::WebsiteSettingsRegistry::GetInstance()
+ ->GetMutable(ContentSettingsType::POPUPS) + ->GetMutable(ContentSettingsType::POPUPS)
+ ->set_show_into_info_page() + ->set_show_into_info_page()
+ .set_desktop_ui() + .set_desktop_ui()
+ .set_is_renderer_content_setting() + .set_is_renderer_content_setting()
+ .set_title_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP)
+ .set_description_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_DESCRIPTION)
+ .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED) + .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED)
+ .set_ask_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL) + .set_ask_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL)
+ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED); + .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED)
+ .set_allowed_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED)
+ .set_blocked_exceptions_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED)
+ .set_mid_sentence_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP);
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc
+102 -101
View File
@@ -46,10 +46,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/updater/extension_downloader.h | 1 - .../browser/updater/extension_downloader.h | 1 -
.../browser/updater/manifest_fetch_data.cc | 8 +-- .../browser/updater/manifest_fetch_data.cc | 8 +--
.../browser/updater/safe_manifest_parser.cc | 1 + .../browser/updater/safe_manifest_parser.cc | 1 +
extensions/common/extension_features.cc | 14 +++++ extensions/common/extension_features.cc | 7 +++
extensions/common/extension_features.h | 2 + extensions/common/extension_features.h | 10 +++
.../definitions/developer_private.d.ts | 2 + .../definitions/developer_private.d.ts | 2 +
36 files changed, 253 insertions(+), 107 deletions(-) 36 files changed, 254 insertions(+), 107 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
@@ -71,9 +71,9 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -25,6 +25,12 @@ @@ -28,6 +28,12 @@
#include "extensions/browser/app_window/app_window_registry.h"
#endif // BUILDFLAG(ENABLE_EXTENSIONS) static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
+#include "chrome/browser/about_flags.h" +#include "chrome/browser/about_flags.h"
+#include "chrome/browser/browser_process.h" +#include "chrome/browser/browser_process.h"
@@ -84,7 +84,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
namespace extensions { namespace extensions {
namespace developer = api::developer_private; namespace developer = api::developer_private;
@@ -66,6 +72,28 @@ DeveloperPrivateAPI::GetFactoryInstance() { @@ -69,6 +75,28 @@ DeveloperPrivateAPI::GetFactoryInstance() {
return g_developer_private_api_factory.Pointer(); return g_developer_private_api_factory.Pointer();
} }
@@ -116,7 +116,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.h --- a/chrome/browser/extensions/api/developer_private/developer_private_api.h
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h
@@ -34,6 +34,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, @@ -37,6 +37,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI,
static BrowserContextKeyedAPIFactory<DeveloperPrivateAPI>* static BrowserContextKeyedAPIFactory<DeveloperPrivateAPI>*
GetFactoryInstance(); GetFactoryInstance();
@@ -129,7 +129,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
@@ -354,6 +354,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { @@ -375,6 +375,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
ExtensionUpdater::CheckParams params; ExtensionUpdater::CheckParams params;
params.fetch_priority = DownloadFetchPriority::kForeground; params.fetch_priority = DownloadFetchPriority::kForeground;
params.install_immediately = true; params.install_immediately = true;
@@ -137,7 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
params.callback = params.callback =
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
updater->CheckNow(std::move(params)); updater->CheckNow(std::move(params));
@@ -490,7 +491,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { @@ -511,7 +512,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
const developer::ProfileConfigurationUpdate& update = params->update; const developer::ProfileConfigurationUpdate& update = params->update;
@@ -146,7 +146,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
Profile* profile = Profile::FromBrowserContext(browser_context()); Profile* profile = Profile::FromBrowserContext(browser_context());
CHECK(profile); CHECK(profile);
if (supervised_user::AreExtensionsPermissionsEnabled(profile)) { if (supervised_user::AreExtensionsPermissionsEnabled(profile)) {
@@ -504,6 +505,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { @@ -525,6 +526,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
->MarkNoticeAsAcknowledgedGlobally(); ->MarkNoticeAsAcknowledgedGlobally();
} }
@@ -169,7 +169,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "components/policy/core/common/policy_pref_names.h" #include "components/policy/core/common/policy_pref_names.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
@@ -39,6 +40,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) { @@ -42,6 +43,8 @@ developer::ProfileInfo CreateProfileInfo(Profile* profile) {
ManifestV2ExperimentManager::Get(profile) ManifestV2ExperimentManager::Get(profile)
->DidUserAcknowledgeNoticeGlobally(); ->DidUserAcknowledgeNoticeGlobally();
@@ -181,15 +181,15 @@ diff --git a/chrome/browser/extensions/api/developer_private/profile_info_genera
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
@@ -63,6 +63,7 @@ @@ -68,6 +68,7 @@
#include "extensions/browser/extension_util.h" #include "extensions/browser/scoped_active_install.h"
#include "extensions/browser/extensions_browser_client.h" #include "extensions/buildflags/buildflags.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
+#include "extensions/common/extension_features.h" +#include "extensions/common/extension_features.h"
#include "extensions/common/manifest.h" #include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/permissions_parser.h" #include "extensions/common/manifest_handlers/permissions_parser.h"
@@ -224,6 +225,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; @@ -242,6 +243,8 @@ Profile* GetProfileInIncognito(Profile* profile) {
// there was previously stored data, or an empty string otherwise. The Set will // there was previously stored data, or an empty string otherwise. The Set will
// overwrite any previous login. // overwrite any previous login.
std::string GetWebstoreLogin(Profile* profile) { std::string GetWebstoreLogin(Profile* profile) {
@@ -198,7 +198,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) { if (profile->GetPrefs()->HasPrefPath(kWebstoreLogin)) {
return profile->GetPrefs()->GetString(kWebstoreLogin); return profile->GetPrefs()->GetString(kWebstoreLogin);
} }
@@ -231,11 +234,15 @@ std::string GetWebstoreLogin(Profile* profile) { @@ -249,11 +252,15 @@ std::string GetWebstoreLogin(Profile* profile) {
} }
void SetWebstoreLogin(Profile* profile, const std::string& login) { void SetWebstoreLogin(Profile* profile, const std::string& login) {
@@ -214,7 +214,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
switch (status) { switch (status) {
case kCanRequest: case kCanRequest:
return api::webstore_private::ExtensionInstallStatus::kCanRequest; return api::webstore_private::ExtensionInstallStatus::kCanRequest;
@@ -1158,7 +1165,8 @@ ExtensionFunction::ResponseAction @@ -1177,7 +1184,8 @@ ExtensionFunction::ResponseAction
WebstorePrivateIsInIncognitoModeFunction::Run() { WebstorePrivateIsInIncognitoModeFunction::Run() {
Profile* profile = Profile::FromBrowserContext(browser_context()); Profile* profile = Profile::FromBrowserContext(browser_context());
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
@@ -224,7 +224,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
} }
WebstorePrivateIsPendingCustodianApprovalFunction:: WebstorePrivateIsPendingCustodianApprovalFunction::
@@ -1254,11 +1262,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { @@ -1274,11 +1282,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
recent_navigations_to_collect); recent_navigations_to_collect);
@@ -243,7 +243,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc
--- a/chrome/browser/extensions/chrome_extension_system.cc --- a/chrome/browser/extensions/chrome_extension_system.cc
+++ b/chrome/browser/extensions/chrome_extension_system.cc +++ b/chrome/browser/extensions/chrome_extension_system.cc
@@ -92,6 +92,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing( @@ -96,6 +96,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
Profile* profile, Profile* profile,
const Extension* extension, const Extension* extension,
UninstallReason reason) { UninstallReason reason) {
@@ -254,7 +254,7 @@ diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/brows
diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/browser/extensions/cws_info_service_factory.cc diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/browser/extensions/cws_info_service_factory.cc
--- a/chrome/browser/extensions/cws_info_service_factory.cc --- a/chrome/browser/extensions/cws_info_service_factory.cc
+++ b/chrome/browser/extensions/cws_info_service_factory.cc +++ b/chrome/browser/extensions/cws_info_service_factory.cc
@@ -47,7 +47,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory() @@ -50,7 +50,8 @@ CWSInfoServiceFactory::CWSInfoServiceFactory()
std::unique_ptr<KeyedService> std::unique_ptr<KeyedService>
CWSInfoServiceFactory::BuildServiceInstanceForBrowserContext( CWSInfoServiceFactory::BuildServiceInstanceForBrowserContext(
content::BrowserContext* context) const { content::BrowserContext* context) const {
@@ -267,7 +267,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
--- a/chrome/browser/extensions/extension_management.cc --- a/chrome/browser/extensions/extension_management.cc
+++ b/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc
@@ -424,6 +424,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( @@ -436,6 +436,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy(
const Extension* extension) { const Extension* extension) {
@@ -278,7 +278,7 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/
diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/browser/extensions/extension_safety_check_utils.cc diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/browser/extensions/extension_safety_check_utils.cc
--- a/chrome/browser/extensions/extension_safety_check_utils.cc --- a/chrome/browser/extensions/extension_safety_check_utils.cc
+++ b/chrome/browser/extensions/extension_safety_check_utils.cc +++ b/chrome/browser/extensions/extension_safety_check_utils.cc
@@ -240,8 +240,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper( @@ -243,8 +243,7 @@ developer::SafetyCheckWarningReason GetSafetyCheckWarningReasonHelper(
developer::SafetyCheckWarningReason acknowledged_reason = developer::SafetyCheckWarningReason acknowledged_reason =
GetPrefAcknowledgeSafetyCheckWarningReason(extension, GetPrefAcknowledgeSafetyCheckWarningReason(extension,
ExtensionPrefs::Get(profile)); ExtensionPrefs::Get(profile));
@@ -291,7 +291,7 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
--- a/chrome/browser/extensions/extension_service.cc --- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc
@@ -241,8 +241,6 @@ ExtensionService::ExtensionService( @@ -247,8 +247,6 @@ ExtensionService::ExtensionService(
UpgradeDetector::GetInstance()->AddObserver(this); UpgradeDetector::GetInstance()->AddObserver(this);
#endif #endif
@@ -300,7 +300,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext
ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this);
if (autoupdate_enabled) { if (autoupdate_enabled) {
@@ -757,7 +755,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { @@ -763,7 +761,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
// unpublished extensions should not be enabled. This update allows // unpublished extensions should not be enabled. This update allows
// unpublished extensions to be disabled sooner rather than waiting till the // unpublished extensions to be disabled sooner rather than waiting till the
// next regularly scheduled fetch. // next regularly scheduled fetch.
@@ -312,7 +312,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext
diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
--- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc --- a/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
+++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc +++ b/chrome/browser/extensions/updater/chrome_extension_downloader_factory.cc
@@ -50,7 +50,6 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory( @@ -53,7 +53,6 @@ ChromeExtensionDownloaderFactory::CreateForURLLoaderFactory(
manifest_query_params += "&testrequest=1"; manifest_query_params += "&testrequest=1";
} }
downloader->set_manifest_query_params(manifest_query_params); downloader->set_manifest_query_params(manifest_query_params);
@@ -323,7 +323,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
--- a/chrome/browser/extensions/updater/extension_updater.cc --- a/chrome/browser/extensions/updater/extension_updater.cc
+++ b/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -55,6 +55,7 @@ @@ -56,6 +56,7 @@
#include "extensions/common/constants.h" #include "extensions/common/constants.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
#include "extensions/common/extension_id.h" #include "extensions/common/extension_id.h"
@@ -331,7 +331,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
#include "extensions/common/extension_set.h" #include "extensions/common/extension_set.h"
#include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_updater_uma.h"
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
@@ -228,6 +229,10 @@ void ExtensionUpdater::Start() { @@ -229,6 +230,10 @@ void ExtensionUpdater::Start() {
DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(!weak_ptr_factory_.HasWeakPtrs());
DCHECK(registry_); DCHECK(registry_);
alive_ = true; alive_ = true;
@@ -341,8 +341,8 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
+ } + }
// Check soon, and set up the first delayed check. // Check soon, and set up the first delayed check.
if (!g_skip_scheduled_checks_for_tests) { if (!g_skip_scheduled_checks_for_tests) {
if (g_should_immediately_update) CheckSoon();
@@ -385,7 +390,8 @@ void ExtensionUpdater::AddToDownloader( @@ -380,7 +385,8 @@ void ExtensionUpdater::AddToDownloader(
const Extension& extension = **extension_iter; const Extension& extension = **extension_iter;
const ExtensionId& extension_id = extension.id(); const ExtensionId& extension_id = extension.id();
if (!Manifest::IsAutoUpdateableLocation(extension.location())) { if (!Manifest::IsAutoUpdateableLocation(extension.location())) {
@@ -352,7 +352,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue; continue;
} }
// An extension might be overwritten by policy, and have its update url // An extension might be overwritten by policy, and have its update url
@@ -399,7 +405,7 @@ void ExtensionUpdater::AddToDownloader( @@ -395,7 +401,7 @@ void ExtensionUpdater::AddToDownloader(
continue; continue;
} }
@@ -361,7 +361,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params->update_info[extension_id] = update_check_params->update_info[extension_id] =
GetExtensionUpdateData(extension_id); GetExtensionUpdateData(extension_id);
} else if (AddExtensionToDownloader(extension, request_id, } else if (AddExtensionToDownloader(extension, request_id,
@@ -436,6 +442,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( @@ -433,6 +439,12 @@ bool ExtensionUpdater::AddExtensionToDownloader(
} }
void ExtensionUpdater::CheckNow(CheckParams params) { void ExtensionUpdater::CheckNow(CheckParams params) {
@@ -374,16 +374,16 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
CHECK(enabled_); CHECK(enabled_);
if (params.ids.empty()) { if (params.ids.empty()) {
// Checking all extensions. Cancel pending DoCheckSoon() call if there's // Checking all extensions. Cancel pending DoCheckSoon() call if there's
@@ -445,7 +457,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { @@ -450,7 +462,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
int request_id = next_request_id_++; int request_id = next_request_id_++;
- VLOG(2) << "Starting update check " << request_id; - VLOG(2) << "Starting update check " << request_id;
+ LOG(INFO) << "Starting extensions update check id: " << request_id; + LOG(INFO) << "Starting extensions update check id: " << request_id;
if (params.ids.empty()) if (params.ids.empty()) {
NotifyStarted(); NotifyStarted();
}
@@ -513,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { @@ -519,7 +531,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
update_check_params.update_info[pending_id] = update_check_params.update_info[pending_id] =
GetExtensionUpdateData(pending_id); GetExtensionUpdateData(pending_id);
} else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) {
@@ -392,7 +392,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue; continue;
} }
// We have to mark high-priority extensions (such as policy-forced // We have to mark high-priority extensions (such as policy-forced
@@ -523,7 +535,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { @@ -529,7 +541,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
// See https://crbug.com/904600 and https://crbug.com/965686. // See https://crbug.com/904600 and https://crbug.com/965686.
const bool is_high_priority_extension_pending = const bool is_high_priority_extension_pending =
pending_extension_manager->HasHighPriorityPendingExtension(); pending_extension_manager->HasHighPriorityPendingExtension();
@@ -401,7 +401,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[pending_id] = update_check_params.update_info[pending_id] =
GetExtensionUpdateData(pending_id); GetExtensionUpdateData(pending_id);
update_check_params.update_info[pending_id].is_corrupt_reinstall = update_check_params.update_info[pending_id].is_corrupt_reinstall =
@@ -546,6 +558,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { @@ -552,6 +564,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
LOG(WARNING) << "Corrupt extension with id " << pending_id LOG(WARNING) << "Corrupt extension with id " << pending_id
<< " will be reinstalled with ExtensionDownloader."; << " will be reinstalled with ExtensionDownloader.";
} }
@@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
} else { } else {
InstallStageTracker::Get(profile_)->ReportFailure( InstallStageTracker::Get(profile_)->ReportFailure(
pending_id, pending_id,
@@ -558,13 +572,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { @@ -564,13 +578,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
AddToDownloader(&registry_->disabled_extensions(), pending_ids, request_id, AddToDownloader(&registry_->disabled_extensions(), pending_ids, request_id,
params.fetch_priority, &update_check_params); params.fetch_priority, &update_check_params);
ExtensionSet remotely_disabled_extensions; ExtensionSet remotely_disabled_extensions;
@@ -424,7 +424,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id, AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id,
params.fetch_priority, &update_check_params); params.fetch_priority, &update_check_params);
} else { } else {
@@ -572,7 +579,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { @@ -578,7 +585,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
const Extension* extension = const Extension* extension =
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
if (extension) { if (extension) {
@@ -433,7 +433,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[id] = GetExtensionUpdateData(id); update_check_params.update_info[id] = GetExtensionUpdateData(id);
} else if (AddExtensionToDownloader(*extension, request_id, } else if (AddExtensionToDownloader(*extension, request_id,
params.fetch_priority)) { params.fetch_priority)) {
@@ -716,7 +723,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( @@ -722,7 +729,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
file.extension_id, InstallStageTracker::Stage::INSTALLING); file.extension_id, InstallStageTracker::Stage::INSTALLING);
UpdatePingData(file.extension_id, ping); UpdatePingData(file.extension_id, ping);
@@ -442,7 +442,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
FetchedCRXFile fetched(file, file_ownership_passed, request_ids, FetchedCRXFile fetched(file, file_ownership_passed, request_ids,
std::move(callback)); std::move(callback));
@@ -727,6 +734,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( @@ -733,6 +740,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id,
DownloadPingData* ping_data) { DownloadPingData* ping_data) {
@@ -450,7 +450,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
DCHECK(alive_); DCHECK(alive_);
ping_data->rollcall_days = ping_data->rollcall_days =
CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id)); CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id));
@@ -839,7 +847,7 @@ bool ExtensionUpdater::CanUseUpdateService( @@ -852,7 +860,7 @@ bool ExtensionUpdater::CanUseUpdateService(
void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) {
std::set<int> request_ids; std::set<int> request_ids;
@@ -459,15 +459,15 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
<< crx_file.info.path.value(); << crx_file.info.path.value();
// The delegate is now responsible for cleaning up the temp file at // The delegate is now responsible for cleaning up the temp file at
@@ -1046,7 +1054,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { @@ -1061,7 +1069,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
InProgressCheck& request = requests_in_progress_[request_id]; if (!request.in_progress_ids.empty() || request.awaiting_update_service) {
if (!request.in_progress_ids.empty() || request.awaiting_update_service)
return; // This request is not done yet. return; // This request is not done yet.
}
- VLOG(2) << "Finished update check " << request_id; - VLOG(2) << "Finished update check " << request_id;
+ LOG(INFO) << "Finished update check id: " << request_id; + LOG(INFO) << "Finished update check id: " << request_id;
if (!request.callback.is_null()) if (!request.callback.is_null()) {
std::move(request.callback).Run(); std::move(request.callback).Run();
requests_in_progress_.erase(request_id); }
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
--- a/chrome/browser/extensions/updater/extension_updater.h --- a/chrome/browser/extensions/updater/extension_updater.h
+++ b/chrome/browser/extensions/updater/extension_updater.h +++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -480,7 +480,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow
// An extension update check can be originated by a user or by a scheduled // An extension update check can be originated by a user or by a scheduled
// task. When the value of |fetch_priority| is FOREGROUND, the update // task. When the value of |fetch_priority| is FOREGROUND, the update
// request was initiated by a user. // request was initiated by a user.
@@ -401,6 +403,8 @@ class ExtensionUpdater : public KeyedService, @@ -397,6 +399,8 @@ class ExtensionUpdater : public KeyedService,
base::TimeDelta frequency_; base::TimeDelta frequency_;
bool will_check_soon_ = false; bool will_check_soon_ = false;
@@ -492,7 +492,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/brow
diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc
--- a/chrome/browser/extensions/webstore_install_helper.cc --- a/chrome/browser/extensions/webstore_install_helper.cc
+++ b/chrome/browser/extensions/webstore_install_helper.cc +++ b/chrome/browser/extensions/webstore_install_helper.cc
@@ -46,7 +46,7 @@ void WebstoreInstallHelper::Start( @@ -49,7 +49,7 @@ void WebstoreInstallHelper::Start(
data_decoder::DataDecoder::ParseJsonIsolated( data_decoder::DataDecoder::ParseJsonIsolated(
manifest_, base::BindOnce(&WebstoreInstallHelper::OnJSONParsed, this)); manifest_, base::BindOnce(&WebstoreInstallHelper::OnJSONParsed, this));
@@ -504,7 +504,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
--- a/chrome/browser/extensions/webstore_installer.cc --- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc
@@ -591,7 +591,7 @@ void WebstoreInstaller::StartDownload( @@ -595,7 +595,7 @@ void WebstoreInstaller::StartDownload(
traffic_annotation)); traffic_annotation));
params->set_file_path(file); params->set_file_path(file);
params->set_initiator(render_frame_host->GetLastCommittedOrigin()); params->set_initiator(render_frame_host->GetLastCommittedOrigin());
@@ -556,7 +556,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts
--- a/chrome/browser/resources/extensions/service.ts --- a/chrome/browser/resources/extensions/service.ts
+++ b/chrome/browser/resources/extensions/service.ts +++ b/chrome/browser/resources/extensions/service.ts
@@ -320,6 +320,11 @@ export class Service implements ServiceInterface { @@ -356,6 +356,11 @@ export class Service implements ServiceInterface {
{inDeveloperMode: inDevMode}); {inDeveloperMode: inDevMode});
} }
@@ -689,7 +689,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
#include "chrome/browser/extensions/manifest_v2_experiment_manager.h" #include "chrome/browser/extensions/manifest_v2_experiment_manager.h"
#include "chrome/browser/extensions/mv2_experiment_stage.h" #include "chrome/browser/extensions/mv2_experiment_stage.h"
#include "chrome/browser/extensions/permissions_url_constants.h" #include "chrome/browser/extensions/permissions_url_constants.h"
@@ -380,6 +381,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, @@ -381,6 +382,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
{"itemSuspiciousInstallLearnMore", {"itemSuspiciousInstallLearnMore",
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
@@ -698,7 +698,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
@@ -464,6 +467,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, @@ -466,6 +469,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
"hostPermissionsLearnMoreLink", "hostPermissionsLearnMoreLink",
extension_permissions_constants::kRuntimeHostPermissionsHelpURL); extension_permissions_constants::kRuntimeHostPermissionsHelpURL);
source->AddBoolean(kInDevModeKey, in_dev_mode); source->AddBoolean(kInDevModeKey, in_dev_mode);
@@ -735,7 +735,7 @@ diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc
diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl
--- a/chrome/common/extensions/api/developer_private.idl --- a/chrome/common/extensions/api/developer_private.idl
+++ b/chrome/common/extensions/api/developer_private.idl +++ b/chrome/common/extensions/api/developer_private.idl
@@ -272,6 +272,7 @@ namespace developerPrivate { @@ -273,6 +273,7 @@ namespace developerPrivate {
boolean isIncognitoAvailable; boolean isIncognitoAvailable;
boolean isChildAccount; boolean isChildAccount;
boolean isMv2DeprecationNoticeDismissed; boolean isMv2DeprecationNoticeDismissed;
@@ -743,7 +743,7 @@ diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/
}; };
dictionary GetExtensionsInfoOptions { dictionary GetExtensionsInfoOptions {
@@ -295,6 +296,7 @@ namespace developerPrivate { @@ -296,6 +297,7 @@ namespace developerPrivate {
dictionary ProfileConfigurationUpdate { dictionary ProfileConfigurationUpdate {
boolean? inDeveloperMode; boolean? inDeveloperMode;
boolean? isMv2DeprecationNoticeDismissed; boolean? isMv2DeprecationNoticeDismissed;
@@ -764,7 +764,7 @@ diff --git a/components/update_client/update_query_params.cc b/components/update
GetProdIdString(prod), GetProdIdString(prod),
g_delegate ? g_delegate->GetExtraParams().c_str() : ""); g_delegate ? g_delegate->GetExtraParams().c_str() : "");
} }
@@ -120,7 +119,7 @@ const char* UpdateQueryParams::GetArch() { @@ -120,7 +119,7 @@ std::string_view UpdateQueryParams::GetArch() {
// static // static
std::string UpdateQueryParams::GetProdVersion() { std::string UpdateQueryParams::GetProdVersion() {
@@ -810,7 +810,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
#include "extensions/browser/api/extensions_api_client.h" #include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/api/management/management_api_constants.h" #include "extensions/browser/api/management/management_api_constants.h"
#include "extensions/browser/disable_reason.h" #include "extensions/browser/disable_reason.h"
@@ -41,6 +44,7 @@ @@ -42,6 +45,7 @@
#include "extensions/common/api/management.h" #include "extensions/common/api/management.h"
#include "extensions/common/error_utils.h" #include "extensions/common/error_utils.h"
#include "extensions/common/extension.h" #include "extensions/common/extension.h"
@@ -818,7 +818,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
#include "extensions/common/extension_id.h" #include "extensions/common/extension_id.h"
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
#include "extensions/common/icons/extension_icon_set.h" #include "extensions/common/icons/extension_icon_set.h"
@@ -92,6 +96,29 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) { @@ -104,6 +108,29 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
return warnings_list; return warnings_list;
} }
@@ -848,7 +848,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
std::vector<management::LaunchType> GetAvailableLaunchTypes( std::vector<management::LaunchType> GetAvailableLaunchTypes(
const Extension& extension) { const Extension& extension) {
std::vector<management::LaunchType> launch_type_list; std::vector<management::LaunchType> launch_type_list;
@@ -269,6 +296,8 @@ void AddExtensionInfo(const Extension* source_extension, @@ -281,6 +308,8 @@ void AddExtensionInfo(const Extension* source_extension,
const ExtensionSet& extensions, const ExtensionSet& extensions,
ExtensionInfoList* extension_list, ExtensionInfoList* extension_list,
content::BrowserContext* context) { content::BrowserContext* context) {
@@ -857,7 +857,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
for (ExtensionSet::const_iterator iter = extensions.begin(); for (ExtensionSet::const_iterator iter = extensions.begin();
iter != extensions.end(); ++iter) { iter != extensions.end(); ++iter) {
const Extension& extension = **iter; const Extension& extension = **iter;
@@ -311,10 +340,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() { @@ -323,10 +352,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
std::optional<management::Get::Params> params = std::optional<management::Get::Params> params =
management::Get::Params::Create(args()); management::Get::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params); EXTENSION_FUNCTION_VALIDATE(params);
@@ -869,7 +869,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!target_extension) { if (!target_extension) {
return RespondNow(Error(keys::kNoExtensionError, params->id)); return RespondNow(Error(keys::kNoExtensionError, params->id));
} }
@@ -335,8 +363,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() { @@ -347,8 +375,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
EXTENSION_FUNCTION_VALIDATE(params); EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension = const Extension* extension =
@@ -879,7 +879,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) { if (!extension) {
return RespondNow(Error(keys::kNoExtensionError, params->id)); return RespondNow(Error(keys::kNoExtensionError, params->id));
} }
@@ -404,8 +431,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() { @@ -419,8 +446,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
} }
const Extension* extension = const Extension* extension =
@@ -889,7 +889,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) { if (!extension) {
return RespondNow(Error(keys::kNoExtensionError, params->id)); return RespondNow(Error(keys::kNoExtensionError, params->id));
} }
@@ -547,8 +573,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() { @@ -562,8 +588,8 @@ void ManagementSetEnabledFunction::CheckPermissionsIncrease() {
// Extension could have been uninstalled externally while previous check was // Extension could have been uninstalled externally while previous check was
// happening. // happening.
const Extension* extension = const Extension* extension =
@@ -900,7 +900,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) { if (!extension) {
FinishEnable(Error(keys::kNoExtensionError)); FinishEnable(Error(keys::kNoExtensionError));
return; return;
@@ -591,8 +617,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() { @@ -606,8 +632,8 @@ void ManagementSetEnabledFunction::CheckManifestV2Deprecation() {
// Extension can be uninstalled externally while the previous check was // Extension can be uninstalled externally while the previous check was
// happening async. // happening async.
const Extension* extension = const Extension* extension =
@@ -911,7 +911,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) { if (!extension) {
FinishEnable(Error(keys::kNoExtensionError)); FinishEnable(Error(keys::kNoExtensionError));
return; return;
@@ -736,8 +762,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone( @@ -751,8 +777,8 @@ void ManagementSetEnabledFunction::OnSupervisedExtensionApprovalDone(
} }
const Extension* ManagementSetEnabledFunction::GetExtension() { const Extension* ManagementSetEnabledFunction::GetExtension() {
@@ -922,7 +922,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
} }
ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default; ManagementUninstallFunctionBase::ManagementUninstallFunctionBase() = default;
@@ -762,8 +788,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( @@ -777,8 +803,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
->GetDelegate(); ->GetDelegate();
target_extension_id_ = target_extension_id; target_extension_id_ = target_extension_id;
const Extension* target_extension = const Extension* target_extension =
@@ -932,7 +932,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
ExtensionRegistry::EVERYTHING); ExtensionRegistry::EVERYTHING);
if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) {
return RespondNow(Error(keys::kNoExtensionError, target_extension_id_)); return RespondNow(Error(keys::kNoExtensionError, target_extension_id_));
@@ -828,8 +853,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { @@ -843,8 +868,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
// The extension can be uninstalled in another window while the UI was // The extension can be uninstalled in another window while the UI was
// showing. Do nothing in that case. // showing. Do nothing in that case.
const Extension* target_extension = const Extension* target_extension =
@@ -942,7 +942,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
ExtensionRegistry::EVERYTHING); ExtensionRegistry::EVERYTHING);
std::string error; std::string error;
bool success = false; bool success = false;
@@ -909,8 +933,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { @@ -928,8 +952,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
management::CreateAppShortcut::Params::Create(args()); management::CreateAppShortcut::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params); EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension = const Extension* extension =
@@ -952,7 +952,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) { if (!extension) {
return RespondNow(Error( return RespondNow(Error(
ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id))); ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id)));
@@ -964,8 +987,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { @@ -983,8 +1006,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
management::SetLaunchType::Params::Create(args()); management::SetLaunchType::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params); EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension = const Extension* extension =
@@ -965,7 +965,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc
--- a/extensions/browser/updater/extension_downloader.cc --- a/extensions/browser/updater/extension_downloader.cc
+++ b/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc
@@ -494,8 +494,8 @@ void ExtensionDownloader::CreateManifestLoader() { @@ -485,8 +485,8 @@ void ExtensionDownloader::CreateManifestLoader() {
std::vector<std::string_view> id_vector(extension_ids.begin(), std::vector<std::string_view> id_vector(extension_ids.begin(),
extension_ids.end()); extension_ids.end());
std::string id_list = base::JoinString(id_vector, ","); std::string id_list = base::JoinString(id_vector, ",");
@@ -976,7 +976,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< (active_request->foreground_check() << (active_request->foreground_check()
? kUpdateInteractivityForeground ? kUpdateInteractivityForeground
: kUpdateInteractivityBackground); : kUpdateInteractivityBackground);
@@ -520,7 +520,7 @@ void ExtensionDownloader::CreateManifestLoader() { @@ -511,7 +511,7 @@ void ExtensionDownloader::CreateManifestLoader() {
destination: WEBSITE destination: WEBSITE
} }
policy { policy {
@@ -985,7 +985,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
cookies_store: "user" cookies_store: "user"
setting: setting:
"This feature cannot be disabled. It is only enabled when the user " "This feature cannot be disabled. It is only enabled when the user "
@@ -537,6 +537,7 @@ void ExtensionDownloader::CreateManifestLoader() { @@ -528,6 +528,7 @@ void ExtensionDownloader::CreateManifestLoader() {
auto resource_request = std::make_unique<network::ResourceRequest>(); auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = active_request->full_url(), resource_request->url = active_request->full_url(),
resource_request->load_flags = net::LOAD_DISABLE_CACHE; resource_request->load_flags = net::LOAD_DISABLE_CACHE;
@@ -993,7 +993,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) { if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) {
resource_request->priority = net::MEDIUM; resource_request->priority = net::MEDIUM;
@@ -545,10 +546,6 @@ void ExtensionDownloader::CreateManifestLoader() { @@ -536,10 +537,6 @@ void ExtensionDownloader::CreateManifestLoader() {
// Send traffic-management headers to the webstore, and omit credentials. // Send traffic-management headers to the webstore, and omit credentials.
// https://bugs.chromium.org/p/chromium/issues/detail?id=647516 // https://bugs.chromium.org/p/chromium/issues/detail?id=647516
if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) { if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) {
@@ -1004,7 +1004,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list); resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list);
resource_request->headers.SetHeader( resource_request->headers.SetHeader(
kUpdateUpdaterHeader, kUpdateUpdaterHeader,
@@ -833,20 +830,6 @@ void ExtensionDownloader::HandleManifestResults( @@ -824,20 +821,6 @@ void ExtensionDownloader::HandleManifestResults(
update.second->info); update.second->info);
} }
@@ -1025,7 +1025,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
ExtensionIdSet extension_ids_with_errors; ExtensionIdSet extension_ids_with_errors;
for (const auto& failure : failures) for (const auto& failure : failures)
extension_ids_with_errors.insert(failure.first.id); extension_ids_with_errors.insert(failure.first.id);
@@ -868,7 +851,7 @@ ExtensionDownloader::GetUpdateAvailability( @@ -859,7 +842,7 @@ ExtensionDownloader::GetUpdateAvailability(
// extensions that have already existed in the system. // extensions that have already existed in the system.
if (!delegate_->GetExtensionExistingVersion(extension_id, if (!delegate_->GetExtensionExistingVersion(extension_id,
&extension_version)) { &extension_version)) {
@@ -1034,7 +1034,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
return UpdateAvailability::kBadUpdateSpecification; return UpdateAvailability::kBadUpdateSpecification;
} }
VLOG(2) << extension_id << " is at '" << extension_version << "'"; VLOG(2) << extension_id << " is at '" << extension_version << "'";
@@ -879,11 +862,11 @@ ExtensionDownloader::GetUpdateAvailability( @@ -870,11 +853,11 @@ ExtensionDownloader::GetUpdateAvailability(
const std::string& update_version_str = update->version; const std::string& update_version_str = update->version;
if (VLOG_IS_ON(2)) { if (VLOG_IS_ON(2)) {
if (update_version_str.empty()) if (update_version_str.empty())
@@ -1048,7 +1048,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< " latest version is '" << update_version_str << "'"; << " latest version is '" << update_version_str << "'";
} }
@@ -893,21 +876,21 @@ ExtensionDownloader::GetUpdateAvailability( @@ -884,21 +867,21 @@ ExtensionDownloader::GetUpdateAvailability(
// we don't want it. // we don't want it.
if (update_version_str.empty()) { if (update_version_str.empty()) {
// If update manifest doesn't have version number => no update. // If update manifest doesn't have version number => no update.
@@ -1073,7 +1073,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< update_version_str << "'"; << update_version_str << "'";
bool can_rollback = bool can_rollback =
update_version.CompareTo(existing_version) < 0 && update_version.CompareTo(existing_version) < 0 &&
@@ -934,7 +917,9 @@ ExtensionDownloader::GetUpdateAvailability( @@ -925,7 +908,9 @@ ExtensionDownloader::GetUpdateAvailability(
} }
// Stop checking as soon as an update for |extension_id| is found. // Stop checking as soon as an update for |extension_id| is found.
@@ -1084,7 +1084,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
*update_result_out = const_cast<UpdateManifestResult*>(update); *update_result_out = const_cast<UpdateManifestResult*>(update);
return UpdateAvailability::kAvailable; return UpdateAvailability::kAvailable;
} }
@@ -1179,7 +1164,7 @@ void ExtensionDownloader::CreateExtensionLoader() { @@ -1170,7 +1155,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
int load_flags = net::LOAD_DISABLE_CACHE; int load_flags = net::LOAD_DISABLE_CACHE;
bool is_secure = fetch->url.SchemeIsCryptographic(); bool is_secure = fetch->url.SchemeIsCryptographic();
extension_loader_resource_request_->load_flags = load_flags; extension_loader_resource_request_->load_flags = load_flags;
@@ -1093,7 +1093,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
extension_loader_resource_request_->credentials_mode = extension_loader_resource_request_->credentials_mode =
network::mojom::CredentialsMode::kOmit; network::mojom::CredentialsMode::kOmit;
} else { } else {
@@ -1187,7 +1172,7 @@ void ExtensionDownloader::CreateExtensionLoader() { @@ -1178,7 +1163,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
net::SiteForCookies::FromUrl(fetch->url); net::SiteForCookies::FromUrl(fetch->url);
} }
@@ -1102,7 +1102,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
is_secure) { is_secure) {
if (access_token_.empty()) { if (access_token_.empty()) {
// We should try OAuth2, but we have no token cached. This // We should try OAuth2, but we have no token cached. This
@@ -1212,7 +1197,7 @@ void ExtensionDownloader::CreateExtensionLoader() { @@ -1201,7 +1186,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
base::StringPrintf("Bearer %s", access_token_.c_str())); base::StringPrintf("Bearer %s", access_token_.c_str()));
} }
@@ -1111,7 +1111,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
StartExtensionLoader(); StartExtensionLoader();
} }
@@ -1234,7 +1219,7 @@ void ExtensionDownloader::StartExtensionLoader() { @@ -1223,7 +1208,7 @@ void ExtensionDownloader::StartExtensionLoader() {
destination: WEBSITE destination: WEBSITE
} }
policy { policy {
@@ -1120,7 +1120,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
cookies_store: "user" cookies_store: "user"
setting: setting:
"This feature cannot be disabled. It is only enabled when the user " "This feature cannot be disabled. It is only enabled when the user "
@@ -1305,6 +1290,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { @@ -1294,6 +1279,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
RETRY_HISTOGRAM("CrxFetchSuccess", RETRY_HISTOGRAM("CrxFetchSuccess",
extensions_queue_.active_request_failure_count(), extensions_queue_.active_request_failure_count(),
url); url);
@@ -1128,7 +1128,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
std::unique_ptr<ExtensionFetch> fetch_data = std::unique_ptr<ExtensionFetch> fetch_data =
std::move(extensions_queue_.reset_active_request().fetch); std::move(extensions_queue_.reset_active_request().fetch);
delegate_->OnExtensionDownloadStageChanged( delegate_->OnExtensionDownloadStageChanged(
@@ -1325,7 +1311,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) { @@ -1314,7 +1300,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
} else { } else {
const std::set<int> request_ids = active_request.GetRequestIds(); const std::set<int> request_ids = active_request.GetRequestIds();
const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id]; const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id];
@@ -1137,7 +1137,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< "' response code:" << response_code; << "' response code:" << response_code;
if (ShouldRetryRequest(extension_loader_.get()) && if (ShouldRetryRequest(extension_loader_.get()) &&
extensions_queue_.active_request_failure_count() < kMaxRetries) { extensions_queue_.active_request_failure_count() < kMaxRetries) {
@@ -1419,6 +1405,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList( @@ -1408,6 +1394,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
bool ExtensionDownloader::IterateFetchCredentialsAfterFailure( bool ExtensionDownloader::IterateFetchCredentialsAfterFailure(
ExtensionFetch* fetch, ExtensionFetch* fetch,
int response_code) { int response_code) {
@@ -1201,21 +1201,14 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc
@@ -242,4 +242,18 @@ BASE_FEATURE(kAvoidCloneArgsOnExtensionFunctionDispatch, @@ -183,4 +183,11 @@ BASE_FEATURE(kEnableShouldShowPromotion, base::FEATURE_DISABLED_BY_DEFAULT);
"AvoidCloneArgsOnExtensionFunctionDispatch", BASE_FEATURE(kWebRequestPersistFilteredEvents,
base::FEATURE_DISABLED_BY_DEFAULT); base::FEATURE_ENABLED_BY_DEFAULT);
+// Activates the auto update of extensions.
+// the only data provided by default is the list of extensions.
+CROMITE_FEATURE(kEnableExtensionAutoupdate, +CROMITE_FEATURE(kEnableExtensionAutoupdate,
+ "EnableExtensionAutoupdate", + "EnableExtensionAutoupdate",
+ base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT);
+ +
+// Modifies "management" and "webstorePrivate" extension api
+// by not allowing access to the list of installed extensions
+// and reading or changing status.
+// Allows the installation of new extensions.
+// If active, exposes all features to the chrome web store like chromium.
+CROMITE_FEATURE(kEnableExtensionManagementToChromeStore, +CROMITE_FEATURE(kEnableExtensionManagementToChromeStore,
+ "EnableExtensionToChromeStore", + "EnableExtensionToChromeStore",
+ base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1223,11 +1216,19 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h --- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h +++ b/extensions/common/extension_features.h
@@ -271,6 +271,8 @@ BASE_DECLARE_FEATURE(kOptimizeServiceWorkerStartRequests); @@ -307,6 +307,16 @@ BASE_DECLARE_FEATURE(kWebRequestSecurityInfo);
// TODO(crbug.com/424432184): Clean up when experiment is complete. // browser startup).
BASE_DECLARE_FEATURE(kAvoidCloneArgsOnExtensionFunctionDispatch); BASE_DECLARE_FEATURE(kWebRequestPersistFilteredEvents);
+// Activates the auto update of extensions.
+// the only data provided by default is the list of extensions.
+BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); +BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
+
+// Modifies "management" and "webstorePrivate" extension api
+// by not allowing access to the list of installed extensions
+// and reading or changing status.
+// Allows the installation of new extensions.
+// If active, exposes all features to the chrome web store like chromium.
+BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore); +BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore);
} // namespace extensions_features } // namespace extensions_features
@@ -1235,7 +1236,7 @@ diff --git a/extensions/common/extension_features.h b/extensions/common/extensio
diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescript/definitions/developer_private.d.ts diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescript/definitions/developer_private.d.ts
--- a/tools/typescript/definitions/developer_private.d.ts --- a/tools/typescript/definitions/developer_private.d.ts
+++ b/tools/typescript/definitions/developer_private.d.ts +++ b/tools/typescript/definitions/developer_private.d.ts
@@ -264,6 +264,7 @@ declare global { @@ -265,6 +265,7 @@ declare global {
isIncognitoAvailable: boolean; isIncognitoAvailable: boolean;
isChildAccount: boolean; isChildAccount: boolean;
isMv2DeprecationNoticeDismissed: boolean; isMv2DeprecationNoticeDismissed: boolean;
@@ -1243,7 +1244,7 @@ diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescr
} }
export interface ExtensionConfigurationUpdate { export interface ExtensionConfigurationUpdate {
@@ -281,6 +282,7 @@ declare global { @@ -282,6 +283,7 @@ declare global {
export interface ProfileConfigurationUpdate { export interface ProfileConfigurationUpdate {
inDeveloperMode?: boolean; inDeveloperMode?: boolean;
isMv2DeprecationNoticeDismissed?: boolean; isMv2DeprecationNoticeDismissed?: boolean;
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/preflight_cache.cc diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/preflight_cache.cc
--- a/services/network/cors/preflight_cache.cc --- a/services/network/cors/preflight_cache.cc
+++ b/services/network/cors/preflight_cache.cc +++ b/services/network/cors/preflight_cache.cc
@@ -204,6 +204,10 @@ void PreflightCache::MayPurgeForTesting(size_t max_entries, size_t purge_unit) { @@ -197,6 +197,10 @@ void PreflightCache::MayPurgeForTesting(size_t max_entries, size_t purge_unit) {
MayPurge(max_entries, purge_unit); MayPurge(max_entries, purge_unit);
} }
@@ -29,7 +29,7 @@ diff --git a/services/network/cors/preflight_cache.cc b/services/network/cors/pr
diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/preflight_cache.h diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/preflight_cache.h
--- a/services/network/cors/preflight_cache.h --- a/services/network/cors/preflight_cache.h
+++ b/services/network/cors/preflight_cache.h +++ b/services/network/cors/preflight_cache.h
@@ -78,6 +78,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightCache final { @@ -75,6 +75,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightCache final {
// `max_entries` for testing. // `max_entries` for testing.
void MayPurgeForTesting(size_t max_entries, size_t purge_unit); void MayPurgeForTesting(size_t max_entries, size_t purge_unit);
@@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc
--- a/services/network/cors/preflight_controller.cc --- a/services/network/cors/preflight_controller.cc
+++ b/services/network/cors/preflight_controller.cc +++ b/services/network/cors/preflight_controller.cc
@@ -762,6 +762,10 @@ void PreflightController::ClearCorsPreflightCache( @@ -631,6 +631,10 @@ void PreflightController::ClearCorsPreflightCache(
cache_.ClearCache(std::move(url_filter)); cache_.ClearCache(std::move(url_filter));
} }
@@ -55,9 +55,9 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co
diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h
--- a/services/network/cors/preflight_controller.h --- a/services/network/cors/preflight_controller.h
+++ b/services/network/cors/preflight_controller.h +++ b/services/network/cors/preflight_controller.h
@@ -151,6 +151,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final { @@ -117,6 +117,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
url_loader_network_service_observer, mojo::PendingRemote<mojom::URLLoaderNetworkServiceObserver>
const PreflightMode& preflight_mode); url_loader_network_service_observer);
+ void ClearCache(); + void ClearCache();
+ +
@@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
diff --git a/services/network/network_context.cc b/services/network/network_context.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc --- a/services/network/network_context.cc
+++ b/services/network/network_context.cc +++ b/services/network/network_context.cc
@@ -1374,6 +1374,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, @@ -1368,6 +1368,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
base::Time end_time, base::Time end_time,
mojom::ClearDataFilterPtr filter, mojom::ClearDataFilterPtr filter,
ClearHttpCacheCallback callback) { ClearHttpCacheCallback callback) {
+108 -80
View File
@@ -7,26 +7,61 @@ Use Google Chrome branding for client hints
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
components/embedder_support/user_agent_utils.cc | 4 +--- .../SupportLibWebViewChromiumFactory.java | 2 +-
content/browser/client_hints/client_hints.cc | 15 ++++++++++----- components/client_hints/browser/client_hints.cc | 5 +++--
.../browser/loader/navigation_url_loader_impl.cc | 5 +++++ components/embedder_support/user_agent_utils.cc | 5 ++---
.../about_flags_cc/Client-hints-overrides.inc | 9 +++++++++ content/browser/client_hints/client_hints.cc | 17 +++++++++++++++--
.../common/features_cc/Client-hints-overrides.inc | 1 + .../about_flags_cc/Client-hints-overrides.inc | 9 +++++++++
.../cpp/features_cc/Client-hints-overrides.inc | 1 + .../features_cc/Client-hints-overrides.inc | 1 +
net/http/http_network_transaction.cc | 1 + .../cpp/features_cc/Client-hints-overrides.inc | 1 +
services/network/public/cpp/client_hints.cc | 1 + net/http/http_network_transaction.cc | 1 +
.../blink/common/client_hints/client_hints.cc | 6 ++++-- services/network/public/cpp/client_hints.cc | 2 +-
.../common/client_hints/enabled_client_hints.cc | 6 ++++++ .../blink/common/client_hints/client_hints.cc | 6 ++++--
.../blink/renderer/core/frame/navigator_ua.idl | 4 +++- .../common/client_hints/enabled_client_hints.cc | 8 ++++++++
.../renderer/core/frame/navigator_ua_data.cc | 1 + .../blink/renderer/core/frame/navigator_ua.idl | 4 +++-
.../renderer/core/frame/navigator_ua_data.idl | 5 ++++- .../renderer/core/frame/navigator_ua_data.cc | 1 +
.../renderer/core/loader/frame_fetch_context.cc | 4 +++- .../renderer/core/frame/navigator_ua_data.idl | 5 ++++-
.../platform/runtime_enabled_features.json5 | 8 ++++++-- .../renderer/core/loader/frame_fetch_context.cc | 4 +++-
15 files changed, 56 insertions(+), 15 deletions(-) .../platform/runtime_enabled_features.json5 | 8 ++++++--
16 files changed, 63 insertions(+), 16 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc
create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
diff --git a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
--- a/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
+++ b/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibWebViewChromiumFactory.java
@@ -95,7 +95,7 @@ public class SupportLibWebViewChromiumFactory implements WebViewProviderFactoryB
Features.GET_COOKIE_INFO,
Features.WEB_MESSAGE_ARRAY_BUFFER,
Features.IMAGE_DRAG_DROP,
- Features.USER_AGENT_METADATA,
+ // Features.USER_AGENT_METADATA,
Features.MULTI_PROFILE,
Features.ATTRIBUTION_BEHAVIOR,
Features.WEBVIEW_MEDIA_INTEGRITY_API_STATUS,
diff --git a/components/client_hints/browser/client_hints.cc b/components/client_hints/browser/client_hints.cc
--- a/components/client_hints/browser/client_hints.cc
+++ b/components/client_hints/browser/client_hints.cc
@@ -35,7 +35,7 @@ ParseInitializeClientHintsStorage() {
auto results =
base::flat_map<url::Origin,
std::vector<network::mojom::WebClientHintsType>>();
-
+ if ((true)) return results;
std::string raw_client_hint_json =
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kInitializeClientHintsStorage);
@@ -200,7 +200,8 @@ void ClientHints::PersistClientHints(
// TODO(tbansal): crbug.com/735518. Disable updates to client hints settings
// when cookies are disabled for |primary_origin|.
content_settings::ContentSettingConstraints constraints;
- constraints.set_session_model(content_settings::mojom::SessionModel::DURABLE);
+ constraints.set_session_model(content_settings::mojom::SessionModel::USER_SESSION);
+ constraints.set_lifetime(base::Minutes(1));
settings_map_->SetWebsiteSettingDefaultScope(
primary_url, GURL(), ContentSettingsType::CLIENT_HINTS,
base::Value(std::move(client_hints_dictionary)), constraints);
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc
@@ -41,10 +76,18 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
std::string brand_version = std::string brand_version =
output_version_type == blink::UserAgentBrandVersionType::kFullVersion output_version_type == blink::UserAgentBrandVersionType::kFullVersion
@@ -695,6 +693,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) {
}
// High entropy client hints.
+ if ((true)) return metadata;
metadata.brand_full_version_list =
GetUserAgentBrandFullVersionListInternal(std::nullopt);
metadata.full_version = std::string(version_info::GetVersionNumber());
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
--- a/content/browser/client_hints/client_hints.cc --- a/content/browser/client_hints/client_hints.cc
+++ b/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc
@@ -57,6 +57,7 @@ @@ -58,6 +58,7 @@
#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/page/page_zoom.h" #include "third_party/blink/public/common/page/page_zoom.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
@@ -52,56 +95,38 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie
#include "ui/display/display.h" #include "ui/display/display.h"
#include "ui/display/screen.h" #include "ui/display/screen.h"
#include "url/origin.h" #include "url/origin.h"
@@ -703,7 +704,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( @@ -602,10 +603,21 @@ bool IsClientHintEnabled(const ClientHintsExtendedData& data,
// value, disable them. This overwrites previous decision from UI.
disable_due_to_custom_ua = !ua_metadata.has_value(); bool IsClientHintAllowed(const ClientHintsExtendedData& data,
} WebClientHintsType type) {
-
+ if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) + if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled())
+ disable_due_to_custom_ua = true; + return false;
if (!disable_due_to_custom_ua) { +
if (!ua_metadata.has_value()) + bool allowed = false;
ua_metadata = delegate->GetUserAgentMetadata(); + if (type == WebClientHintsType::kUA ||
@@ -885,10 +887,12 @@ void AddRequestClientHintsHeaders( + type == WebClientHintsType::kUAMobile ||
AddEctHeader(headers, network_quality_tracker, url); + type == WebClientHintsType::kUAPlatform ||
} + type == WebClientHintsType::kUAModel ||
+ type == WebClientHintsType::kUAPlatformVersion) {
- UpdateNavigationRequestClientUaHeadersImpl( + allowed = true;
- delegate, is_ua_override_on, frame_tree_node,
- ClientUaHeaderCallType::kDuringCreation, headers, container_policy,
- request_url, data);
+ if (blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) {
+ UpdateNavigationRequestClientUaHeadersImpl(
+ delegate, is_ua_override_on, frame_tree_node,
+ ClientUaHeaderCallType::kDuringCreation, headers, container_policy,
+ request_url, data);
+ } + }
if (data.is_outermost_main_frame) {
if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { - return true;
AddPrefersColorSchemeHeader(headers, frame_tree_node); + return allowed;
@@ -969,6 +973,7 @@ ParseAndPersistAcceptCHForNavigation( }
BrowserContext* context, - return (data.permissions_policy->IsFeatureEnabledForOrigin(
ClientHintsControllerDelegate* delegate, + return ((false)) && (data.permissions_policy->IsFeatureEnabledForOrigin(
FrameTreeNode* frame_tree_node) { network::GetClientHintToPolicyFeatureMap().at(type),
+ if ((true)) return std::nullopt; data.resource_origin));
DCHECK_CURRENTLY_ON(BrowserThread::UI); }
DCHECK(context); @@ -630,6 +642,7 @@ bool IsJavascriptEnabled(FrameTreeNode* frame_tree_node) {
DCHECK(parsed_headers); void UpdateIFramePermissionsPolicyWithDelegationSupportForClientHints(
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc ClientHintsExtendedData& data,
--- a/content/browser/loader/navigation_url_loader_impl.cc const network::ParsedPermissionsPolicy& container_policy) {
+++ b/content/browser/loader/navigation_url_loader_impl.cc + if ((true)) return;
@@ -1674,6 +1674,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( if (container_policy.empty()) {
return; return;
} }
+ if (!base::FeatureList::IsEnabled(network::features::kAcceptCHFrame)) {
+ std::move(callback).Run(net::OK);
+ return;
+ }
+
LogAcceptCHFrameStatus(AcceptCHFrameRestart::kFramePresent);
// Given that this is happening in the middle of navigation, there should
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc b/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc diff --git a/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc b/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@@ -121,17 +146,17 @@ new file mode 100644
--- /dev/null --- /dev/null
+++ b/cromite_flags/content/common/features_cc/Client-hints-overrides.inc +++ b/cromite_flags/content/common/features_cc/Client-hints-overrides.inc
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kCriticalClientHint); +SET_CROMITE_FEATURE_ENABLED(kCriticalClientHint);
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc diff --git a/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc +++ b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kAcceptCHFrame); +SET_CROMITE_FEATURE_ENABLED(kAcceptCHFrame);
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
--- a/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc
@@ -111,6 +111,7 @@ const size_t kMaxRestarts = 32; @@ -113,6 +113,7 @@ const size_t kMaxRestarts = 32;
// Returns true when Early Hints are allowed on the given protocol. // Returns true when Early Hints are allowed on the given protocol.
bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) {
@@ -142,11 +167,12 @@ diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transa
diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc
--- a/services/network/public/cpp/client_hints.cc --- a/services/network/public/cpp/client_hints.cc
+++ b/services/network/public/cpp/client_hints.cc +++ b/services/network/public/cpp/client_hints.cc
@@ -112,6 +112,7 @@ const DecodeMap& GetDecodeMap() { @@ -111,7 +111,7 @@ const DecodeMap& GetDecodeMap() {
} // namespace
std::optional<std::vector<network::mojom::WebClientHintsType>> std::optional<std::vector<network::mojom::WebClientHintsType>>
ParseClientHintsHeader(const std::string& header) { -ParseClientHintsHeader(const std::string& header) {
+ if ((true)) return std::nullopt; +ParseClientHintsHeader(const std::string& header) { // Parse Client Hints Header
// Accept-CH is an sh-list of tokens; see: // Accept-CH is an sh-list of tokens; see:
// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1 // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
std::optional<net::structured_headers::List> maybe_list = std::optional<net::structured_headers::List> maybe_list =
@@ -179,13 +205,15 @@ diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party
diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/third_party/blink/common/client_hints/enabled_client_hints.cc diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/third_party/blink/common/client_hints/enabled_client_hints.cc
--- a/third_party/blink/common/client_hints/enabled_client_hints.cc --- a/third_party/blink/common/client_hints/enabled_client_hints.cc
+++ b/third_party/blink/common/client_hints/enabled_client_hints.cc +++ b/third_party/blink/common/client_hints/enabled_client_hints.cc
@@ -15,6 +15,12 @@ namespace { @@ -15,6 +15,14 @@ namespace {
using ::network::mojom::WebClientHintsType; using ::network::mojom::WebClientHintsType;
bool IsDisabledByFeature(const WebClientHintsType type) { bool IsDisabledByFeature(const WebClientHintsType type) {
+ if (type == WebClientHintsType::kUA || + if (type == WebClientHintsType::kUA ||
+ type == WebClientHintsType::kUAMobile || + type == WebClientHintsType::kUAMobile ||
+ type == WebClientHintsType::kUAPlatform) { + type == WebClientHintsType::kUAPlatform ||
+ type == WebClientHintsType::kUAModel ||
+ type == WebClientHintsType::kUAPlatformVersion) {
+ return false; + return false;
+ } + }
+ if ((true)) return true; + if ((true)) return true;
@@ -208,7 +236,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua.idl b/third_part
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc --- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc +++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
@@ -186,6 +186,7 @@ const String& NavigatorUAData::platform() const { @@ -114,6 +114,7 @@ const String& NavigatorUAData::platform() const {
} }
bool AllowedToCollectHighEntropyValues(ExecutionContext* execution_context) { bool AllowedToCollectHighEntropyValues(ExecutionContext* execution_context) {
@@ -228,13 +256,13 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third
+ RuntimeEnabled=UserAgentClientHint, + RuntimeEnabled=UserAgentClientHint,
+ Exposed=(Window,Worker) + Exposed=(Window,Worker)
+] interface NavigatorUAData { +] interface NavigatorUAData {
[HighEntropy, MeasureAs=NavigatorUAData_Brands] readonly attribute FrozenArray<NavigatorUABrandVersion> brands; [MeasureAs=NavigatorUAData_Brands] readonly attribute FrozenArray<NavigatorUABrandVersion> brands;
[HighEntropy=Direct, MeasureAs=NavigatorUAData_Mobile] readonly attribute boolean mobile; [MeasureAs=NavigatorUAData_Mobile] readonly attribute boolean mobile;
[HighEntropy=Direct, MeasureAs=NavigatorUAData_Platform] readonly attribute DOMString platform; [MeasureAs=NavigatorUAData_Platform] readonly attribute DOMString platform;
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -227,6 +227,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, @@ -231,6 +231,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy,
bool is_1p_origin, bool is_1p_origin,
network::mojom::blink::WebClientHintsType type, network::mojom::blink::WebClientHintsType type,
const ClientHintsPreferences& hints_preferences) { const ClientHintsPreferences& hints_preferences) {
@@ -243,7 +271,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
// For subresource requests, sending the hint in the fetch request based on // For subresource requests, sending the hint in the fetch request based on
// the permissions policy. // the permissions policy.
if (!policy.IsFeatureEnabledForOrigin( if (!policy.IsFeatureEnabledForOrigin(
@@ -630,7 +632,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( @@ -715,7 +717,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
} }
// Only send User Agent hints if the info is available // Only send User Agent hints if the info is available
@@ -255,7 +283,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -532,6 +532,11 @@ @@ -610,6 +610,11 @@
name: "AriaNotifyV2", name: "AriaNotifyV2",
status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"},
}, },
@@ -267,12 +295,12 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
{ {
name: "AriaRowColIndexText", name: "AriaRowColIndexText",
status: "stable", status: "stable",
@@ -924,8 +929,7 @@ @@ -1016,8 +1021,7 @@
// Allows top-level sites to restrict collection of high-entropy UA client // Allows top-level sites to restrict collection of high-entropy UA client
// hints (from 3Ps, or itself) via the getHighEntropyValues API. // hints (from 3Ps, or itself) via the getHighEntropyValues API.
// crbug.com/385161047 // crbug.com/385161047
- name: "ClientHintUAHighEntropyValuesPermissionPolicy", - name: "ClientHintUAHighEntropyValuesPermissionPolicy",
- status: "test", - status: "stable",
+ name: "ClientHintUAHighEntropyValuesPermissionPolicy", // disabled by default + name: "ClientHintUAHighEntropyValuesPermissionPolicy", // disabled by default
}, },
{ {
@@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
--- a/components/network_session_configurator/browser/network_session_configurator.cc --- a/components/network_session_configurator/browser/network_session_configurator.cc
+++ b/components/network_session_configurator/browser/network_session_configurator.cc +++ b/components/network_session_configurator/browser/network_session_configurator.cc
@@ -222,9 +222,8 @@ quic::QuicTagVector GetQuicClientConnectionOptions( @@ -221,9 +221,8 @@ quic::QuicTagVector GetQuicClientConnectionOptions(
bool ShouldQuicCloseSessionsOnIpChange( bool ShouldQuicCloseSessionsOnIpChange(
const VariationParameters& quic_trial_params) { const VariationParameters& quic_trial_params) {
@@ -34,7 +34,7 @@ diff --git a/components/network_session_configurator/browser/network_session_con
} }
bool ShouldQuicGoAwaySessionsOnIpChange( bool ShouldQuicGoAwaySessionsOnIpChange(
@@ -305,11 +304,8 @@ bool ShouldQuicEstimateInitialRtt( @@ -304,11 +303,8 @@ bool ShouldQuicEstimateInitialRtt(
bool ShouldQuicMigrateSessionsOnNetworkChangeV2( bool ShouldQuicMigrateSessionsOnNetworkChangeV2(
const VariationParameters& quic_trial_params) { const VariationParameters& quic_trial_params) {
@@ -88,7 +88,7 @@ new file mode 100644
diff --git a/net/base/features.cc b/net/base/features.cc diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc --- a/net/base/features.cc
+++ b/net/base/features.cc +++ b/net/base/features.cc
@@ -581,7 +581,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, @@ -443,7 +443,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT);
// NetworkChangeNotifier::AreNetworkHandlesSupported). // NetworkChangeNotifier::AreNetworkHandlesSupported).
#if BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID)
inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default =
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -677,6 +677,7 @@ template("chrome_common_apk_or_module_tmpl") { @@ -674,6 +674,7 @@ template("chrome_common_apk_or_module_tmpl") {
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ] [ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ] loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
library_always_compress += [ "libchrome_crashpad_handler.so" ] library_always_compress += [ "libchrome_crashpad_handler.so" ]
File diff suppressed because it is too large Load Diff
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni
@@ -634,7 +634,7 @@ chrome_java_resources = [ @@ -683,7 +683,7 @@ chrome_java_resources = [
"java/res/xml/manage_sync_preferences.xml", "java/res/xml/manage_sync_preferences.xml",
"java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml",
"java/res/xml/incognito_preferences.xml", "java/res/xml/incognito_preferences.xml",
@@ -30,7 +30,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -15,7 +15,7 @@ for the previous order (main_preferences_legacy). --> @@ -11,7 +11,7 @@ found in the LICENSE file.
<!-- `order=0` is reserved and it will be added in code. --> <!-- `order=0` is reserved and it will be added in code. -->
<!-- TODO(crbug.com/364906215): Move SettingsPromoCardPreference here once SyncPromoPreference is removed --> <!-- TODO(crbug.com/364906215): Move SettingsPromoCardPreference here once SyncPromoPreference is removed -->
<PreferenceCategory <PreferenceCategory
@@ -39,7 +39,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
android:order="1001" android:order="1001"
android:title="@string/prefs_section_account_and_google_services"/> android:title="@string/prefs_section_account_and_google_services"/>
<org.chromium.chrome.browser.sync.settings.SignInPreference <org.chromium.chrome.browser.sync.settings.SignInPreference
@@ -28,7 +28,7 @@ for the previous order (main_preferences_legacy). --> @@ -24,7 +24,7 @@ found in the LICENSE file.
android:layout="@layout/account_management_account_row" android:layout="@layout/account_management_account_row"
android:title="@string/sync_category_title"/> android:title="@string/sync_category_title"/>
<org.chromium.components.browser_ui.settings.ChromeBasePreference <org.chromium.components.browser_ui.settings.ChromeBasePreference
@@ -108,6 +108,12 @@ new file mode 100644
+ android:key="can_make_payment" + android:key="can_make_payment"
+ android:title="@string/can_make_payment_title" + android:title="@string/can_make_payment_title"
+ android:summary="@string/settings_can_make_payment_toggle_label" /> + android:summary="@string/settings_can_make_payment_toggle_label" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="throttle_main_thread_to_60hz"
+ android:title="@string/throttle_main_thread_to_60hz_title"
+ android:summary="@string/throttle_main_thread_to_60hz_summary"
+ app:featureName="throttle-main-thread-to-60hz"
+ app:needRestart="true" />
+ +
+ <PreferenceCategory + <PreferenceCategory
+ android:title="@string/data_exposed_to_device_section_title"/> + android:title="@string/data_exposed_to_device_section_title"/>
@@ -217,12 +223,6 @@ new file mode 100644
+ android:fragment="org.chromium.components.privacy_sandbox.TrackingProtectionSettings" + android:fragment="org.chromium.components.privacy_sandbox.TrackingProtectionSettings"
+ app:isPreferenceVisible="false" /> + app:isPreferenceVisible="false" />
+ <Preference + <Preference
+ android:key="incognito_tracking_protections"
+ android:title="@string/incognito_tracking_protections_link_row_label"
+ android:summary="@string/incognito_tracking_protections_link_row_sublabel"
+ android:fragment="org.chromium.components.privacy_sandbox.IncognitoTrackingProtectionsFragment"
+ app:isPreferenceVisible="false" />
+ <Preference
+ android:key="privacy_sandbox" + android:key="privacy_sandbox"
+ android:title="@string/ad_privacy_link_row_label" + android:title="@string/ad_privacy_link_row_label"
+ android:summary="@string/ad_privacy_link_row_sub_label" + android:summary="@string/ad_privacy_link_row_sub_label"
@@ -247,16 +247,16 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -193,7 +193,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -189,7 +189,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
mPageTitle.set(getString(R.string.prefs_privacy_security)); mPageTitle.set(getString(R.string.prefs_privacy_security));
- SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences); - SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
+ SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences_cromite); + SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences_cromite);
Preference incognitoTrackingProtectionsPreference = Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
findPreference(PREF_INCOGNITO_TRACKING_PROTECTIONS); // Overwrite the click listener to pass a correct referrer to the fragment.
@@ -289,7 +289,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @@ -282,7 +282,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
ChromeSwitchPreference passwordLeakTogglePref = ChromeSwitchPreference passwordLeakTogglePref =
(ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION);
+246 -35
View File
@@ -26,8 +26,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../mipmap-xxxhdpi/layered_app_icon.png | Bin 3652 -> 29220 bytes .../mipmap-xxxhdpi/layered_app_icon.png | Bin 3652 -> 29220 bytes
.../layered_app_icon_background.png | Bin 3519 -> 142032 bytes .../layered_app_icon_background.png | Bin 3519 -> 142032 bytes
.../values/channel_constants.xml | 8 +- .../values/channel_constants.xml | 8 +-
.../about_settings/AboutChromeSettings.java | 4 +-
.../ChromeContextMenuPopulator.java | 2 +-
.../browser/fullscreen/FullscreenToast.java | 2 +- .../browser/fullscreen/FullscreenToast.java | 2 +-
.../inline/BromiteInlineUpdateController.java | 19 +++- .../inline/BromiteInlineUpdateController.java | 19 +++-
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
chrome/app/extensions_strings.grdp | 4 +- chrome/app/extensions_strings.grdp | 4 +-
chrome/app/settings_strings.grdp | 2 +- chrome/app/settings_strings.grdp | 2 +-
chrome/app/theme/chromium/BRANDING | 8 +- chrome/app/theme/chromium/BRANDING | 8 +-
@@ -36,13 +39,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../theme/chromium/win/tiles/SmallLogo.png | Bin 9784 -> 12363 bytes .../theme/chromium/win/tiles/SmallLogo.png | Bin 9784 -> 12363 bytes
.../chromium/product_logo_32.png | Bin 822 -> 2301 bytes .../chromium/product_logo_32.png | Bin 822 -> 2301 bytes
chrome/browser/BUILD.gn | 1 + chrome/browser/BUILD.gn | 1 +
.../browser/flags/ChromeFeatureList.java | 2 +- .../browser/hub/HubToolbarMediator.java | 2 +-
.../android/res/layout/hub_toolbar_layout.xml | 82 ++++++++-------
.../chrome/browser/omaha/UpdateConfigs.java | 2 +- .../chrome/browser/omaha/UpdateConfigs.java | 2 +-
chrome/browser/prefs/BUILD.gn | 1 + chrome/browser/prefs/BUILD.gn | 1 +
.../prefs/chrome_pref_service_factory.cc | 6 +- .../prefs/chrome_pref_service_factory.cc | 6 +-
.../profiles/profile_shortcut_manager_win.cc | 2 +- .../profiles/profile_shortcut_manager_win.cc | 2 +-
.../settings/settings_menu/settings_menu.html | 14 ++- .../settings/settings_menu/settings_menu.html | 14 ++-
.../strings/android_chrome_strings.grd | 2 +- .../OmniboxSuggestionsContainer.java | 8 +-
.../strings/android_chrome_strings.grd | 4 +-
.../toolbar/chrome_labs/chrome_labs_utils.cc | 1 + .../toolbar/chrome_labs/chrome_labs_utils.cc | 1 +
chrome/common/url_constants.h | 4 +- chrome/common/url_constants.h | 4 +-
.../install_static/chromium_install_modes.cc | 2 +- .../install_static/chromium_install_modes.cc | 2 +-
@@ -52,7 +57,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../drawable-xhdpi/fre_product_logo.png | Bin 5151 -> 34576 bytes .../drawable-xhdpi/fre_product_logo.png | Bin 5151 -> 34576 bytes
.../drawable-xxhdpi/fre_product_logo.png | Bin 7720 -> 60959 bytes .../drawable-xxhdpi/fre_product_logo.png | Bin 7720 -> 60959 bytes
.../drawable-xxxhdpi/fre_product_logo.png | Bin 10740 -> 93273 bytes .../drawable-xxxhdpi/fre_product_logo.png | Bin 10740 -> 93273 bytes
.../browser/autocomplete_controller.cc | 1 +
.../vector_icons/product_chrome_refresh.icon | 93 +++++++++--------- .../vector_icons/product_chrome_refresh.icon | 93 +++++++++---------
components/policy/core/common/policy_paths.cc | 2 +-
.../chromium/product_logo.png | Bin 1562 -> 3577 bytes .../chromium/product_logo.png | Bin 1562 -> 3577 bytes
.../chromium/product_logo_white.png | Bin 1417 -> 3040 bytes .../chromium/product_logo_white.png | Bin 1417 -> 3040 bytes
.../chromium/product_logo.png | Bin 2714 -> 7923 bytes .../chromium/product_logo.png | Bin 2714 -> 7923 bytes
@@ -60,9 +67,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../webui/version/resources/about_version.ts | 4 +- .../webui/version/resources/about_version.ts | 4 +-
.../resources/about_version_mobile.css | 9 ++ .../resources/about_version_mobile.css | 9 ++
content/child/runtime_features.cc | 44 ++++----- content/child/runtime_features.cc | 44 ++++-----
.../Cromite-Branding.inc | 1 + .../Cromite-Branding.inc | 2 +
tools/grit/grit/grd_reader.py | 35 +++++++ tools/grit/grit/grd_reader.py | 35 +++++++
58 files changed, 204 insertions(+), 130 deletions(-) 65 files changed, 265 insertions(+), 175 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
diff --git a/build/BUILD.gn b/build/BUILD.gn diff --git a/build/BUILD.gn b/build/BUILD.gn
@@ -86,7 +93,7 @@ diff --git a/build/BUILD.gn b/build/BUILD.gn
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
--- a/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn
@@ -194,6 +194,10 @@ declare_args() { @@ -184,6 +184,10 @@ declare_args() {
clang_warning_suppression_file = "" clang_warning_suppression_file = ""
} }
@@ -100,7 +107,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml
@@ -189,7 +189,7 @@ by a child template that "extends" this file. @@ -200,7 +200,7 @@ by a child template that "extends" this file.
<application android:name="{% block application_name %}org.chromium.chrome.browser.base.SplitChromeApplication{% endblock %}" <application android:name="{% block application_name %}org.chromium.chrome.browser.base.SplitChromeApplication{% endblock %}"
android:icon="@drawable/ic_launcher" android:icon="@drawable/ic_launcher"
android:roundIcon="@drawable/ic_launcher_round" android:roundIcon="@drawable/ic_launcher_round"
@@ -132,7 +139,7 @@ diff --git a/chrome/android/java/res/xml/legal_information_preferences.xml b/chr
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -16,20 +16,20 @@ for the previous order (main_preferences_legacy). --> @@ -12,20 +12,20 @@ found in the LICENSE file.
<!-- TODO(crbug.com/364906215): Move SettingsPromoCardPreference here once SyncPromoPreference is removed --> <!-- TODO(crbug.com/364906215): Move SettingsPromoCardPreference here once SyncPromoPreference is removed -->
<PreferenceCategory <PreferenceCategory
android:key="account_and_google_services_section" android:key="account_and_google_services_section"
@@ -9138,10 +9145,37 @@ diff --git a/chrome/android/java/res_chromium_base/values/channel_constants.xml
+ <string name="search_widget_title" translatable="false">Cromite search</string> + <string name="search_widget_title" translatable="false">Cromite search</string>
+ <string name="quick_action_search_widget_title" translatable="false">Cromite quick action search</string> + <string name="quick_action_search_widget_title" translatable="false">Cromite quick action search</string>
</resources> </resources>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
@@ -82,7 +82,9 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment
p.setSummary(AboutSettingsBridge.getOSVersion());
p = findPreference(PREF_LEGAL_INFORMATION);
assumeNonNull(p);
- int currentYear = CalendarFactory.get().get(Calendar.YEAR);
+ Calendar calendar = CalendarFactory.get();
+ calendar.setTimeInMillis(System.currentTimeMillis());
+ int currentYear = calendar.get(Calendar.YEAR);
p.setSummary(getString(R.string.legal_information_summary, currentYear));
ChromeSwitchPreference allowInlineUpdate =
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -481,8 +481,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
&& !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
if (mMode == ContextMenuMode.NORMAL) {
- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
+ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
if (!mItemDelegate.isIncognito()
&& mItemDelegate.isIncognitoSupported()
&& !shouldOpenIncognitoAsWindow()) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenToast.java
@@ -108,7 +108,7 @@ interface FullscreenToast { @@ -109,7 +109,7 @@ interface FullscreenToast {
mNotificationToast = mNotificationToast =
Toast.makeTextWithPriority( Toast.makeTextWithPriority(
mActivity, toastTextId, Toast.LENGTH_LONG, ToastPriority.HIGH); mActivity, toastTextId, Toast.LENGTH_LONG, ToastPriority.HIGH);
@@ -9193,10 +9227,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/Br
Log.i(TAG, "BromiteUpdater: fetching with GET '%s'", UPSTREAM_VERSION_URL); Log.i(TAG, "BromiteUpdater: fetching with GET '%s'", UPSTREAM_VERSION_URL);
EndpointFetcher.nativeFetchWithNoAuth( EndpointFetcher.nativeFetchWithNoAuth(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -909,12 +909,12 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
if (tab.canGoBack()) {
return ActionType.NAVIGATE_BACK;
}
- if (TabAssociatedApp.isOpenedFromExternalApp(tab)) {
+ if (TabAssociatedApp.isOpenedFromExternalApp(tab) && tab.getLaunchType() == TabLaunchType.FROM_EXTERNAL_APP) {
return ActionType.EXIT_APP;
}
return mBackButtonShouldCloseTabFn.apply(tab)
? ActionType.CLOSE_TAB
- : ActionType.EXIT_APP;
+ : ActionType.CLOSE_TAB;
}
@Override
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
--- a/chrome/app/extensions_strings.grdp --- a/chrome/app/extensions_strings.grdp
+++ b/chrome/app/extensions_strings.grdp +++ b/chrome/app/extensions_strings.grdp
@@ -398,7 +398,7 @@ @@ -404,7 +404,7 @@
No recent activities No recent activities
</message> </message>
<message name="IDS_EXTENSIONS_NO_INSTALLED_ITEMS" desc="The message shown to the user on the Extensions settings page when there are no extensions or apps installed."> <message name="IDS_EXTENSIONS_NO_INSTALLED_ITEMS" desc="The message shown to the user on the Extensions settings page when there are no extensions or apps installed.">
@@ -9205,7 +9257,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
</message> </message>
<message name="IDS_EXTENSIONS_NO_DESCRIPTION" desc="The message shown to the user when an extension does not have any description."> <message name="IDS_EXTENSIONS_NO_DESCRIPTION" desc="The message shown to the user when an extension does not have any description.">
No description provided No description provided
@@ -536,7 +536,7 @@ @@ -542,7 +542,7 @@
My extensions My extensions
</message> </message>
<message name="IDS_EXTENSIONS_SIDEBAR_DISCOVER_MORE" desc="The text displayed in the sidebar of the chrome://extensions page to open the Chrome Web Store to get more extensions."> <message name="IDS_EXTENSIONS_SIDEBAR_DISCOVER_MORE" desc="The text displayed in the sidebar of the chrome://extensions page to open the Chrome Web Store to get more extensions.">
@@ -13171,7 +13223,7 @@ e)fqMZZ`3a)Ds&5H<cfp<0000<MNUMnLSTYHt&Yn8
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1914,6 +1914,7 @@ static_library("browser") { @@ -1825,6 +1825,7 @@ static_library("browser") {
"//build/config/chromebox_for_meetings:buildflags", "//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags", "//build/config/compiler:compiler_buildflags",
"//build/config/linux/dbus:buildflags", "//build/config/linux/dbus:buildflags",
@@ -13179,18 +13231,119 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"//cc", "//cc",
"//chrome:extra_resources", "//chrome:extra_resources",
"//chrome:resources", "//chrome:resources",
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
@@ -1340,7 +1340,7 @@ public abstract class ChromeFeatureList { @@ -83,7 +83,7 @@ public class HubToolbarMediator {
public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd = @Override
newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false); public void onConfigurationChanged(Configuration configuration) {
public static final MutableFlagWithSafeDefault sSwapNewTabAndNewTabInGroupAndroid = int screenWidthDp = configuration.screenWidthDp;
- newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, false); - boolean isTablet = HubUtils.isScreenWidthTablet(screenWidthDp);
+ newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, true); + boolean isTablet = true; //HubUtils.isScreenWidthTablet(screenWidthDp);
public static final MutableFlagWithSafeDefault sTabArchivalDragDropAndroid = mPropertyModel.set(BACK_BUTTON_VISIBLE, isTablet);
newMutableFlagWithSafeDefault(TAB_ARCHIVAL_DRAG_DROP_ANDROID, true);
public static final MutableFlagWithSafeDefault sTabCollectionAndroid = Pane pane = mPaneManager.getFocusedPaneSupplier().get();
diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml b/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml
--- a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml
+++ b/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.xml
@@ -38,33 +38,20 @@ found in the LICENSE file.
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start|center_vertical">
-
- <Space
- android:id="@+id/margin_spacer"
- android:layout_width="@dimen/hub_toolbar_action_button_start_margin"
- android:layout_height="match_parent"
- android:visibility="gone"/>
-
- <org.chromium.ui.widget.ChromeImageButton
- android:id="@+id/toolbar_back_button"
- android:src="@drawable/ic_arrow_back_24dp"
- android:layout_width="@dimen/min_touch_target_size"
- android:layout_height="@dimen/min_touch_target_size"
- android:layout_gravity="center"
- android:layout_marginStart="4dp"
- android:contentDescription="@string/back"
- android:tooltipText="@string/back"
- android:visibility="gone"
- style="@style/ToolbarMenuButton"
- app:tint="@color/default_icon_color_tint_list"/>
-
- <Button
- android:id="@+id/toolbar_action_button"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_gravity="start|center_vertical"
- android:visibility="gone"
- style="?attr/newTabButtonStyle"/>
+ <Space
+ android:layout_width="@dimen/hub_toolbar_action_button_start_margin"
+ android:layout_height="match_parent"/>
+ <org.chromium.ui.widget.ChromeImageButton
+ android:id="@+id/search_loupe"
+ android:visibility="gone"
+ android:gravity="center_vertical"
+ android:layout_width="44dp"
+ android:layout_height="match_parent"
+ android:contentDescription="@string/search"
+ android:src="@drawable/ic_search"
+ android:tooltipText="@string/accessibility_search_loupe_tooltip_text"
+ style="@style/ToolbarMenuButton"
+ app:tint="@color/default_icon_color_tint_list" />
</LinearLayout>
<FrameLayout
@@ -96,18 +83,39 @@ found in the LICENSE file.
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end" >
- <!-- On tablets, the searchbox (R.id.search_box) is hidden in favor of a button. -->
- <org.chromium.ui.widget.ChromeImageButton
- android:id="@+id/search_loupe"
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_gravity="start|center_vertical">
+
+ <org.chromium.ui.widget.ChromeImageButton
+ android:id="@+id/toolbar_back_button"
+ android:src="@drawable/ic_arrow_back_24dp"
+ android:layout_width="@dimen/min_touch_target_size"
+ android:layout_height="@dimen/min_touch_target_size"
+ android:layout_gravity="center"
+ android:layout_marginStart="4dp"
+ android:contentDescription="@string/back"
+ android:tooltipText="@string/back"
android:visibility="gone"
- android:gravity="center_vertical"
- android:layout_width="44dp"
- android:layout_height="match_parent"
- android:contentDescription="@string/search"
- android:src="@drawable/ic_search"
- android:tooltipText="@string/accessibility_search_loupe_tooltip_text"
style="@style/ToolbarMenuButton"
- app:tint="@color/default_icon_color_tint_list" />
+ app:tint="@color/default_icon_color_tint_list"/>
+
+ <Button
+ android:id="@+id/toolbar_action_button"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_gravity="start|center_vertical"
+ android:visibility="gone"
+ style="?attr/newTabButtonStyle"/>
+
+ <Space
+ android:id="@+id/margin_spacer"
+ android:layout_width="@dimen/hub_toolbar_action_button_start_margin"
+ android:layout_height="match_parent"
+ android:visibility="gone"/>
+ </LinearLayout>
<include layout="@layout/menu_button" />
</LinearLayout>
diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
--- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java --- a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
+++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java +++ b/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
@@ -13225,7 +13378,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h" #include "chrome/browser/enterprise/signin/enterprise_signin_prefs.h"
#include "chrome/browser/policy/chrome_browser_policy_connector.h" #include "chrome/browser/policy/chrome_browser_policy_connector.h"
@@ -281,10 +282,7 @@ std::unique_ptr<ProfilePrefStoreManager> CreateProfilePrefStoreManager( @@ -294,10 +295,7 @@ std::unique_ptr<ProfilePrefStoreManager> CreateProfilePrefStoreManager(
const base::FilePath& profile_path) { const base::FilePath& profile_path) {
std::string seed; std::string seed;
CHECK(ui::ResourceBundle::HasSharedInstance()); CHECK(ui::ResourceBundle::HasSharedInstance());
@@ -13240,7 +13393,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc
--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc --- a/chrome/browser/profiles/profile_shortcut_manager_win.cc
+++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc +++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc
@@ -78,7 +78,7 @@ const int kMaxProfileShortcutFileNameLength = 64; @@ -79,7 +79,7 @@ const int kMaxProfileShortcutFileNameLength = 64;
// Incrementing this number will cause profile icons to be regenerated on // Incrementing this number will cause profile icons to be regenerated on
// profile startup (it should be incremented whenever the product/avatar icons // profile startup (it should be incremented whenever the product/avatar icons
// change, etc). // change, etc).
@@ -13271,7 +13424,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
#menu { #menu {
color: var(--google-grey-700); color: var(--google-grey-700);
display: flex; display: flex;
@@ -164,7 +176,7 @@ @@ -177,7 +189,7 @@
</a> </a>
<a role="menuitem" id="about-menu" href="/help" <a role="menuitem" id="about-menu" href="/help"
class="cr-nav-menu-item"> class="cr-nav-menu-item">
@@ -13280,10 +13433,35 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
$i18n{aboutPageTitle} $i18n{aboutPageTitle}
<cr-ripple></cr-ripple> <cr-ripple></cr-ripple>
</a> </a>
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsContainer.java
@@ -24,6 +24,7 @@ import org.chromium.base.TraceEvent;
import org.chromium.base.metrics.TimingMetric;
import org.chromium.base.task.PostTask;
import org.chromium.base.task.TaskTraits;
+import org.chromium.base.ui.KeyboardUtils;
import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.omnibox.OmniboxMetrics;
import org.chromium.chrome.browser.omnibox.R;
@@ -111,8 +112,11 @@ public class OmniboxSuggestionsContainer extends FrameLayout {
// Omnibox.
// Making the container `clickable=true` achieves similar goal, but this consumes all
// activators, including keyboard <Enter> key.
- super.onTouchEvent(event);
- return true;
+ if (KeyboardUtils.isAndroidSoftKeyboardShowing(this)) {
+ KeyboardUtils.hideAndroidSoftKeyboard(this);
+ return true;
+ }
+ return false;
}
private void maybeUpdateLayoutParams(int topMargin) {
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
@@ -2389,7 +2389,7 @@ Your Google account may have other forms of browsing history like searches and a @@ -2380,7 +2380,7 @@ Your Google account may have other forms of browsing history like searches and a
About Chrome About Chrome
</message> </message>
<message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android"> <message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
@@ -13292,6 +13470,15 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message> </message>
<message name="IDS_APPLICATION_VERSION_TITLE" desc="Title for application version"> <message name="IDS_APPLICATION_VERSION_TITLE" desc="Title for application version">
Application version Application version
@@ -5845,7 +5845,7 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<!-- Storage Preference UI strings for clearing storage. -->
<message name="IDS_STORAGE_MANAGEMENT_ACTIVITY_LABEL" desc="Title for Chrome's Manage Space Activity.">
- Google <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph> storage
+ <ph name="APP_NAME">%1$s<ex>Chrome</ex></ph> storage
</message>
<message name="IDS_STORAGE_MANAGEMENT_UNIMPORTANT_SITE_DATA_DESCRIPTION" desc="Text to describe the data stored by unimportant or infrequent sites.">
Stored data that Chrome doesn't think is important (e.g. sites with no saved settings or that you don't visit often)
diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc diff --git a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
--- a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc --- a/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
+++ b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc +++ b/chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.cc
@@ -13315,7 +13502,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
inline constexpr char kChromeOsHelpViaWebUIURL[] = inline constexpr char kChromeOsHelpViaWebUIURL[] =
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -198,7 +198,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = @@ -193,7 +193,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
"chrome-untrusted://new-tab-page/"; "chrome-untrusted://new-tab-page/";
// The URL for the Chromium project used in the About dialog. // The URL for the Chromium project used in the About dialog.
@@ -13339,7 +13526,7 @@ diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_st
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -1005,7 +1005,7 @@ @@ -1020,7 +1020,7 @@
<!-- Accessibility preferences --> <!-- Accessibility preferences -->
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]"> <message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
@@ -18244,6 +18431,17 @@ z-aP~TXJZ`-(Yg4YH}L#8=YM{CKWmuBV|oH(e6M*W+WLnfYBCzOQRGLiPvyZq6&Nv6
z4G!>zy1hcOdP%7GG2>1P`Or}=o{p{?6G1~J{`Cl{gUX-*clf=;TVY)N<lVO9k)vG$ z4G!>zy1hcOdP%7GG2>1P`Or}=o{p{?6G1~J{`Cl{gUX-*clf=;TVY)N<lVO9k)vG$
i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -1106,6 +1106,7 @@ bool AutocompleteController::ShouldRunProvider(
#if BUILDFLAG(IS_ANDROID)
if (omnibox::IsAndroidHub(input_.current_page_classification())) {
+ if ((true)) return provider->type() == AutocompleteProvider::TYPE_OPEN_TAB;
return provider->type() == AutocompleteProvider::TYPE_SEARCH ||
provider->type() == AutocompleteProvider::TYPE_OPEN_TAB ||
provider->type() == AutocompleteProvider::TYPE_BOOKMARK ||
diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
--- a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon --- a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
+++ b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon +++ b/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
@@ -18345,6 +18543,18 @@ diff --git a/components/omnibox/browser/vector_icons/product_chrome_refresh.icon
+CLOSE, +CLOSE,
+MOVE_TO, 11.2f, 8, +MOVE_TO, 11.2f, 8,
CLOSE CLOSE
diff --git a/components/policy/core/common/policy_paths.cc b/components/policy/core/common/policy_paths.cc
--- a/components/policy/core/common/policy_paths.cc
+++ b/components/policy/core/common/policy_paths.cc
@@ -18,7 +18,7 @@ const char kPolicyPath[] = "/etc/opt/chrome/policies";
#elif BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
const char kPolicyPath[] = "/etc/opt/chrome_for_testing/policies";
#else
-const char kPolicyPath[] = "/etc/chromium/policies";
+const char kPolicyPath[] = "/etc/cromite/policies";
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
diff --git a/components/resources/default_100_percent/chromium/product_logo.png b/components/resources/default_100_percent/chromium/product_logo.png diff --git a/components/resources/default_100_percent/chromium/product_logo.png b/components/resources/default_100_percent/chromium/product_logo.png
index 7b60bd8c6053346e4eb265cc77d28add65103028..66b3c4c7a4f68fba1ef098000bd373ba103a0de0 100644 index 7b60bd8c6053346e4eb265cc77d28add65103028..66b3c4c7a4f68fba1ef098000bd373ba103a0de0 100644
GIT binary patch GIT binary patch
@@ -18985,7 +19195,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc --- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -568,19 +568,22 @@ void ResolveInvalidConfigurations() { @@ -573,19 +573,22 @@ void ResolveInvalidConfigurations() {
base::FeatureList::IsEnabled( base::FeatureList::IsEnabled(
features::kPrivacySandboxAdsAPIsM1Override)) && features::kPrivacySandboxAdsAPIsM1Override)) &&
!base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) {
@@ -19012,7 +19222,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "Fenced frames must be enabled in order to enable local " << "Fenced frames must be enabled in order to enable local "
"unpartitioned " "unpartitioned "
<< "data access. Use --" << switches::kEnableFeatures << "=" << "data access. Use --" << switches::kEnableFeatures << "="
@@ -588,12 +591,14 @@ void ResolveInvalidConfigurations() { @@ -593,12 +596,14 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableFeatureFromString( WebRuntimeFeatures::EnableFeatureFromString(
"FencedFramesLocalUnpartitionedDataAccess", false); "FencedFramesLocalUnpartitionedDataAccess", false);
} }
@@ -19028,7 +19238,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "Topics cannot be enabled in this configuration. Use --" << "Topics cannot be enabled in this configuration. Use --"
<< switches::kEnableFeatures << "=" << switches::kEnableFeatures << "="
<< network::features::kBrowsingTopics.name << " in addition."; << network::features::kBrowsingTopics.name << " in addition.";
@@ -601,30 +606,23 @@ void ResolveInvalidConfigurations() { @@ -606,30 +611,23 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableTopicsDocumentAPI(false); WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
WebRuntimeFeatures::EnableTopicsImgAPI(false); WebRuntimeFeatures::EnableTopicsImgAPI(false);
} else { } else {
@@ -19065,7 +19275,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "AttributionReporting cannot be enabled in this " << "AttributionReporting cannot be enabled in this "
"configuration. Use --" "configuration. Use --"
<< switches::kEnableFeatures << "=" << switches::kEnableFeatures << "="
@@ -632,23 +630,25 @@ void ResolveInvalidConfigurations() { @@ -637,23 +635,25 @@ void ResolveInvalidConfigurations() {
<< " in addition."; << " in addition.";
WebRuntimeFeatures::EnableAttributionReporting(false); WebRuntimeFeatures::EnableAttributionReporting(false);
} }
@@ -19099,8 +19309,9 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/C
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Cromite-Branding.inc
@@ -0,0 +1 @@ @@ -0,0 +1,2 @@
+SET_CROMITE_FEATURE_DISABLED(kSwapNewTabAndNewTabInGroupAndroid); +SET_CROMITE_FEATURE_ENABLED(kAndroidTabDeclutterArchiveAllButActiveTab);
+SET_CROMITE_FEATURE_ENABLED(kGridTabSwitcherUpdate);
diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
--- a/tools/grit/grit/grd_reader.py --- a/tools/grit/grit/grd_reader.py
+++ b/tools/grit/grit/grd_reader.py +++ b/tools/grit/grit/grd_reader.py
+340 -224
View File
@@ -7,19 +7,63 @@ Opens tabs in foreground, Move web search to the top of items,
Web search in tab group and Enable smart text selection Web search in tab group and Enable smart text selection
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../browser/ChromeActionModeHandler.java | 4 +- .../SamsungSelectionActionMenuDelegate.java | 7 +-
.../chrome/browser/ChromeTabbedActivity.java | 15 +- .../browser/ChromeActionModeHandler.java | 4 +-
...ActivityTabWebContentsDelegateAndroid.java | 10 +- .../chrome/browser/ChromeTabbedActivity.java | 15 +++-
.../compositor/layouts/LayoutManagerImpl.java | 8 ++ ...ActivityTabWebContentsDelegateAndroid.java | 10 ++-
.../tab/TabContextMenuItemDelegate.java | 7 +- .../compositor/layouts/LayoutManagerImpl.java | 8 ++
.../chrome/browser/ui/RootUiCoordinator.java | 8 +- .../tab/TabContextMenuItemDelegate.java | 7 +-
.../Customize-selection-popup.grdp | 34 +++++ .../chrome/browser/ui/RootUiCoordinator.java | 8 +-
.../res/xml/accessibility_preferences.xml | 24 ++++ .../Customize-selection-popup.grdp | 34 +++++++++
.../selection/SelectActionMenuHelper.java | 129 ++++++++++++------ .../AutofillSelectionMenuItemHelper.java | 4 +-
.../selection/SmartSelectionClient.java | 4 + .../res/xml/accessibility_preferences.xml | 24 ++++++
10 files changed, 192 insertions(+), 51 deletions(-) .../selection/SelectActionMenuHelper.java | 20 ++---
.../SelectionPopupControllerImpl.java | 2 +-
.../selection/SmartSelectionClient.java | 4 +
.../browser/PendingSelectionMenu.java | 8 +-
.../browser/SelectionMenuItem.java | 73 ++++++++++++-------
.../SelectionActionMenuDelegate.java | 32 +++++---
16 files changed, 194 insertions(+), 66 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
diff --git a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
--- a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
+++ b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
@@ -134,7 +134,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
.setIcon(null)
.setOrderAndCategory(
Menu.CATEGORY_SECONDARY,
- SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS())
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.setIntent(createManageAppsIntent())
.build());
@@ -167,7 +167,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.setOrderAndCategory(
DefaultItem.PASTE, // Show after paste.
- SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS())
.setIntent(
getTranslationActionIntent(selectedText, translateResolveInfo))
.build());
@@ -180,7 +180,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS)
.setOrderAndCategory(
Menu.FIRST, // Show as first item after primary assist item.
- SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS())
.setIntent(
createWritingToolkitIntent(selectedText, isSelectionReadOnly))
.build());
@@ -239,6 +239,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
}
public static boolean shouldUseSamsungMenuItemOrdering() {
+ if ((true)) return false;
return Build.VERSION.SDK_INT <= MAXIMUM_BUILD_VERSION_CODE_SUPPORTED && isSamsungDevice();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
@@ -37,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -884,10 +884,17 @@ public class ChromeTabbedActivity extends ChromeActivity { @@ -897,10 +897,17 @@ public class ChromeTabbedActivity extends ChromeActivity implements PreAttachInt
@TabLaunchType int type, @TabLaunchType int type,
@TabCreationState int creationState, @TabCreationState int creationState,
boolean markedForSelection) { boolean markedForSelection) {
@@ -62,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activity_glue/ActivityTabWebContentsDelegateAndroid.java
@@ -258,6 +258,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat @@ -250,6 +250,14 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
// Skip opening a new Tab if it doesn't make sense. // Skip opening a new Tab if it doesn't make sense.
if (mTab.isClosing()) return false; if (mTab.isClosing()) return false;
@@ -77,13 +121,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tab_activit
WindowAndroid window = mTab.getWindowAndroid(); WindowAndroid window = mTab.getWindowAndroid();
boolean openingPopup = boolean openingPopup =
window != null window != null
@@ -288,7 +296,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat @@ -294,7 +302,7 @@ public class ActivityTabWebContentsDelegateAndroid extends TabWebContentsDelegat
mTab, mTab,
/* shouldPin= */ false, /* shouldPin= */ false,
webContents, webContents,
- TabLaunchType.FROM_LONGPRESS_FOREGROUND, - TabLaunchType.FROM_LONGPRESS_FOREGROUND,
+ tabLaunchType, + tabLaunchType,
url, targetUrl,
!openingPopup && !willReparentTab); !openingPopup && !willReparentTab);
if (tab == null) return false; if (tab == null) return false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
@@ -97,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplier;
@@ -246,6 +247,13 @@ public class LayoutManagerImpl @@ -247,6 +248,13 @@ public class LayoutManagerImpl
!= TabLaunchType != TabLaunchType
.FROM_COLLABORATION_BACKGROUND_IN_GROUP) .FROM_COLLABORATION_BACKGROUND_IN_GROUP)
|| (!getTabModelSelector().isIncognitoSelected() && incognito); || (!getTabModelSelector().isIncognitoSelected() && incognito);
@@ -114,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
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
@@ -385,8 +385,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @@ -430,8 +430,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) { public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
loadUrlParams.setReferrer(referrer); loadUrlParams.setReferrer(referrer);
@@ -132,15 +176,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -30,6 +30,7 @@ import androidx.core.view.WindowInsetsCompat; @@ -33,6 +33,7 @@ import androidx.core.view.WindowInsetsCompat;
import org.chromium.base.BuildInfo;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.CallbackController; import org.chromium.base.CallbackController;
import org.chromium.base.DeviceInfo;
+import org.chromium.base.ContextUtils; +import org.chromium.base.ContextUtils;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.base.lifetime.Destroyable; import org.chromium.base.lifetime.Destroyable;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
@@ -842,11 +843,16 @@ public class RootUiCoordinator @@ -1021,11 +1022,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile()) TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -197,10 +241,31 @@ new file mode 100644
+ Smart Text selection automatically augments the selected boundaries and classifies the selected text based on the context by sending selection together with its surrounding text + Smart Text selection automatically augments the selected boundaries and classifies the selected text based on the context by sending selection together with its surrounding text
+ </message> + </message>
+</grit-part> +</grit-part>
diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
+++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
@@ -39,7 +39,7 @@ public class AutofillSelectionMenuItemHelper {
.setGroupId(R.id.select_action_menu_delegate_items)
.setOrderAndCategory(
Menu.FIRST,
- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS
| MenuItem.SHOW_AS_ACTION_WITH_TEXT)
@@ -52,7 +52,7 @@ public class AutofillSelectionMenuItemHelper {
.setGroupId(R.id.select_action_menu_delegate_items)
.setOrderAndCategory(
Menu.CATEGORY_SECONDARY, // Show at end of section.
- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_NEVER
| MenuItem.SHOW_AS_ACTION_WITH_TEXT)
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -79,4 +79,28 @@ found in the LICENSE file. @@ -84,4 +84,28 @@ found in the LICENSE file.
android:key="disable_toolbar_swipeup" android:key="disable_toolbar_swipeup"
android:title="@string/disable_toolbar_swipe_up" /> android:title="@string/disable_toolbar_swipe_up" />
@@ -232,31 +297,178 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
@@ -27,6 +27,7 @@ import androidx.core.content.ContextCompat; @@ -169,7 +169,7 @@ public class SelectActionMenuHelper {
import org.chromium.base.ApiCompatibilityUtils; return new SelectionMenuItem.Builder(primaryAction.getTitle())
import org.chromium.base.ContextUtils; .setId(android.R.id.textAssist)
import org.chromium.base.Log; .setGroupId(R.id.select_action_menu_assist_items)
+import org.chromium.base.ContextUtils; - .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS)
import org.chromium.base.PackageManagerUtils; + .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS())
import org.chromium.base.StrictModeContext; .setIcon(getPrimaryActionIconForClassificationResult(classificationResult, context))
import org.chromium.build.annotations.NullMarked; .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
@@ -54,38 +55,84 @@ import java.util.TreeSet; .build();
public class SelectActionMenuHelper { @@ -247,7 +247,7 @@ public class SelectActionMenuHelper {
private static final String TAG = "SelectActionMenu"; // 20 char limit. .setGroupId(groupId)
.setIcon(icons == null ? null : icons.get(i))
.setOrderAndCategory(
- i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
+ i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
.setContentDescription(action.getContentDescription())
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.build();
@@ -296,7 +296,7 @@ public class SelectActionMenuHelper {
.setId(Menu.NONE)
.setGroupId(R.id.select_action_menu_text_processing_items)
.setIcon(icon)
- .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS)
+ .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS())
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.setIntent(intent)
.build());
@@ -341,7 +341,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -355,7 +355,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -369,7 +369,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -385,7 +385,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_share)
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeShareDrawable)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -399,7 +399,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -412,7 +412,7 @@ public class SelectActionMenuHelper {
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
.setGroupId(R.id.select_action_menu_default_items)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true);
@@ -432,7 +432,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_web_search)
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -1114,7 +1114,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
private boolean handleAssistMenuItemClick(int order) {
// Primary assist action is always the first action in the list so offset by 1.
- int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS;
+ int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS();
if (mClassificationResult == null
|| mClassificationResult.textClassification == null
|| mClassificationResult.textClassification.getActions().size() <= index) {
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
+import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.UserData;
import org.chromium.build.annotations.Initializer;
@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
return null;
}
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_smart_text", false)) return null;
+
SmartSelectionClient client =
assumeNonNull(
webContents.getOrSetUserData(
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
@@ -165,13 +165,13 @@ public final class PendingSelectionMenu {
@VisibleForTesting
public @LogicalGroup int determineGroup(SelectionMenuItem item) {
int order = item.order;
- if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS) {
+ if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS()) {
return LogicalGroup.TEXT_PROCESSING_ITEMS;
- } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS) {
+ } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS()) {
return LogicalGroup.SECONDARY_ASSIST_ITEMS;
- } else if (order >= ItemGroupOffset.DEFAULT_ITEMS) {
+ } else if (order >= ItemGroupOffset.DEFAULT_ITEMS()) {
return LogicalGroup.DEFAULT_ITEMS;
- } else if (order >= ItemGroupOffset.ASSIST_ITEMS) {
+ } else if (order >= ItemGroupOffset.ASSIST_ITEMS()) {
return LogicalGroup.ASSIST_ITEMS;
}
throw new IllegalStateException("Invalid order. Must be >= 0");
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
@@ -18,6 +18,7 @@ import androidx.annotation.IntDef;
import androidx.annotation.StringRes;
import androidx.appcompat.content.res.AppCompatResources;
+import org.chromium.base.ContextUtils;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -34,18 +35,38 @@ public final class SelectionMenuItem implements Comparable<SelectionMenuItem> {
* less than SECONDARY_ASSIST_ITEMS will appear in the default items section. Each section is
* separated by a divider in dropdown menus.
*/
- @Retention(RetentionPolicy.SOURCE) - @Retention(RetentionPolicy.SOURCE)
- @IntDef({ - @IntDef({
- GroupItemOrder.ASSIST_ITEMS, - ItemGroupOffset.ASSIST_ITEMS,
- GroupItemOrder.DEFAULT_ITEMS, - ItemGroupOffset.DEFAULT_ITEMS,
- GroupItemOrder.SECONDARY_ASSIST_ITEMS, - ItemGroupOffset.SECONDARY_ASSIST_ITEMS,
- GroupItemOrder.TEXT_PROCESSING_ITEMS - ItemGroupOffset.TEXT_PROCESSING_ITEMS
- }) - })
- public @interface GroupItemOrder { - public @interface ItemGroupOffset {
- int ASSIST_ITEMS = 1; - int ASSIST_ITEMS = 0;
- int DEFAULT_ITEMS = 2; - int DEFAULT_ITEMS = 10;
- int SECONDARY_ASSIST_ITEMS = 3; - int SECONDARY_ASSIST_ITEMS = 20;
- int TEXT_PROCESSING_ITEMS = 4; - int TEXT_PROCESSING_ITEMS = 30;
+ private static class GroupItemOrderChromium { + public static class ItemGroupOffset {
+ static int CHROMIUM_ASSIST_ITEMS = 1; + static int CHROMIUM_ASSIST_ITEMS = 1;
+ static int CHROMIUM_DEFAULT_ITEMS = 2; + static int CHROMIUM_DEFAULT_ITEMS = 2;
+ static int CHROMIUM_SECONDARY_ASSIST_ITEMS = 3; + static int CHROMIUM_SECONDARY_ASSIST_ITEMS = 3;
@@ -290,189 +502,93 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
+ } + }
} }
- @Retention(RetentionPolicy.SOURCE) private final @AttrRes int mIconAttr;
- @IntDef({ @@ -210,25 +231,23 @@ public final class SelectionMenuItem implements Comparable<SelectionMenuItem> {
- DefaultItemOrder.CUT, * @param order the order, must be >= 0.
- DefaultItemOrder.COPY, * @param category the section of the menu in which this item should appear.
- DefaultItemOrder.PASTE, */
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT, - public Builder setOrderAndCategory(int order, @ItemGroupOffset int category) {
- DefaultItemOrder.SHARE, + public Builder setOrderAndCategory(int order, int category) {
- DefaultItemOrder.SELECT_ALL, if (order < 0) {
- DefaultItemOrder.WEB_SEARCH throw new IllegalArgumentException("Invalid order. Must be >= 0");
- }) }
- public @interface DefaultItemOrder { // Make sure items don't spill over into the next category.
- int CUT = 1; - mOrder =
- int COPY = 2; - switch (category) {
- int PASTE = 3; - case ItemGroupOffset.ASSIST_ITEMS ->
- int PASTE_AS_PLAIN_TEXT = 4; - Math.min(order + category, ItemGroupOffset.DEFAULT_ITEMS - 1);
- int SHARE = 5; - case ItemGroupOffset.DEFAULT_ITEMS ->
- int SELECT_ALL = 6; - Math.min(
- int WEB_SEARCH = 7; - order + category,
+ private static class DefaultItemOrderChromium { - ItemGroupOffset.SECONDARY_ASSIST_ITEMS - 1);
+ static int CHROMIUM_CUT = 1; - case ItemGroupOffset.SECONDARY_ASSIST_ITEMS ->
+ static int CHROMIUM_COPY = 2; - Math.min(
+ static int CHROMIUM_PASTE = 3; - order + category,
+ static int CHROMIUM_SHARE = 4; - ItemGroupOffset.TEXT_PROCESSING_ITEMS - 1);
+ static int CHROMIUM_SELECT_ALL = 5; - default -> order + category;
+ static int CHROMIUM_PASTE_AS_PLAIN_TEXT = 6; - };
+ static int CHROMIUM_WEB_SEARCH = 7; + if (category == ItemGroupOffset.ASSIST_ITEMS())
+ + mOrder = Math.min(order + category, ItemGroupOffset.DEFAULT_ITEMS() - 1);
+ static int CROMITE_WEB_SEARCH = 1; + else if (category == ItemGroupOffset.DEFAULT_ITEMS())
+ static int CROMITE_CUT = 2; + mOrder = Math.min(
+ static int CROMITE_COPY = 3; + order + category,
+ static int CROMITE_PASTE = 4; + ItemGroupOffset.SECONDARY_ASSIST_ITEMS() - 1);
+ static int CROMITE_SHARE = 5; + else if (category == ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
+ static int CROMITE_SELECT_ALL = 6; + mOrder = Math.min(
+ static int CROMITE_PASTE_AS_PLAIN_TEXT = 7; + order + category,
+ + ItemGroupOffset.TEXT_PROCESSING_ITEMS() - 1);
+ private static int GetValue(int a, int b) { + else
+ return !ContextUtils.getAppSharedPreferences().getBoolean( + mOrder = order + category;
+ "selection_popup_web_search_to_top", false) return this;
+ ? a : b; }
+ }
+ diff --git a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
+ public static int CUT() { --- a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
+ return GetValue(CHROMIUM_CUT, CROMITE_CUT); +++ b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
+ } @@ -7,6 +7,7 @@ package org.chromium.content_public.browser.selection;
+ public static int COPY() { import android.content.pm.ResolveInfo;
+ return GetValue(CHROMIUM_COPY, CROMITE_COPY); import android.view.View;
+ }
+ public static int PASTE() { +import org.chromium.base.ContextUtils;
+ return GetValue(CHROMIUM_PASTE, CROMITE_PASTE); import org.chromium.base.SelectionActionMenuClientWrapper.DefaultItem;
+ } import org.chromium.base.SelectionActionMenuClientWrapper.MenuType;
+ public static int SHARE() { import org.chromium.build.annotations.NullMarked;
+ return GetValue(CHROMIUM_SHARE, CROMITE_SHARE); @@ -23,15 +24,28 @@ import java.util.List;
+ } @NullMarked
+ public static int SELECT_ALL() { public interface SelectionActionMenuDelegate {
+ return GetValue(CHROMIUM_SELECT_ALL, CROMITE_SELECT_ALL); static @DefaultItem int[] getDefaultMenuItemOrder() {
+ } - return new @DefaultItem int[] {
+ public static int PASTE_AS_PLAIN_TEXT() { - DefaultItem.CUT,
+ return GetValue(CHROMIUM_PASTE_AS_PLAIN_TEXT, CROMITE_PASTE_AS_PLAIN_TEXT); - DefaultItem.COPY,
+ } - DefaultItem.PASTE,
+ public static int WEB_SEARCH() { - DefaultItem.PASTE_AS_PLAIN_TEXT,
+ return GetValue(CHROMIUM_WEB_SEARCH, CROMITE_WEB_SEARCH); - DefaultItem.SHARE,
- DefaultItem.SELECT_ALL,
- DefaultItem.WEB_SEARCH
- };
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_web_search_to_top", false)) {
+ return new @DefaultItem int[] {
+ DefaultItem.CUT,
+ DefaultItem.COPY,
+ DefaultItem.PASTE,
+ DefaultItem.PASTE_AS_PLAIN_TEXT,
+ DefaultItem.SHARE,
+ DefaultItem.SELECT_ALL,
+ DefaultItem.WEB_SEARCH
+ };
+ } else {
+ return new @DefaultItem int[] {
+ DefaultItem.WEB_SEARCH,
+ DefaultItem.CUT,
+ DefaultItem.COPY,
+ DefaultItem.PASTE,
+ DefaultItem.PASTE_AS_PLAIN_TEXT,
+ DefaultItem.SHARE,
+ DefaultItem.SELECT_ALL
+ };
+ } + }
} }
@Retention(RetentionPolicy.SOURCE) /**
@@ -196,7 +243,7 @@ public class SelectActionMenuHelper {
}
SelectionMenuGroup primaryAssistGroup =
new SelectionMenuGroup(
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
View.OnClickListener clickListener = null;
if (classificationResult.onClickListener != null) {
clickListener = classificationResult.onClickListener;
@@ -223,7 +270,7 @@ public class SelectActionMenuHelper {
String selectedText) {
SelectionMenuGroup defaultGroup =
new SelectionMenuGroup(
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
List<SelectionMenuItem.Builder> menuItemBuilders = new ArrayList<>();
menuItemBuilders.add(cut(delegate.canCut()));
menuItemBuilders.add(copy(delegate.canCopy()));
@@ -251,7 +298,7 @@ public class SelectActionMenuHelper {
// menu items if there is selected text.
@IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist;
SelectionMenuGroup secondaryAssistItems =
- new SelectionMenuGroup(groupId, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
+ new SelectionMenuGroup(groupId, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
if (selectedText.isEmpty() && selectionActionMenuDelegate != null) {
List<SelectionMenuItem> additionalMenuItems =
@@ -313,7 +360,7 @@ public class SelectActionMenuHelper {
SelectionMenuGroup textProcessingItems =
new SelectionMenuGroup(
R.id.select_action_menu_text_processing_items,
- GroupItemOrder.TEXT_PROCESSING_ITEMS);
+ GroupItemOrderChromium.TEXT_PROCESSING_ITEMS());
if (isSelectionPassword || intentHandler == null) {
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
return textProcessingItems;
@@ -415,7 +462,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_cut)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
- .setOrderInCategory(DefaultItemOrder.CUT)
+ .setOrderInCategory(DefaultItemOrderChromium.CUT())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -427,7 +474,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_copy)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
- .setOrderInCategory(DefaultItemOrder.COPY)
+ .setOrderInCategory(DefaultItemOrderChromium.COPY())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -439,7 +486,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_paste)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
- .setOrderInCategory(DefaultItemOrder.PASTE)
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -453,7 +500,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share))
.setId(R.id.select_action_menu_share)
.setIconAttr(android.R.attr.actionModeShareDrawable)
- .setOrderInCategory(DefaultItemOrder.SHARE)
+ .setOrderInCategory(DefaultItemOrderChromium.SHARE())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -465,7 +512,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_select_all)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
- .setOrderInCategory(DefaultItemOrder.SELECT_ALL)
+ .setOrderInCategory(DefaultItemOrderChromium.SELECT_ALL())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -477,7 +524,7 @@ public class SelectActionMenuHelper {
SelectionMenuItem.Builder builder =
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled);
@@ -497,7 +544,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search))
.setId(R.id.select_action_menu_web_search)
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
- .setOrderInCategory(DefaultItemOrder.WEB_SEARCH)
+ .setOrderInCategory(DefaultItemOrderChromium.WEB_SEARCH())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
+import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.UserData;
import org.chromium.build.annotations.Initializer;
@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
return null;
}
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_smart_text", false)) return null;
+
SmartSelectionClient client =
assumeNonNull(
webContents.getOrSetUserData(
-- --
@@ -10,24 +10,25 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
chrome/android/java/res/layout/url_bar.xml | 1 + chrome/android/java/res/layout/url_bar.xml | 1 +
.../browser/omnibox/LocationBarMediator.java | 13 ++++++++-- .../browser/omnibox/LocationBarMediator.java | 14 ++++++++---
.../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++ .../chrome/browser/omnibox/UrlBar.java | 24 +++++++++++++++++++
3 files changed, 36 insertions(+), 2 deletions(-) 3 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/res/layout/url_bar.xml
--- a/chrome/android/java/res/layout/url_bar.xml --- a/chrome/android/java/res/layout/url_bar.xml
+++ b/chrome/android/java/res/layout/url_bar.xml +++ b/chrome/android/java/res/layout/url_bar.xml
@@ -15,5 +15,6 @@ found in the LICENSE file. @@ -16,6 +16,7 @@ found in the LICENSE file.
android:singleLine="true" android:singleLine="true"
android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen" android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
android:textAppearance="@style/TextAppearance.SearchBoxText" android:textAppearance="@style/TextAppearance.SearchBoxText"
+ android:inputType="textUri" + android:inputType="textUri"
android:hint="@string/omnibox_empty_hint" android:hint="@string/omnibox_empty_hint"
android:importantForAutofill="no"/> android:textAlignment="viewStart"
android:importantForAutofill="no"
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -307,8 +307,17 @@ class LocationBarMediator @@ -409,8 +409,17 @@ class LocationBarMediator
if (!mUrlFocusedWithPastedText if (!mUrlFocusedWithPastedText
&& !shouldRetainOmniboxOnFocus && !shouldRetainOmniboxOnFocus
&& mLocationBarLayout.shouldClearTextOnFocus()) { && mLocationBarLayout.shouldClearTextOnFocus()) {
@@ -36,7 +37,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
+ UrlBarData data = mLocationBarDataProvider.getUrlBarData(); + UrlBarData data = mLocationBarDataProvider.getUrlBarData();
+ @SelectionState int selectionState = SelectionState.SELECT_ALL; + @SelectionState int selectionState = SelectionState.SELECT_ALL;
+ GURL url = mLocationBarDataProvider.getUrlBarData().url; + GURL url = mLocationBarDataProvider.getUrlBarData().url;
+ if (url != null && mTemplateUrlServiceSupplier.hasValue()) { + if (url != null && mTemplateUrlServiceSupplier.get() != null) {
+ String searchParams = + String searchParams =
+ mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url); + mTemplateUrlServiceSupplier.get().getSearchQueryForUrl(url);
+ if (searchParams != null && !searchParams.isEmpty()) { + if (searchParams != null && !searchParams.isEmpty()) {
@@ -47,6 +48,14 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
} else if (shouldRetainOmniboxOnFocus) { } else if (shouldRetainOmniboxOnFocus) {
mUrlCoordinator.setSelectAllOnFocus(true); mUrlCoordinator.setSelectAllOnFocus(true);
} }
@@ -1898,7 +1907,6 @@ class LocationBarMediator
mUrlCoordinator.setKeyboardVisibility(true, false);
}
-
// UrlBarDelegate implementation.
@Override
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -58,7 +67,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import android.os.SystemClock; import android.os.SystemClock;
import android.text.Editable; import android.text.Editable;
import android.text.InputType; import android.text.InputType;
@@ -115,6 +116,7 @@ public class UrlBar extends AutocompleteEditText { @@ -116,6 +117,7 @@ public class UrlBar extends AutocompleteEditText {
private boolean mAllowFocus = true; private boolean mAllowFocus = true;
private boolean mShouldSendTypingStartedEvent; private boolean mShouldSendTypingStartedEvent;
@@ -66,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private boolean mPendingScroll; private boolean mPendingScroll;
private boolean mIsInCct; private boolean mIsInCct;
@@ -352,6 +354,28 @@ public class UrlBar extends AutocompleteEditText { @@ -369,6 +371,28 @@ public class UrlBar extends AutocompleteEditText {
fixupTextDirection(); fixupTextDirection();
mShouldSendTypingStartedEvent = focused; mShouldSendTypingStartedEvent = focused;
@@ -27,22 +27,22 @@ new file mode 100644
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -8,6 +8,11 @@ found in the LICENSE file. @@ -11,6 +11,11 @@ found in the LICENSE file.
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="zoom_info"
xmlns:app="http://schemas.android.com/apk/res-auto"> android:title="@string/zoom_info_preference_title"/>
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference + <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="enable_accessibility" + android:key="enable_accessibility"
+ android:summary="@string/enable_accessibility_summary" + android:summary="@string/enable_accessibility_summary"
+ android:title="@string/enable_accessibility_title" /> + android:title="@string/enable_accessibility_title" />
+ +
<org.chromium.components.browser_ui.accessibility.PageZoomPreference <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
android:key="page_zoom_default_zoom" android:key="page_zoom_include_os_adjustment"
android:selectable="false" /> android:summary="@string/page_zoom_include_os_adjustment_summary"
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
@@ -1125,6 +1125,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa @@ -1142,6 +1142,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
structure.setChildCount(0); structure.setChildCount(0);
return; return;
} }
@@ -4,6 +4,7 @@ Subject: Disable Android AppRestrictions
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../org/chromium/chrome/browser/AppHooks.java | 4 +-
chrome/browser/enterprise/util/BUILD.gn | 1 + chrome/browser/enterprise/util/BUILD.gn | 1 +
.../enterprise/util/EnterpriseInfoImpl.java | 5 +++ .../enterprise/util/EnterpriseInfoImpl.java | 5 +++
chrome/browser/flags/BUILD.gn | 1 + chrome/browser/flags/BUILD.gn | 1 +
@@ -12,12 +13,26 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../DisableAndroidAppRestriction.inc | 13 +++++++ .../DisableAndroidAppRestriction.inc | 13 +++++++
.../disable-android-app-restriction.inc | 3 ++ .../disable-android-app-restriction.inc | 3 ++
.../disable-android-app-restriction.inc | 1 + .../disable-android-app-restriction.inc | 1 +
8 files changed, 75 insertions(+) 9 files changed, 77 insertions(+), 2 deletions(-)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java
@@ -43,8 +43,8 @@ public class AppHooks {
}
public void registerPolicyProviders(CombinedPolicyProvider combinedProvider) {
- combinedProvider.registerProvider(
- new AppRestrictionsProvider(ContextUtils.getApplicationContext()));
+ // combinedProvider.registerProvider(
+ // new AppRestrictionsProvider(ContextUtils.getApplicationContext()));
}
/** Async fetch the iterator of partner bookmarks (or null if not available). */
diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise/util/BUILD.gn diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise/util/BUILD.gn
--- a/chrome/browser/enterprise/util/BUILD.gn --- a/chrome/browser/enterprise/util/BUILD.gn
+++ b/chrome/browser/enterprise/util/BUILD.gn +++ b/chrome/browser/enterprise/util/BUILD.gn
@@ -38,7 +53,7 @@ diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.components.policy.AppRestrictionsProvider; +import org.chromium.components.policy.AppRestrictionsProvider;
import java.util.LinkedList; import java.util.ArrayDeque;
import java.util.List; import java.util.List;
@@ -113,6 +114,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo { @@ -113,6 +114,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo {
new AsyncTask<OwnedState>() { new AsyncTask<OwnedState>() {
@@ -54,10 +69,10 @@ diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn
@@ -26,6 +26,7 @@ android_library("java") { @@ -28,6 +28,7 @@ android_library("java") {
"//build:chromeos_buildflags",
"//build/android:build_java", "//build/android:build_java",
"//chrome/browser/preferences:java", "//chrome/browser/preferences:java",
"//content/public/android:content_main_dex_java",
+ "//components/policy/android:policy_java", + "//components/policy/android:policy_java",
"//third_party/android_deps:guava_android_java", "//third_party/android_deps:guava_android_java",
"//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_annotation_annotation_java",
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -106,7 +106,8 @@ for the previous order (main_preferences_legacy). --> @@ -96,7 +96,8 @@ found in the LICENSE file.
android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings" android:fragment="org.chromium.chrome.browser.tasks.tab_management.TabsSettings"
android:key="tabs" android:key="tabs"
android:order="18" android:order="18"
@@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiveSettings.java
@@ -104,11 +104,12 @@ public class TabArchiveSettings { @@ -105,11 +105,12 @@ public class TabArchiveSettings {
// are created, and tabs disappearing from tests is very unexpected. For archive tests, // are created, and tabs disappearing from tests is very unexpected. For archive tests,
// this will need to be turned on manually. // this will need to be turned on manually.
return mPrefsManager.readBoolean( return mPrefsManager.readBoolean(
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
--- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc --- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc +++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
@@ -397,7 +397,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) { @@ -263,7 +263,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) {
feature_name.Value().Utf8()) && feature_name.Value().Utf8()) &&
guard.Release()) { guard.Release()) {
stream.ConsumeWhitespace(); stream.ConsumeWhitespace();
@@ -28,7 +28,7 @@ diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b
diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
--- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc --- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
+++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
@@ -578,7 +578,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse( @@ -520,7 +520,7 @@ DocumentRulePredicate* DocumentRulePredicate::Parse(
HeapVector<CSSSelector> arena; HeapVector<CSSSelector> arena;
CSSPropertyValueSet* empty_properties = CSSPropertyValueSet* empty_properties =
ImmutableCSSPropertyValueSet::Create(base::span<CSSPropertyValue>(), ImmutableCSSPropertyValueSet::Create(base::span<CSSPropertyValue>(),
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1288,7 +1288,7 @@ @@ -1419,7 +1419,7 @@
}, },
{ {
name: "CSSDynamicRangeLimit", name: "CSSDynamicRangeLimit",
+18 -41
View File
@@ -4,50 +4,27 @@ Subject: Disable Compose feature
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
chrome/browser/BUILD.gn | 9 +++++++-- chrome/browser/ui/webui/settings/settings_ui.cc | 6 ++++--
chrome/browser/ui/webui/settings/settings_ui.cc | 2 +-
components/compose/core/browser/compose_features.cc | 2 ++ components/compose/core/browser/compose_features.cc | 2 ++
components/compose/features.gni | 2 +- components/compose/features.gni | 2 +-
4 files changed, 11 insertions(+), 4 deletions(-) 3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -8414,6 +8414,12 @@ static_library("browser") {
deps += [ "//components/segmentation_platform/internal:optimization_guide_segmentation_handler" ]
}
+ if (!is_android) {
+ deps += [
+ ":compose_optimization_guide_proto",
+ ]
+ }
+
if (enable_compose) {
sources += [
"compose/chrome_compose_client.cc",
@@ -8429,7 +8435,6 @@ static_library("browser") {
]
deps += [
- ":compose_optimization_guide_proto",
"//chrome/common/compose",
"//chrome/common/compose:mojo_bindings",
"//components/autofill/content/browser",
@@ -8888,7 +8893,7 @@ source_set("font_pref") {
deps = [ "//chrome/common" ]
}
-if (enable_compose) {
+if (!is_android) {
proto_library("compose_optimization_guide_proto") {
sources = [ "compose/proto/compose_optimization_guide.proto" ]
cc_generator_options = "lite=true:"
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -352,7 +352,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) @@ -20,7 +20,9 @@
base::FeatureList::IsEnabled(features::kLinkedServicesSetting)); #include "chrome/browser/browser_features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/commerce/shopping_service_factory.h"
-#include "chrome/browser/compose/compose_enabling.h"
+// #if BUILDFLAG(ENABLE_COMPOSE)
+// #include "chrome/browser/compose/compose_enabling.h"
+// #endif
#include "chrome/browser/history_embeddings/history_embeddings_utils.h"
#include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
#include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
@@ -359,7 +361,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
base::FeatureList::IsEnabled(permissions::features::kKeyboardLockPrompt));
#if BUILDFLAG(ENABLE_COMPOSE) #if BUILDFLAG(ENABLE_COMPOSE)
- const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile); - const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile);
@@ -58,9 +35,9 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui
diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc
--- a/components/compose/core/browser/compose_features.cc --- a/components/compose/core/browser/compose_features.cc
+++ b/components/compose/core/browser/compose_features.cc +++ b/components/compose/core/browser/compose_features.cc
@@ -104,4 +104,6 @@ BASE_FEATURE(kComposeUpfrontInputModes, @@ -73,4 +73,6 @@ BASE_FEATURE(kComposeAllowOnDeviceExecution, base::FEATURE_DISABLED_BY_DEFAULT);
"ComposeUpfrontInputModes",
base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kComposeUpfrontInputModes, base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kEnableCompose); +SET_CROMITE_FEATURE_DISABLED(kEnableCompose);
+SET_CROMITE_FEATURE_DISABLED(kComposeEligible); +SET_CROMITE_FEATURE_DISABLED(kComposeEligible);
@@ -4,27 +4,28 @@ Subject: Disable Compression Dictionary Transport
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../blink/renderer/platform/runtime_enabled_features.json5 | 6 ++++-- chrome/browser/chrome_content_browser_client.cc | 3 +--
1 file changed, 4 insertions(+), 2 deletions(-) .../features_cc/Disable-Compression-Dictionary-Transport.inc | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/chrome/browser/chrome_content_browser_client.cc
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1031,12 +1031,14 @@ @@ -1452,8 +1452,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
} registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true);
}, registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true);
{ registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins);
- name: "CompressionDictionaryTransport", - registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled,
+ name: "CompressionDictionaryTransport", // need to be disabled - true);
+ status: "experimental", + registry->RegisterBooleanPref(prefs::kCompressionDictionaryTransportEnabled, false);
base_feature: "none", #if BUILDFLAG(ENABLE_ON_DEVICE_TRANSLATION)
public: true, registry->RegisterBooleanPref(prefs::kTranslatorAPIAllowed, true);
}, #endif
{ diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc
- name: "CompressionDictionaryTransportBackend", new file mode 100644
+ name: "CompressionDictionaryTransportBackend", // need to be disabled --- /dev/null
+ status: "experimental", +++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-Compression-Dictionary-Transport.inc
base_feature: "none", @@ -0,0 +1 @@
public: true, +SET_CROMITE_FEATURE_DISABLED(kCompressionDictionaryTransport);
},
-- --
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc
--- a/chrome/browser/device_api/device_service_impl.cc --- a/chrome/browser/device_api/device_service_impl.cc
+++ b/chrome/browser/device_api/device_service_impl.cc +++ b/chrome/browser/device_api/device_service_impl.cc
@@ -166,6 +166,7 @@ bool IsPermissionsPolicyFeatureEnabled() { @@ -155,6 +155,7 @@ bool IsPermissionsPolicyFeatureEnabled() {
bool IsTrustedContext(content::RenderFrameHost& host, bool IsTrustedContext(content::RenderFrameHost& host,
const url::Origin& origin) { const url::Origin& origin) {
@@ -18,7 +18,7 @@ diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/d
// Do not create the service for the incognito mode. // Do not create the service for the incognito mode.
if (GetProfile(host)->IsIncognitoProfile()) { if (GetProfile(host)->IsIncognitoProfile()) {
return false; return false;
@@ -361,6 +362,10 @@ void DeviceServiceImpl::GetAnnotatedLocation( @@ -350,6 +351,10 @@ void DeviceServiceImpl::GetAnnotatedLocation(
void DeviceServiceImpl::GetDeviceAttribute( void DeviceServiceImpl::GetDeviceAttribute(
void (DeviceAttributeApi::*method)(DeviceAttributeCallback callback), void (DeviceAttributeApi::*method)(DeviceAttributeCallback callback),
DeviceAttributeCallback callback) { DeviceAttributeCallback callback) {
+11 -3
View File
@@ -6,16 +6,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../content_settings/core/browser/content_settings_registry.cc | 2 +- .../content_settings/core/browser/content_settings_registry.cc | 2 +-
.../content/public/common/content_features_cc/Disable-FedCm.inc | 1 + .../content/public/common/content_features_cc/Disable-FedCm.inc | 1 +
.../services/network/public/cpp/features_cc/Disable-FedCm.inc | 1 +
.../third_party/blink/common/features_cc/Disable-FedCm.inc | 1 + .../third_party/blink/common/features_cc/Disable-FedCm.inc | 1 +
.../blink/renderer/platform/runtime_enabled_features.json5 | 2 +- .../blink/renderer/platform/runtime_enabled_features.json5 | 2 +-
4 files changed, 4 insertions(+), 2 deletions(-) 5 files changed, 5 insertions(+), 2 deletions(-)
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -671,7 +671,7 @@ void ContentSettingsRegistry::Init() { @@ -640,7 +640,7 @@ void ContentSettingsRegistry::Init() {
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION, Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
@@ -30,6 +32,12 @@ new file mode 100644
+++ b/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc +++ b/cromite_flags/content/public/common/content_features_cc/Disable-FedCm.inc
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kFedCm); +SET_CROMITE_FEATURE_DISABLED(kFedCm);
diff --git a/cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc b/cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/services/network/public/cpp/features_cc/Disable-FedCm.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_ENABLED(kSendSameSiteLaxForFedCM);
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FedCm.inc
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
@@ -39,7 +47,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2093,7 +2093,7 @@ @@ -2286,7 +2286,7 @@
{ {
name: "FedCm", name: "FedCm",
public: true, public: true,
+31 -23
View File
@@ -5,19 +5,19 @@ Subject: Disable GSA by default
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
--- ---
.../src/org/chromium/base/PackageUtils.java | 1 + .../src/org/chromium/base/PackageUtils.java | 1 +
.../chrome/browser/IntentHandler.java | 6 ---- .../chrome/browser/IntentHandler.java | 7 ----
.../chrome/browser/share/LensUtils.java | 14 ++------ .../chrome/browser/share/LensUtils.java | 14 ++------
.../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++---------------- .../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++----------------
.../GoogleBottomBarActionsHandler.java | 19 ++--------- .../GoogleBottomBarActionsHandler.java | 19 ++---------
.../chrome/browser/pdf/PdfCoordinator.java | 2 +- .../chrome/browser/pdf/PdfCoordinator.java | 2 +-
.../Disable-GSA-by-default.inc | 1 + .../Disable-GSA-by-default.inc | 1 +
7 files changed, 12 insertions(+), 65 deletions(-) 7 files changed, 12 insertions(+), 66 deletions(-)
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java
--- a/base/android/java/src/org/chromium/base/PackageUtils.java --- a/base/android/java/src/org/chromium/base/PackageUtils.java
+++ b/base/android/java/src/org/chromium/base/PackageUtils.java +++ b/base/android/java/src/org/chromium/base/PackageUtils.java
@@ -165,6 +165,7 @@ public class PackageUtils { @@ -185,6 +185,7 @@ public class PackageUtils {
* @return Package name of assistant app, or null if unable to get. * @return Package name of assistant app, or null if unable to get.
*/ */
public static @Nullable String getDefaultAssistantPackageName(Context context) { public static @Nullable String getDefaultAssistantPackageName(Context context) {
@@ -28,7 +28,7 @@ diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/an
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; @@ -49,7 +49,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler;
import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -36,37 +36,45 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
import org.chromium.chrome.browser.pdf.PdfUtils; import org.chromium.chrome.browser.pdf.PdfUtils;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
@@ -293,9 +292,6 @@ public class IntentHandler { @@ -303,9 +302,6 @@ public class IntentHandler {
public static final String EXTRA_TIPS_NOTIFICATION_FEATURE_TYPE =
public static final String EXTRA_CCT_EARLY_NAV = "org.chromium.chrome.browser.cct_early_nav"; "org.chromium.chrome.browser.tips_notification_feature_type";
- /** The package name for the Google Search App. */ - /** The package name for the Google Search App. */
- public static final String PACKAGE_GSA = GSAUtils.GSA_PACKAGE_NAME; - public static final String PACKAGE_GSA = GSAUtils.GSA_PACKAGE_NAME;
- -
private static Pair<Integer, String> sPendingReferrer; /** Action to launch the Chrome Item Picker UI, e.g.: tabs. */
private static int sReferrerId; public static final String EXTRA_OPEN_CHROME_ITEM_PICKER =
private static String sPendingIncognitoUrl; "org.chromium.chrome.browser.actions.open_chrome_item_picker";
@@ -588,8 +584,6 @@ public class IntentHandler { @@ -313,7 +309,6 @@ public class IntentHandler {
/** Optional extra for the maximum number of items the user can select. */
public static final String EXTRA_ITEM_PICKER_MAX_SELECTABLE_ITEMS =
"org.chromium.chrome.browser.extras.item_picker_max_selectable_items";
-
public static final String EXTRA_ITEM_PICKER_ERROR =
"org.chromium.chrome.browser.chrome_item_picker.EXTRA_ITEM_PICKER_ERROR";
@@ -569,8 +564,6 @@ public class IntentHandler {
return ExternalAppId.LINE; return ExternalAppId.LINE;
} else if (packageName.equals(PACKAGE_WHATSAPP)) { } else if (PACKAGE_WHATSAPP.equals(packageName)) {
return ExternalAppId.WHATSAPP; return ExternalAppId.WHATSAPP;
- } else if (packageName.equals(PACKAGE_GSA)) { - } else if (PACKAGE_GSA.equals(packageName)) {
- return ExternalAppId.GSA; - return ExternalAppId.GSA;
} else if (packageName.equals(ContextUtils.getApplicationContext().getPackageName())) { } else if (ContextUtils.getApplicationContext().getPackageName().equals(packageName)) {
return ExternalAppId.CHROME; return ExternalAppId.CHROME;
} else if (packageName.startsWith(WEBAPK_PACKAGE_PREFIX)) { } else if (assumeNonNull(packageName).startsWith(WEBAPK_PACKAGE_PREFIX)) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils.java
@@ -9,7 +9,6 @@ import android.content.Context; @@ -10,7 +10,6 @@ import org.chromium.base.ResettersForTesting;
import org.chromium.base.ResettersForTesting; import org.chromium.build.annotations.NullMarked;
import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
-import org.chromium.chrome.browser.gsa.GSAUtils; -import org.chromium.chrome.browser.gsa.GSAUtils;
import org.chromium.components.externalauth.ExternalAuthUtils; import org.chromium.components.externalauth.ExternalAuthUtils;
/** This class provides utilities for intenting into Google Lens. */ /** This class provides utilities for intenting into Google Lens. */
@@ -48,12 +47,7 @@ public class LensUtils { @@ -50,12 +49,7 @@ public class LensUtils {
if (context == null) { if (context == null) {
return ""; return "";
} }
@@ -79,7 +87,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
} }
} }
@@ -76,15 +70,11 @@ public class LensUtils { @@ -78,15 +72,11 @@ public class LensUtils {
* @return Whether the package is valid. * @return Whether the package is valid.
*/ */
public static boolean isValidAgsaPackage() { public static boolean isValidAgsaPackage() {
@@ -186,7 +194,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME; import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME;
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS; import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS;
import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH; import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH;
@@ -105,11 +102,6 @@ class GoogleBottomBarActionsHandler { @@ -106,11 +103,6 @@ class GoogleBottomBarActionsHandler {
} }
void onSearchboxMicTap() { void onSearchboxMicTap() {
@@ -198,7 +206,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
} }
void onSearchboxLensTap(View buttonView) { void onSearchboxLensTap(View buttonView) {
@@ -148,21 +140,13 @@ class GoogleBottomBarActionsHandler { @@ -149,21 +141,13 @@ class GoogleBottomBarActionsHandler {
} }
private void openGoogleAppSearch() { private void openGoogleAppSearch() {
@@ -221,7 +229,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true); intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true);
if (PackageManagerUtils.canResolveActivity(intent)) { if (PackageManagerUtils.canResolveActivity(intent)) {
@@ -274,6 +258,7 @@ class GoogleBottomBarActionsHandler { @@ -275,6 +259,7 @@ class GoogleBottomBarActionsHandler {
} }
private void sendPendingIntentWithUrl(PendingIntent pendingIntent) { private void sendPendingIntentWithUrl(PendingIntent pendingIntent) {
@@ -232,7 +240,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java --- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java +++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
@@ -266,7 +266,7 @@ public class PdfCoordinator { @@ -276,7 +276,7 @@ public class PdfCoordinator {
} }
@Nullable String requestAssistContent(String filename, boolean isWorkProfile) { @Nullable String requestAssistContent(String filename, boolean isWorkProfile) {
@@ -58,7 +58,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2795,9 +2795,8 @@ @@ -3037,9 +3037,8 @@
status: "stable", status: "stable",
}, },
{ {
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
@@ -118,7 +118,7 @@ public class StartupPaintPreviewHelper implements Destroyable { @@ -119,7 +119,7 @@ public class StartupPaintPreviewHelper implements Destroyable {
/** Enables Paint Preview show attempt on restoration of a tab. */ /** Enables Paint Preview show attempt on restoration of a tab. */
public static void enableShowOnRestore() { public static void enableShowOnRestore() {
+2 -2
View File
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -326,8 +326,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) @@ -336,8 +336,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // BUILDFLAG(IS_CHROMEOS) #endif // BUILDFLAG(IS_CHROMEOS)
bool show_privacy_guide = bool show_privacy_guide =
@@ -31,5 +31,5 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui
+ false; + false;
html_source->AddBoolean("showPrivacyGuide", show_privacy_guide); html_source->AddBoolean("showPrivacyGuide", show_privacy_guide);
html_source->AddBoolean("enableHandTrackingContentSetting", html_source->AddBoolean(
-- --
+37 -31
View File
@@ -4,16 +4,16 @@ Subject: Disable Real Box
Real-box is search box in ntp Real-box is search box in ntp
--- ---
chrome/browser/prefs/browser_prefs.cc | 2 +- chrome/browser/prefs/browser_prefs.cc | 2 +-
chrome/browser/resources/new_tab_page/app.html | 11 ----------- .../browser/resources/new_tab_page/app.html | 19 -------------------
.../browser/ui/webui/searchbox/searchbox_handler.cc | 1 + .../searchbox/searchbox_handler.cc | 1 +
components/search/ntp_features.cc | 6 +++--- components/search/ntp_features.cc | 4 ++--
4 files changed, 5 insertions(+), 15 deletions(-) 4 files changed, 4 insertions(+), 22 deletions(-)
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -2272,7 +2272,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, @@ -1987,7 +1987,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterBooleanPref( registry->RegisterBooleanPref(
prefs::kLensRegionSearchEnabled, true, prefs::kLensRegionSearchEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
@@ -21,60 +21,66 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
+ registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, false); + registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, false);
#endif #endif
registry->RegisterListPref( registry->RegisterBooleanPref(prefs::kDisableScreenshots, false);
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
--- a/chrome/browser/resources/new_tab_page/app.html --- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html +++ b/chrome/browser/resources/new_tab_page/app.html
@@ -21,17 +21,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js'; @@ -40,25 +40,6 @@ import {nothing} from '//resources/lit/v3_0/lit.rollup.js';
.theme="${this.theme_}" ?hidden="${!this.logoEnabled_}"> ?hidden="${!this.showScrim_}"></div>
</ntp-logo> ` : ''}
<div id="searchboxContainer"> <div id="searchboxContainer">
- <cr-searchbox id="searchbox" ?is-dark="${this.isThemeDark_()}" - <cr-searchbox id="searchbox" ?is-dark="${this.isThemeDark_()}"
- placeholder-text="$i18n{searchBoxPlaceholder}"
- ?color-source-is-baseline="${this.colorSourceIsBaseline}" - ?color-source-is-baseline="${this.colorSourceIsBaseline}"
- @open-composebox="${this.toggleComposebox_}" - @open-composebox="${this.openComposebox_}"
- @open-lens-search="${this.onOpenLensSearch_}" - @open-lens-search="${this.onOpenLensSearch_}"
- @open-voice-search="${this.onOpenVoiceSearch_}" ?shown="${this.realboxShown_}" - @open-voice-search="${this.onOpenVoiceSearch_}" ?shown="${this.realboxShown_}"
- ?had-secondary-side="${this.realboxHadSecondarySide}" - ?had-secondary-side="${this.realboxHadSecondarySide}"
- @had-secondary-side-changed="${this.onRealboxHadSecondarySideChanged_}" - @had-secondary-side-changed="${this.onRealboxHadSecondarySideChanged_}"
- @context-menu-entrypoint-click="${this.onContextMenuEntrypointClick_}"
- ?can-show-secondary-side="${this.realboxCanShowSecondarySide}" - ?can-show-secondary-side="${this.realboxCanShowSecondarySide}"
- ?compose-button-enabled="${this.composeButtonEnabled}" - ?compose-button-enabled="${this.composeButtonEnabled}"
- ?composebox-enabled="${this.composeboxEnabled}"> - ?composebox-enabled="${this.composeboxEnabled}"
- searchbox-layout-mode="${this.realboxLayoutMode_}"
- ?ntp-realbox-next-enabled="${this.ntpRealboxNextEnabled_}"
- ?cycling-placeholders="${this.searchboxCyclingPlaceholders_}"
- @searchbox-input-focus-changed="${this.onInputFocusChanged_}"
- context-menu-glif-animation-state="${this.contextMenuGlifAnimationState_}"
- ?multi-line-enabled="${this.multiLineEnabled_}">
- </cr-searchbox> - </cr-searchbox>
${this.showComposebox_ ? html` ${this.showComposebox_ ? html`
<ntp-composebox id="composebox" ?is_collapsible="false" @close-composebox="${this.closeComposebox_}"> ${this.enableModalComposebox_ ? html`
</ntp-composebox> <div id="dialogAnchor"></div>
diff --git a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc diff --git a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc b/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc
--- a/chrome/browser/ui/webui/searchbox/searchbox_handler.cc --- a/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc
+++ b/chrome/browser/ui/webui/searchbox/searchbox_handler.cc +++ b/chrome/browser/ui/webui/cr_components/searchbox/searchbox_handler.cc
@@ -452,6 +452,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source, @@ -299,6 +299,7 @@ void SearchboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
Profile* profile, Profile* profile,
bool enable_voice_search, bool enable_voice_search,
bool enable_lens_search) { bool enable_lens_search) {
+ enable_lens_search = false; + enable_lens_search = false;
// Embedders which are served from chrome-untrusted:// URLs should override // The WebUI Omnibox code will override this to `true` to adjust various
// this to false. The chrome.timeTicks capability that the metrics reporter // color and layout options.
// depends on is not defined in chrome-untrusted environments and attempting source->AddBoolean("isTopChromeSearchbox", false);
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
--- a/components/search/ntp_features.cc --- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc
@@ -127,7 +127,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, @@ -114,7 +114,7 @@ BASE_FEATURE(kNtpDriveModuleShowSixFiles, base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, logo will be shown. // If enabled, logo will be shown.
// This is a kill switch. Keep indefinitely. // This is a kill switch. Keep indefinitely.
-BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kNtpLogo, base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kNtpLogo, base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, middle slot promo will be shown. // If enabled, middle slot promo will be shown.
// This is a kill switch. Keep indefinitely. // This is a kill switch. Keep indefinitely.
@@ -186,8 +186,8 @@ BASE_FEATURE(kNtpModuleSignInRequirement, @@ -156,7 +156,7 @@ BASE_FEATURE(kNtpModuleSignInRequirement, base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, OneGoogleBar will be shown. // If enabled, OneGoogleBar will be shown.
// This is a kill switch. Keep indefinitely. // This is a kill switch. Keep indefinitely.
BASE_FEATURE(kNtpOneGoogleBar, -BASE_FEATURE(kNtpOneGoogleBar, base::FEATURE_ENABLED_BY_DEFAULT);
- "NtpOneGoogleBar", +BASE_FEATURE(kNtpOneGoogleBar, base::FEATURE_DISABLED_BY_DEFAULT);
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "NtpOneGoogleBar", // disabled
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default
// If enabled, outlook calendar module will be shown. // If enabled, outlook calendar module will be shown.
BASE_FEATURE(kNtpOutlookCalendarModule, BASE_FEATURE(kNtpOutlookCalendarModule, base::FEATURE_ENABLED_BY_DEFAULT);
-- --
@@ -0,0 +1,28 @@
From: uazo <uazo@users.noreply.github.com>
Date: Wed, 29 Oct 2025 13:01:41 +0000
Subject: Disable Sticky User Activation Across Same Origin Navigation
Do not retains the user activation status after navigating
from one page to another page of the same origin.
It is currently not possible to remove activation once it has been granted.
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -4951,8 +4951,8 @@
{
// Preserves the sticky user activation state after a page navigates to
// another same-origin page. https://crbug.com/433729626
- name: "StickyUserActivationAcrossSameOriginNavigation",
- status: "stable",
+ name: "StickyUserActivationAcrossSameOriginNavigation", status: "experimental", // disabled by default
+
},
{
name: "StorageBuckets",
--
+9 -17
View File
@@ -29,10 +29,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../features_cc/Disable-TLS-resumption.inc | 7 +++ .../features_cc/Disable-TLS-resumption.inc | 7 +++
.../features_h/Disable-TLS-resumption.inc | 5 ++ .../features_h/Disable-TLS-resumption.inc | 5 ++
net/http/http_network_session.cc | 1 + net/http/http_network_session.cc | 1 +
net/quic/quic_session_pool.cc | 35 ++++++++++- net/quic/quic_session_pool.cc | 34 ++++++++++-
net/socket/ssl_client_socket_impl.cc | 59 +++++++++++++++++++ net/socket/ssl_client_socket_impl.cc | 59 +++++++++++++++++++
net/socket/ssl_client_socket_impl.h | 2 + net/socket/ssl_client_socket_impl.h | 2 +
7 files changed, 120 insertions(+), 1 deletion(-) 7 files changed, 119 insertions(+), 1 deletion(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Disable-TLS-resumption.inc create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Disable-TLS-resumption.inc
create mode 100644 cromite_flags/net/base/features_cc/Disable-TLS-resumption.inc create mode 100644 cromite_flags/net/base/features_cc/Disable-TLS-resumption.inc
create mode 100644 cromite_flags/net/base/features_h/Disable-TLS-resumption.inc create mode 100644 cromite_flags/net/base/features_h/Disable-TLS-resumption.inc
@@ -79,7 +79,7 @@ new file mode 100644
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
--- a/net/http/http_network_session.cc --- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc
@@ -222,6 +222,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, @@ -218,6 +218,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params,
next_protos_.push_back(NextProto::kProtoHTTP11); next_protos_.push_back(NextProto::kProtoHTTP11);
@@ -90,15 +90,7 @@ diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
--- a/net/quic/quic_session_pool.cc --- a/net/quic/quic_session_pool.cc
+++ b/net/quic/quic_session_pool.cc +++ b/net/quic/quic_session_pool.cc
@@ -86,6 +86,7 @@ @@ -380,6 +380,38 @@ base::TimeDelta GetAdditionalDelayForMainJob() {
#include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "third_party/boringssl/src/include/openssl/aead.h"
+#include "third_party/boringssl/src/include/openssl/ssl.h"
#include "url/gurl.h"
#include "url/scheme_host_port.h"
#include "url/url_constants.h"
@@ -372,6 +373,38 @@ void LogSessionKeyMismatch(QuicSessionKeyPartialMatchResult result,
} // namespace } // namespace
@@ -137,9 +129,9 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {}
QuicSessionRequest::~QuicSessionRequest() { QuicSessionRequest::~QuicSessionRequest() {
@@ -2373,7 +2406,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) { @@ -2422,7 +2454,7 @@ QuicSessionPool::CreateCryptoConfigHandle(QuicCryptoClientConfigKey key) {
cert_verifier_, transport_security_state_, sct_auditing_delegate_, cert_verifier_, transport_security_state_, sct_auditing_delegate_,
HostsFromOrigins(params_.origins_to_force_quic_on), std::move(hostnames_to_allow_unknown_roots),
key.network_anonymization_key), key.network_anonymization_key),
- std::make_unique<quic::QuicClientSessionCache>(), this); - std::make_unique<quic::QuicClientSessionCache>(), this);
+ std::make_unique<BromiteSessionCache>(), this); + std::make_unique<BromiteSessionCache>(), this);
@@ -183,7 +175,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
Disconnect(); Disconnect();
} }
@@ -700,6 +726,8 @@ int SSLClientSocketImpl::Init() { @@ -709,6 +735,8 @@ int SSLClientSocketImpl::Init() {
} }
if (session) if (session)
SSL_set_session(ssl_.get(), session.get()); SSL_set_session(ssl_.get(), session.get());
@@ -192,7 +184,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
} }
transport_adapter_ = std::make_unique<SocketBIOAdapter>( transport_adapter_ = std::make_unique<SocketBIOAdapter>(
@@ -985,6 +1013,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { @@ -986,6 +1014,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) {
: SSLHandshakeDetails::kTLS13Full; : SSLHandshakeDetails::kTLS13Full;
} }
} }
@@ -228,7 +220,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details);
// Measure TLS connections that implement the renegotiation_info and EMS // Measure TLS connections that implement the renegotiation_info and EMS
@@ -1624,6 +1681,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { @@ -1625,6 +1682,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const {
} }
bool SSLClientSocketImpl::IsCachingEnabled() const { bool SSLClientSocketImpl::IsCachingEnabled() const {
+16 -12
View File
@@ -7,8 +7,8 @@ getHighEntropyValues will return only the major version
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
--- ---
.../renderer/core/frame/navigator_ua_data.cc | 17 +++++++++++++++-- .../renderer/core/frame/navigator_ua_data.cc | 21 +++++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-) 1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc --- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc
@@ -20,13 +20,15 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_
+#include "base/version.h" +#include "base/version.h"
+#include "base/strings/strcat.h" +#include "base/strings/strcat.h"
+#include "base/strings/string_number_conversions.h" +#include "base/strings/string_number_conversions.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h" #include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-blink.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "third_party/blink/renderer/bindings/core/v8/v8_ua_data_values.h"
@@ -65,6 +68,16 @@ void MaybeRecordMetric(bool record_identifiability, @@ -17,6 +20,20 @@
execution_context);
}
namespace blink {
+namespace {
+
+const String GetReducedVersionNumber(const std::string& fullVersion) { +const String GetReducedVersionNumber(const std::string& fullVersion) {
+ base::Version version(fullVersion); + base::Version version(fullVersion);
+ std::string version_str; + std::string version_str;
@@ -37,10 +39,12 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_
+ return String::FromUTF8(version_str); + return String::FromUTF8(version_str);
+} +}
+ +
} // namespace +}
+
NavigatorUAData::NavigatorUAData(ExecutionContext* context) NavigatorUAData::NavigatorUAData(ExecutionContext* context)
@@ -103,7 +116,7 @@ void NavigatorUAData::SetFullVersionList( : ExecutionContextClient(context) {
NavigatorUABrandVersion* dict = NavigatorUABrandVersion::Create();
@@ -53,7 +70,7 @@ void NavigatorUAData::SetFullVersionList(
const UserAgentBrandList& full_version_list) { const UserAgentBrandList& full_version_list) {
for (const auto& brand_version : full_version_list) { for (const auto& brand_version : full_version_list) {
AddBrandFullVersion(String::FromUTF8(brand_version.brand), AddBrandFullVersion(String::FromUTF8(brand_version.brand),
@@ -49,7 +53,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_
} }
} }
@@ -125,7 +138,7 @@ void NavigatorUAData::SetModel(const String& model) { @@ -75,7 +92,7 @@ void NavigatorUAData::SetModel(const String& model) {
} }
void NavigatorUAData::SetUAFullVersion(const String& ua_full_version) { void NavigatorUAData::SetUAFullVersion(const String& ua_full_version) {
@@ -21,7 +21,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -5317,8 +5317,7 @@ @@ -5592,8 +5592,7 @@
status: "stable", status: "stable",
}, },
{ {
@@ -30,5 +30,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+ name: "ViewportSegments", status: "test", public: true + name: "ViewportSegments", status: "test", public: true
}, },
{ {
name: "ViewTransitionAnimationDelayInherit", name: "ViewTransitionAsyncFinished",
-- --
@@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -378,8 +378,13 @@ void ContentSettingsRegistry::Init() { @@ -347,8 +347,13 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE, ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS); PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
+5 -5
View File
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc --- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -547,6 +547,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( @@ -552,6 +552,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
WebRuntimeFeatures::EnableRemotePlayback(false); WebRuntimeFeatures::EnableRemotePlayback(false);
@@ -24,10 +24,10 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc 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
@@ -235,7 +235,7 @@ BASE_FEATURE(kEnableDrDc, @@ -196,7 +196,7 @@ BASE_FEATURE(kEnableDrDc,
// enabled by default on supported platforms. // enabled by default on supported platforms.
#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
BUILDFLAG(IS_ANDROID) BUILDFLAG(IS_ANDROID) || BUILDFLAG(USE_WEBGPU_ON_VULKAN_VIA_GL_INTEROP)
-#define WEBGPU_ENABLED base::FEATURE_ENABLED_BY_DEFAULT -#define WEBGPU_ENABLED base::FEATURE_ENABLED_BY_DEFAULT
+#define WEBGPU_ENABLED base::FEATURE_DISABLED_BY_DEFAULT +#define WEBGPU_ENABLED base::FEATURE_DISABLED_BY_DEFAULT
#else #else
@@ -36,7 +36,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc
--- a/third_party/blink/renderer/modules/webgpu/gpu.cc --- a/third_party/blink/renderer/modules/webgpu/gpu.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu.cc
@@ -159,6 +159,8 @@ GPU::GPU(NavigatorBase& navigator) @@ -153,6 +153,8 @@ GPU::GPU(NavigatorBase& navigator)
GPU::~GPU() = default; GPU::~GPU() = default;
WGSLLanguageFeatures* GPU::wgslLanguageFeatures() const { WGSLLanguageFeatures* GPU::wgslLanguageFeatures() const {
@@ -45,7 +45,7 @@ diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blin
return wgsl_language_features_.Get(); return wgsl_language_features_.Get();
} }
@@ -436,6 +438,7 @@ ScriptPromise<IDLNullable<GPUAdapter>> GPU::requestAdapter( @@ -404,6 +406,7 @@ ScriptPromise<IDLNullable<GPUAdapter>> GPU::requestAdapter(
"WebGPU is experimental on this platform. See " "WebGPU is experimental on this platform. See "
"https://github.com/gpuweb/gpuweb/wiki/" "https://github.com/gpuweb/gpuweb/wiki/"
"Implementation-Status#implementation-status")); "Implementation-Status#implementation-status"));
File diff suppressed because it is too large Load Diff
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -1747,6 +1747,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @@ -1858,6 +1858,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
} }
private boolean maybeShowPromo(Profile profile) { private boolean maybeShowPromo(Profile profile) {
@@ -29,7 +29,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
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
@@ -172,7 +172,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { @@ -187,7 +187,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled,
false); false);
@@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_contr
diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc
--- a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc --- a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc
+++ b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc +++ b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc
@@ -45,6 +45,7 @@ user_education::FeaturePromoResult @@ -47,6 +47,7 @@ user_education::FeaturePromoResult
BrowserFeaturePromoController20::CanShowPromoForElement( BrowserFeaturePromoController20::CanShowPromoForElement(
ui::TrackedElement* anchor_element, ui::TrackedElement* anchor_element,
const user_education::UserEducationContextPtr& context) const { const user_education::UserEducationContextPtr& context) const {
@@ -63,7 +63,7 @@ diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_c
diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
--- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
+++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
@@ -120,6 +120,7 @@ public class UserEducationHelper { @@ -119,6 +119,7 @@ public class UserEducationHelper {
} }
private void showIph(Tracker tracker, IphCommand iphCommand) { private void showIph(Tracker tracker, IphCommand iphCommand) {
@@ -13,12 +13,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
--- ---
.../browser/aw_content_browser_client.cc | 3 + .../browser/aw_content_browser_client.cc | 3 +
.../chromium/android_webview/AwSettings.java | 4 +- .../chromium/android_webview/AwSettings.java | 4 +-
.../apk/AndroidManifest.xml | 3 -
chrome/android/java/AndroidManifest.xml | 4 - chrome/android/java/AndroidManifest.xml | 4 -
.../ChromeSiteSettingsDelegate.java | 2 + .../ChromeSiteSettingsDelegate.java | 2 +
.../k_anonymity_trust_token_getter.cc | 2 +- .../k_anonymity_trust_token_getter.cc | 2 +-
.../settings/privacy_page/privacy_page.html | 5 - .../privacy_page/privacy_page_index.html | 9 -
chrome/browser/resources/settings/route.ts | 2 +- chrome/browser/resources/settings/route.ts | 2 +-
.../site_settings_page/site_settings_page.ts | 1 + .../site_settings/site_settings_page.ts | 1 +
.../aggregatable_trigger_config.cc | 2 +- .../aggregatable_trigger_config.cc | 2 +-
components/attribution_reporting/features.cc | 1 + components/attribution_reporting/features.cc | 1 +
.../core/browser/content_settings_registry.cc | 2 +- .../core/browser/content_settings_registry.cc | 2 +-
@@ -46,14 +47,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
third_party/blink/renderer/core/page/page.cc | 2 +- third_party/blink/renderer/core/page/page.cc | 2 +-
.../platform/runtime_enabled_features.json5 | 20 +- .../platform/runtime_enabled_features.json5 | 20 +-
ui/events/android/motion_event_android.cc | 8 +- ui/events/android/motion_event_android.cc | 8 +-
35 files changed, 103 insertions(+), 430 deletions(-) 36 files changed, 103 insertions(+), 437 deletions(-)
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
--- a/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc
@@ -1354,6 +1354,7 @@ network::mojom::AttributionSupport @@ -1352,6 +1352,7 @@ network::mojom::AttributionSupport
AwContentBrowserClient::GetAttributionSupport( AwContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state, AttributionReportingOsApiState state,
bool client_os_disabled) { bool client_os_disabled) {
@@ -61,7 +62,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv
// WebView only supports OS-level attribution and not web-attribution. // WebView only supports OS-level attribution and not web-attribution.
switch (state) { switch (state) {
case AttributionReportingOsApiState::kDisabled: case AttributionReportingOsApiState::kDisabled:
@@ -1372,6 +1373,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( @@ -1370,6 +1371,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin, const url::Origin* destination_origin,
const url::Origin* reporting_origin, const url::Origin* reporting_origin,
bool* can_bypass) { bool* can_bypass) {
@@ -73,7 +74,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
--- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
@@ -177,7 +177,7 @@ public class AwSettings { @@ -202,7 +202,7 @@ public class AwSettings {
private boolean mSpatialNavigationEnabled; // Default depends on device features. private boolean mSpatialNavigationEnabled; // Default depends on device features.
private boolean mEnableSupportedHardwareAcceleratedFeatures; private boolean mEnableSupportedHardwareAcceleratedFeatures;
private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW;
@@ -82,7 +83,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja
@SpeculativeLoadingAllowedFlags @SpeculativeLoadingAllowedFlags
private int mSpeculativeLoadingAllowedFlags = private int mSpeculativeLoadingAllowedFlags =
@@ -1804,7 +1804,7 @@ public class AwSettings { @@ -1795,7 +1795,7 @@ public class AwSettings {
public void setAttributionBehavior(@AttributionBehavior int behavior) { public void setAttributionBehavior(@AttributionBehavior int behavior) {
synchronized (mAwSettingsLock) { synchronized (mAwSettingsLock) {
if (mAttributionBehavior != behavior) { if (mAttributionBehavior != behavior) {
@@ -91,20 +92,33 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja
mEventHandler.updateWebkitPreferencesLocked(); mEventHandler.updateWebkitPreferencesLocked();
} }
} }
diff --git a/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml b/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml
--- a/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml
+++ b/android_webview/tools/system_webview_shell/apk/AndroidManifest.xml
@@ -178,9 +178,6 @@
android:exported="true">
</activity>
- <property android:name="android.adservices.AD_SERVICES_CONFIG"
- android:resource="@xml/ad_services_config" />
-
<service android:name="android.webkit.MetaDataHolderService"
android:enabled="false"
android:exported="false">
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml
@@ -39,7 +39,6 @@ by a child template that "extends" this file. @@ -39,7 +39,6 @@ by a child template that "extends" this file.
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> <uses-permission-sdk-23 android:name="android.permission.ACCESS_WIFI_STATE" />
{% endif %} <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission-sdk-23 android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" /> - <uses-permission-sdk-23 android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" />
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/> <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_CONNECT"/> <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_CONNECT"/>
<!-- <!--
@@ -1179,9 +1178,6 @@ by a child template that "extends" this file. @@ -1221,9 +1220,6 @@ by a child template that "extends" this file.
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" > android:name="com.google.android.gms.cast.framework.ReconnectionService"
</activity> tools:node="remove" />
- <property android:name="android.adservices.AD_SERVICES_CONFIG" - <property android:name="android.adservices.AD_SERVICES_CONFIG"
- android:resource="@xml/ad_services_config" /> - android:resource="@xml/ad_services_config" />
@@ -115,7 +129,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
@@ -150,6 +150,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @@ -152,6 +152,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
// not great to dynamically remove the preference in this way. // not great to dynamically remove the preference in this way.
case SiteSettingsCategory.Type.ADS: case SiteSettingsCategory.Type.ADS:
return SiteSettingsCategory.adsCategoryEnabled(); return SiteSettingsCategory.adsCategoryEnabled();
@@ -127,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc
--- a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc --- a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc
+++ b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc +++ b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc
@@ -120,7 +120,7 @@ KAnonymityTrustTokenGetter::~KAnonymityTrustTokenGetter() = default; @@ -122,7 +122,7 @@ KAnonymityTrustTokenGetter::~KAnonymityTrustTokenGetter() = default;
void KAnonymityTrustTokenGetter::TryGetTrustTokenAndKey( void KAnonymityTrustTokenGetter::TryGetTrustTokenAndKey(
TryGetTrustTokenAndKeyCallback callback) { TryGetTrustTokenAndKeyCallback callback) {
@@ -136,25 +150,29 @@ diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.c
!identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { !identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin)) {
std::move(callback).Run(std::nullopt); std::move(callback).Run(std::nullopt);
return; return;
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html
@@ -588,11 +588,6 @@ @@ -179,15 +179,6 @@
</category-setting-exceptions> </settings-ar-page>
</settings-subpage> </template>
</template>
- <template is="dom-if" route-path="/content/autoVerify" no-search> - <template is="dom-if" if="[[renderView_(
- <settings-subpage page-title="$i18n{siteSettingsAntiAbuse}"> - routes_.SITE_SETTINGS_AUTO_VERIFY, currentRoute, inSearchMode)]]"
- <settings-anti-abuse-page></settings-anti-abuse-page> - update-when-false>
- </settings-subpage> - <settings-anti-abuse-page slot="view" id="siteSettingsAutoVerify"
- </template> - data-parent-view-id="privacy"
<template is="dom-if" route-path="/content/microphone" no-search> - route-path$="[[routes_.SITE_SETTINGS_AUTO_VERIFY.path]]">
<settings-subpage page-title="$i18n{siteSettingsCategoryMicrophone}" - </settings-anti-abuse-page>
search-label="$i18n{siteSettingsAllSitesSearch}" - </template>
-
<template is="dom-if" if="[[renderView_(
routes_.SITE_SETTINGS_AUTO_PICTURE_IN_PICTURE, currentRoute,
inSearchMode)]]" update-when-false>
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts
@@ -84,7 +84,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) { @@ -79,7 +79,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS.createChild('smartCardReaders'); r.SITE_SETTINGS.createChild('smartCardReaders');
} }
// </if> // </if>
@@ -163,10 +181,10 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc
r.SITE_SETTINGS_BACKGROUND_SYNC = r.SITE_SETTINGS_BACKGROUND_SYNC =
r.SITE_SETTINGS.createChild('backgroundSync'); r.SITE_SETTINGS.createChild('backgroundSync');
r.SITE_SETTINGS_CAMERA = r.SITE_SETTINGS.createChild('camera'); r.SITE_SETTINGS_CAMERA = r.SITE_SETTINGS.createChild('camera');
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts diff --git a/chrome/browser/resources/settings/site_settings/site_settings_page.ts b/chrome/browser/resources/settings/site_settings/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts --- a/chrome/browser/resources/settings/site_settings/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts +++ b/chrome/browser/resources/settings/site_settings/site_settings_page.ts
@@ -62,6 +62,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> { @@ -67,6 +67,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
route: routes.SITE_SETTINGS_AUTO_VERIFY, route: routes.SITE_SETTINGS_AUTO_VERIFY,
id: Id.ANTI_ABUSE, id: Id.ANTI_ABUSE,
label: 'siteSettingsAntiAbuse', label: 'siteSettingsAntiAbuse',
@@ -189,16 +207,16 @@ diff --git a/components/attribution_reporting/aggregatable_trigger_config.cc b/c
diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc
--- a/components/attribution_reporting/features.cc --- a/components/attribution_reporting/features.cc
+++ b/components/attribution_reporting/features.cc +++ b/components/attribution_reporting/features.cc
@@ -13,4 +13,5 @@ BASE_FEATURE(kConversionMeasurement, @@ -11,4 +11,5 @@ namespace attribution_reporting::features {
"ConversionMeasurement", // Controls whether the Conversion Measurement API infrastructure is enabled.
base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kConversionMeasurement, base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kConversionMeasurement); +SET_CROMITE_FEATURE_DISABLED(kConversionMeasurement);
} // namespace attribution_reporting::features } // namespace attribution_reporting::features
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
@@ -680,7 +680,7 @@ void ContentSettingsRegistry::Init() { @@ -649,7 +649,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::INHERIT_IN_INCOGNITO,
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -210,9 +228,9 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc
--- a/components/embedder_support/origin_trials/features.cc --- a/components/embedder_support/origin_trials/features.cc
+++ b/components/embedder_support/origin_trials/features.cc +++ b/components/embedder_support/origin_trials/features.cc
@@ -16,4 +16,5 @@ namespace embedder_support { @@ -15,4 +15,5 @@ namespace embedder_support {
// from the origin trial.
BASE_FEATURE(kOriginTrialsSampleAPIThirdPartyAlternativeUsage, BASE_FEATURE(kOriginTrialsSampleAPIThirdPartyAlternativeUsage,
"OriginTrialsSampleAPIThirdPartyAlternativeUsage",
base::FEATURE_ENABLED_BY_DEFAULT); base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kOriginTrialsSampleAPIThirdPartyAlternativeUsage); +SET_CROMITE_FEATURE_DISABLED(kOriginTrialsSampleAPIThirdPartyAlternativeUsage);
} // namespace embedder_support } // namespace embedder_support
@@ -264,7 +282,7 @@ diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b
diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
--- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc --- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
+++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc +++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
@@ -821,11 +821,9 @@ class AttributionDataHostManagerImpl::PendingRegistrationData { @@ -787,11 +787,9 @@ class AttributionDataHostManagerImpl::PendingRegistrationData {
headers->GetNormalizedHeader( headers->GetNormalizedHeader(
attribution_reporting::kAttributionReportingRegisterTriggerHeader); attribution_reporting::kAttributionReportingRegisterTriggerHeader);
@@ -278,7 +296,7 @@ diff --git a/content/browser/attribution_reporting/attribution_data_host_manager
const bool has_source = const bool has_source =
web_source_header.has_value() || os_source_header.has_value(); web_source_header.has_value() || os_source_header.has_value();
@@ -1184,6 +1182,8 @@ void AttributionDataHostManagerImpl::ParseHeader( @@ -1143,6 +1141,8 @@ void AttributionDataHostManagerImpl::ParseHeader(
Registrations& registrations, Registrations& registrations,
HeaderPendingDecode pending_decode, HeaderPendingDecode pending_decode,
Registrar registrar) { Registrar registrar) {
@@ -299,7 +317,7 @@ diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content
#endif #endif
} }
@@ -348,6 +346,7 @@ void AttributionHost::NotifyNavigationRegistrationData( @@ -342,6 +340,7 @@ void AttributionHost::NotifyNavigationRegistrationData(
return; return;
} }
@@ -310,7 +328,7 @@ diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content
diff --git a/content/browser/attribution_reporting/attribution_manager_impl.cc b/content/browser/attribution_reporting/attribution_manager_impl.cc diff --git a/content/browser/attribution_reporting/attribution_manager_impl.cc b/content/browser/attribution_reporting/attribution_manager_impl.cc
--- a/content/browser/attribution_reporting/attribution_manager_impl.cc --- a/content/browser/attribution_reporting/attribution_manager_impl.cc
+++ b/content/browser/attribution_reporting/attribution_manager_impl.cc +++ b/content/browser/attribution_reporting/attribution_manager_impl.cc
@@ -612,11 +612,7 @@ bool IsOperationAllowed( @@ -522,11 +522,7 @@ bool IsOperationAllowed(
} }
std::unique_ptr<AttributionOsLevelManager> CreateOsLevelManager() { std::unique_ptr<AttributionOsLevelManager> CreateOsLevelManager() {
@@ -345,7 +363,7 @@ diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.
diff --git a/content/browser/attribution_reporting/attribution_report_network_sender.cc b/content/browser/attribution_reporting/attribution_report_network_sender.cc diff --git a/content/browser/attribution_reporting/attribution_report_network_sender.cc b/content/browser/attribution_reporting/attribution_report_network_sender.cc
--- a/content/browser/attribution_reporting/attribution_report_network_sender.cc --- a/content/browser/attribution_reporting/attribution_report_network_sender.cc
+++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc +++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc
@@ -159,6 +159,9 @@ void AttributionReportNetworkSender::SendReport(GURL url, @@ -131,6 +131,9 @@ void AttributionReportNetworkSender::SendReport(GURL url,
url::Origin origin, url::Origin origin,
std::string body, std::string body,
UrlLoaderCallback callback) { UrlLoaderCallback callback) {
@@ -355,7 +373,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se
auto resource_request = std::make_unique<network::ResourceRequest>(); auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = std::move(url); resource_request->url = std::move(url);
resource_request->method = net::HttpRequestHeaders::kPostMethod; resource_request->method = net::HttpRequestHeaders::kPostMethod;
@@ -234,6 +237,12 @@ void AttributionReportNetworkSender::OnReportSent( @@ -206,6 +209,12 @@ void AttributionReportNetworkSender::OnReportSent(
ReportSentCallback sent_callback, ReportSentCallback sent_callback,
UrlLoaderList::iterator it, UrlLoaderList::iterator it,
scoped_refptr<net::HttpResponseHeaders> headers) { scoped_refptr<net::HttpResponseHeaders> headers) {
@@ -371,7 +389,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se
diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc
--- a/content/browser/attribution_reporting/attribution_storage_sql.cc --- a/content/browser/attribution_reporting/attribution_storage_sql.cc
+++ b/content/browser/attribution_reporting/attribution_storage_sql.cc +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc
@@ -541,6 +541,8 @@ void AssignSourceForDeactivationOrDeletion( @@ -535,6 +535,8 @@ void AssignSourceForDeactivationOrDeletion(
} }
} }
@@ -380,7 +398,7 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/
} // namespace } // namespace
// static // static
@@ -563,9 +565,9 @@ bool AttributionStorageSql::Transaction::Commit() { @@ -557,9 +559,9 @@ bool AttributionStorageSql::Transaction::Commit() {
AttributionStorageSql::AttributionStorageSql( AttributionStorageSql::AttributionStorageSql(
const base::FilePath& user_data_directory, const base::FilePath& user_data_directory,
AttributionResolverDelegate* delegate) AttributionResolverDelegate* delegate)
@@ -396,7 +414,7 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -10465,6 +10465,7 @@ bool RenderFrameHostImpl::IsFencedFrameReportingFromRendererAllowed( @@ -10507,6 +10507,7 @@ bool RenderFrameHostImpl::IsFencedFrameReportingFromRendererAllowed(
return false; return false;
} }
@@ -404,7 +422,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
if (!IsActive()) { if (!IsActive()) {
// reportEvent is not allowed when this RenderFrameHost or one of its // reportEvent is not allowed when this RenderFrameHost or one of its
// ancestors is not active. // ancestors is not active.
@@ -14415,6 +14416,16 @@ void RenderFrameHostImpl::BindTrustTokenQueryAnswerer( @@ -14607,6 +14608,16 @@ void RenderFrameHostImpl::BindTrustTokenQueryAnswerer(
return; return;
} }
@@ -424,7 +442,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc
@@ -1484,15 +1484,6 @@ void StoragePartitionImpl::Initialize( @@ -1512,15 +1512,6 @@ void StoragePartitionImpl::Initialize(
bucket_manager_ = std::make_unique<BucketManager>(this); bucket_manager_ = std::make_unique<BucketManager>(this);
@@ -440,7 +458,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage
if (base::FeatureList::IsEnabled(network::features::kInterestGroupStorage)) { if (base::FeatureList::IsEnabled(network::features::kInterestGroupStorage)) {
// Auction worklets on non-Android use dedicated processes; on Android due // Auction worklets on non-Android use dedicated processes; on Android due
// to high cost of process launch they try to reuse renderers. // to high cost of process launch they try to reuse renderers.
@@ -1544,9 +1535,6 @@ void StoragePartitionImpl::Initialize( @@ -1572,9 +1563,6 @@ void StoragePartitionImpl::Initialize(
font_access_manager_ = FontAccessManager::Create(); font_access_manager_ = FontAccessManager::Create();
@@ -453,7 +471,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
--- a/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn
@@ -205,8 +205,6 @@ android_library("content_full_java") { @@ -213,8 +213,6 @@ android_library("content_full_java") {
"//third_party/androidx:androidx_appcompat_appcompat_resources_java", "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
"//third_party/androidx:androidx_collection_collection_java", "//third_party/androidx:androidx_collection_collection_java",
"//third_party/androidx:androidx_core_core_java", "//third_party/androidx:androidx_core_core_java",
@@ -927,7 +945,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc
@@ -631,6 +631,7 @@ void ContentBrowserClient::OnAuctionComplete( @@ -649,6 +649,7 @@ void ContentBrowserClient::OnAuctionComplete(
network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport( network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state, AttributionReportingOsApiState state,
bool client_os_disabled) { bool client_os_disabled) {
@@ -935,7 +953,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
switch (state) { switch (state) {
case AttributionReportingOsApiState::kDisabled: case AttributionReportingOsApiState::kDisabled:
return network::mojom::AttributionSupport::kWeb; return network::mojom::AttributionSupport::kWeb;
@@ -648,13 +649,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( @@ -666,13 +667,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin, const url::Origin* destination_origin,
const url::Origin* reporting_origin, const url::Origin* reporting_origin,
bool* can_bypass) { bool* can_bypass) {
@@ -951,7 +969,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
} }
bool ContentBrowserClient::IsAttributionReportingAllowedForContext( bool ContentBrowserClient::IsAttributionReportingAllowedForContext(
@@ -662,7 +663,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( @@ -680,7 +681,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext(
content::RenderFrameHost* rfh, content::RenderFrameHost* rfh,
const url::Origin& context_origin, const url::Origin& context_origin,
const url::Origin& reporting_origin) { const url::Origin& reporting_origin) {
@@ -1005,7 +1023,7 @@ diff --git a/services/network/attribution/request_headers_internal.cc b/services
diff --git a/services/network/network_context.cc b/services/network/network_context.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc --- a/services/network/network_context.cc
+++ b/services/network/network_context.cc +++ b/services/network/network_context.cc
@@ -1318,6 +1318,10 @@ void NetworkContext::ClearTrustTokenData(mojom::ClearDataFilterPtr filter, @@ -1312,6 +1312,10 @@ void NetworkContext::ClearTrustTokenData(mojom::ClearDataFilterPtr filter,
void NetworkContext::ClearTrustTokenSessionOnlyData( void NetworkContext::ClearTrustTokenSessionOnlyData(
ClearTrustTokenSessionOnlyDataCallback callback) { ClearTrustTokenSessionOnlyDataCallback callback) {
@@ -1065,7 +1083,7 @@ diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network
diff --git a/third_party/blink/renderer/core/frame/attribution_src_loader.cc b/third_party/blink/renderer/core/frame/attribution_src_loader.cc diff --git a/third_party/blink/renderer/core/frame/attribution_src_loader.cc b/third_party/blink/renderer/core/frame/attribution_src_loader.cc
--- a/third_party/blink/renderer/core/frame/attribution_src_loader.cc --- a/third_party/blink/renderer/core/frame/attribution_src_loader.cc
+++ b/third_party/blink/renderer/core/frame/attribution_src_loader.cc +++ b/third_party/blink/renderer/core/frame/attribution_src_loader.cc
@@ -211,8 +211,6 @@ struct AttributionSrcLoader::AttributionHeaders { @@ -220,8 +220,6 @@ struct AttributionSrcLoader::AttributionHeaders {
uint64_t request_id) uint64_t request_id)
: web_source(map.Get(http_names::kAttributionReportingRegisterSource)), : web_source(map.Get(http_names::kAttributionReportingRegisterSource)),
web_trigger(map.Get(http_names::kAttributionReportingRegisterTrigger)), web_trigger(map.Get(http_names::kAttributionReportingRegisterTrigger)),
@@ -1077,7 +1095,7 @@ diff --git a/third_party/blink/renderer/core/frame/attribution_src_loader.cc b/t
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc
@@ -1604,7 +1604,7 @@ void Page::UpdateBrowsingContextGroup( @@ -1586,7 +1586,7 @@ void Page::UpdateBrowsingContextGroup(
void Page::SetAttributionSupport( void Page::SetAttributionSupport(
network::mojom::AttributionSupport attribution_support) { network::mojom::AttributionSupport attribution_support) {
@@ -1085,11 +1103,11 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
+ attribution_support_ = network::mojom::AttributionSupport::kNone; + attribution_support_ = network::mojom::AttributionSupport::kNone;
} }
template class CORE_TEMPLATE_EXPORT Supplement<Page>; // static
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
@@ -285,8 +285,8 @@ @@ -301,8 +301,8 @@
}, },
{ {
// Interest Group JS API/runtimeflag. // Interest Group JS API/runtimeflag.
@@ -1100,7 +1118,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
origin_trial_feature_name: "AdInterestGroupAPI", origin_trial_feature_name: "AdInterestGroupAPI",
implied_by: ["Fledge", "Parakeet"], implied_by: ["Fledge", "Parakeet"],
public: true, public: true,
@@ -558,8 +558,8 @@ @@ -626,8 +626,8 @@
status: "stable", status: "stable",
}, },
{ {
@@ -1111,7 +1129,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
base_feature: "none", base_feature: "none",
public: true, public: true,
}, },
@@ -3778,8 +3778,8 @@ @@ -4047,8 +4047,8 @@
base_feature: "none", base_feature: "none",
}, },
{ {
@@ -1122,8 +1140,8 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
base_feature: "none", base_feature: "none",
public: true, public: true,
}, },
@@ -4983,16 +4983,16 @@ @@ -5268,16 +5268,16 @@
status: "stable", status: "experimental",
}, },
{ {
- name: "TopicsAPI", - name: "TopicsAPI",
+6 -6
View File
@@ -12,7 +12,7 @@ Subject: Disable crash reporting
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc 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 --- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -2719,15 +2719,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( @@ -2688,15 +2688,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
base::NumberToString(pid)); base::NumberToString(pid));
} }
#endif #endif
@@ -31,18 +31,18 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -16087,6 +16087,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed( @@ -16276,6 +16276,7 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
void RenderFrameHostImpl::MaybeGenerateCrashReport( void RenderFrameHostImpl::MaybeGenerateCrashReport(
base::TerminationStatus status, base::TerminationStatus status,
int exit_code) { int exit_code) {
+ if ((true)) return; + if ((true)) return;
if (!last_committed_url_.SchemeIsHTTPOrHTTPS()) if (!last_committed_url_.SchemeIsHTTPOrHTTPS()) {
return; return;
}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -10263,7 +10263,7 @@ void WebContentsImpl::RendererUnresponsive( @@ -10332,7 +10332,7 @@ void WebContentsImpl::RendererUnresponsive(
base::UmaHistogramEnumeration( base::UmaHistogramEnumeration(
"ReportingAndNEL.UnresponsiveRenderer.CrashReportOutcome", outcome); "ReportingAndNEL.UnresponsiveRenderer.CrashReportOutcome", outcome);
@@ -54,7 +54,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
diff --git a/third_party/blink/renderer/controller/javascript_call_stack_collector.cc b/third_party/blink/renderer/controller/javascript_call_stack_collector.cc diff --git a/third_party/blink/renderer/controller/javascript_call_stack_collector.cc b/third_party/blink/renderer/controller/javascript_call_stack_collector.cc
--- a/third_party/blink/renderer/controller/javascript_call_stack_collector.cc --- a/third_party/blink/renderer/controller/javascript_call_stack_collector.cc
+++ b/third_party/blink/renderer/controller/javascript_call_stack_collector.cc +++ b/third_party/blink/renderer/controller/javascript_call_stack_collector.cc
@@ -102,7 +102,7 @@ void GenerateJavaScriptCallStack(v8::Isolate* isolate, void* data) { @@ -98,7 +98,7 @@ void GenerateJavaScriptCallStack(v8::Isolate* isolate, void* data) {
return; return;
} }
ExecutionContext* execution_context = ToExecutionContext(script_state); ExecutionContext* execution_context = ToExecutionContext(script_state);

Some files were not shown because too many files have changed in this diff Show More