* Update from Chromium 121.0.6167.164 to Chromium 122.0.6261.29. * Conflict-resolved patches from Chromium 121.0.6167.139 to Chromium 122.0.6261.18. * Update patches from Chromium 121.0.6167.164 to Chromium 122.0.6261.29. * Updated strings for Chromium 122.0.6261.29. * `GetActivityDataService` deleted from `Configurator` This change adds the new override in place of `GetActivityDataService` used to retrieve the `PersistedData` instance. Chromium change: https://chromium.googlesource.com/chromium/src/+/072744fba32a7435d6a2ee06fed2fa25f645dea9 commit 072744fba32a7435d6a2ee06fed2fa25f645dea9 Author: Joshua Pawlicki <waffles@chromium.org> Date: Wed Dec 6 00:57:12 2023 +0000 update_client: Inject PersistedData from the configurator. This unifies (to some degree) updater::PersistedData and update_client::PersistedData. updater::PD now implements update_client::PD, and internally delegates most functionality to update_client::PersistedDataImpl. Bug: 1496356 * `WebUIBubbleDialogView` constructor taking a weak ptr This constructor is now taking a reference to `BubbleContentsWrapper` as a `WeakPtr`, as the lifetime of the two are not tied. Chromium change: https://chromium.googlesource.com/chromium/src/+/47de8d5f05c98634e3dc3ec4dadc42cb6bdbc7ed commit 47de8d5f05c98634e3dc3ec4dadc42cb6bdbc7ed Author: Justin DeWitt <dewittj@chromium.org> Date: Tue Dec 5 23:45:11 2023 +0000 WebUI: Make WebUIBubbleDialogView hold a weak pointer to BubbleContentsWrapper. WebUIBubbleDialogView dereferences BubbleContentsManager in its destructor, but BubbleContentsWrapper is not a View and so may be destroyed before or after BubbleContentsWrapper. Bug: 1505002, b:313664294 * Fixing `MigrateObsoleteProfilePrefs` override args A new argument has been added to the function being override, which must be passed along. Chromium change: https://chromium.googlesource.com/chromium/src/+/6cc844034df95e44f49fdb8d698f80cdb44bd40a commit 6cc844034df95e44f49fdb8d698f80cdb44bd40a Author: Victor Hugo Vianna Silva <victorvianna@google.com> Date: Wed Dec 6 15:21:57 2023 +0000 Add scaffold of SetUsesSplitStoresAndUPMForLocal() and invoke it This is the function that will be called on startup to set the value of UsesSplitStoresAndUPMForLocal(). Per the doc linked in https://crbug.com/1495626, it needs to be invoked before any keyed services are created. This is done in MigrateObsoleteProfilePrefs(), which is the same approach taken by https://crrev.com/c/5033264. Also add a call to MigrateObsoleteProfilePrefs() to TestingProfile, so the latter can be used for testing later. No behavior change (not even behind flag) because the function is not implemented yet. Bug: 1495626 * Renaming disabled symbolic link blocklist flag This flag has been renamed upstream from kFileSystemAccessDirectoryIterationSymbolicLinkCheck to kFileSystemAccessDirectoryIterationBlocklistCheck, and an additional flag has also be introduced to provide more control over the symbolic link checks. Chromium change: https://chromium.googlesource.com/chromium/src/+/c6780249446e2baa1b6426d9936e11c0e0f30a8c commit c6780249446e2baa1b6426d9936e11c0e0f30a8c Author: Daseul Lee <dslee@chromium.org> Date: Thu Dec 7 19:52:52 2023 +0000 [FSA] Handle symbolic links when checking blocklists. (1) When checking blocklists, use a resolved path returned from `base::MakeAbsoluteFilePath()`, which is expected to resolve any symbolic link. (2) Additionally, check for blocklist when getting a file handle or entries (that are files) from a directory handle. With (1), this check will make sure any new symlink created after the initial check on the parent directory is caught and re-run with blocklist check on fully resolved path. Previously, crrev.com/c/4005144 attempted to handle case (2) partially on POSIX, using `base::IsLink()` and `base::ReadSymbolicLink()`, causing some potential bugs. This CL re-attempts to fix the issue using `base::MakeAbsoluteFilePath()`, which is available on both POSIX and Windows. Both features are disabled and will be enabled after testing. Bug: 1378484 * `kIOSPromoPasswordBubble` deleted upstream Chromium change: https://chromium.googlesource.com/chromium/src/+/43d36ae75975c7145f3c27159dbd22279c71e766 commit 43d36ae75975c7145f3c27159dbd22279c71e766 Author: Nicolas MacBeth <nicolasmacbeth@google.com> Date: Fri Dec 8 20:40:34 2023 +0000 [iOS Desktop password promo] Cleaned up feature flag Cleaned up feature flag for iOS Desktop Acquisition promo for passwords. Only kept the QR code variant of the promo. launch/4243343 Bug: 1490032 * `TabDragController` initialisation returns failure Upstream has added a return type to this procedure to allow the detection of certain initialisation failures. This PR carries along the return value, or carries on with the initialisation for Brave's own override. Chromium change: https://chromium.googlesource.com/chromium/src/+/9d735cd87ac4cdebe7c685b165eb798246331070 commit 9d735cd87ac4cdebe7c685b165eb798246331070 Author: Taylor Bergquist <tbergquist@chromium.org> Date: Sat Dec 9 00:21:02 2023 +0000 Fix crash when TabDragController is destroyed during Init. TabDragController may be destroyed during Init when it calls SetCapture. This is because the OS calls to take capture may reenter Chrome, and tab dragging may end during those reentrant calls. This CL fixes the immediate crash, which happens when TabDragController is dereferenced after Init to do some logging. https://crbug.com/1509581 tracks followup work to extend this approach across the rest of TabDragController. I also moved SetCapture to the end of Init again, and added a giant 'do not add code below here' warning. The code that was after SetCapture wouldn't have run before we potentially reentered TabDragController - so basically TDC was partially uninitialized during that period. Bug: 1431369 * `PartitionKey` to be provide by callers for `PrefProvider` This argument has been changed from defaulted in the declaration to entirely demanded from callers. This change adds the argument to callers, to use the existing WIP default key. Chromium change: https://chromium.googlesource.com/chromium/src/+/805e37d137827ce3e115d7022b044294bf13f760 commit 805e37d137827ce3e115d7022b044294bf13f760 Author: Jason Lin <lxj@google.com> Date: Tue Dec 12 05:52:22 2023 +0000 Remove default PartitionKey from content_settings::ProviderInterface We have migrate all the callers to specify it explicitly. Note that some ProviderInterface subclasses have a default value for `ContentSettingConstraints` (although ProviderInterface itself does not), which is only used by tests. This has also been removed to satisfy the rule of default values. It is probably a good idea to remove it anyway to be consistent with the base class. Bug: b/307193732 * Bypassing visibility checks for cargo crates Chromium change: https://chromium.googlesource.com/chromium/src/+/c3ee076df53f8eadd0ded51d0eb6f14a95376d0e commit c3ee076df53f8eadd0ded51d0eb6f14a95376d0e Author: Nabil Wadih <nwadih@google.com> Date: Tue Dec 12 18:44:37 2023 +0000 Propagate test-only flag to build_script targets Propagate the test-only flag to the `*_build_script__rlib` target which is generated by the build system for cargo_crate targets. Without propagating the flag the build will fail with "Only targets with "test-only=true" can depend on other test-only targets" * Reanchoring `PermissionControllerDelegate` overrides The function that was being used as an anchor for the token replacement has been renamed. Chromium change: https://chromium.googlesource.com/chromium/src/+/33b441e83b1f70381158fcafb0ecde9168b79524 commit 33b441e83b1f70381158fcafb0ecde9168b79524 Author: Balazs Engedy <engedy@chromium.org> Date: Tue Dec 12 18:53:42 2023 +0000 Improve wording of SubscribePermissionStatusChange. To better indicate what is being subscribed to what, rename: SubscribePermissionStatusChange -> SubscribeToPermissionStatusChange UnsubscribePermissionStatusChange -> UnsubscribeFromPermissionStatusChange Bug: 1510841 * [Android] Changes for PermissionDialog Chromium change: https://source.chromium.org/chromium/chromium/src/+/0797b61d3cc617c41998d55c51bd5ae97437b77d Clank OTP: add prompt/delegate JNI logic for one time permissions Bug: 1509386 * [Android] Minor code adjustments to the C122 upstream changes * [Android] Remove most Resources#getColor() Chromium change: https://source.chromium.org/chromium/chromium/src/+/786b549f7d4b2035ae2155ac9f22b15f8013c55e Remove most Resources#getColor(). Low-Coverage-Reason: TRIVIAL_CHANGE Bug: 1302803 * Rename chromium_strings to brave_strings due to upstream branding changes Chromium change: https://source.chromium.org/chromium/chromium/src/+/84840cc4328d7abf6a1de5d71ac1b453a159a0a5 commit 84840cc4328d7abf6a1de5d71ac1b453a159a0a5 Author: Sergei Poletaev <spylogsster@gmail.com> Date: Tue Dec 12 17:29:25 2023 +0000 Fix hardcoded chromium branding for strings grds Building Chromium with separate branding usign branding_path_component strings resources still have hardcoded chromium branding. This patch fixes it using branding_path_component value. Bug: 1510246 * Fixes extraction of Chrome strings into Brave. This was likely broken since the branding change of using the brand name in string files instead of chromium, but hasn't shown up because the affected files maybe haven't changed for a while. * `kEnableLensPing` flag reverted This flag's original CL has been reverted, and since it was being disabled by default, it has no effect to brave. Chromium change: https://chromium.googlesource.com/chromium/src/+/f56b9c19fa18707a353b7ee922c473d71786102c commit f56b9c19fa18707a353b7ee922c473d71786102c Author: Anudeep Palanki <apalanki@google.com> Date: Wed Dec 13 18:01:47 2023 +0000 [Tech Debt] Remove expired enable-lens-ping Reverts changes made in https://chromium-review.googlesource.com/c/chromium/src/+/4406511 Bug: b/311788454,1489925 * `kNtpHistoryClustersModuleDiscounts` flag deleted upstream Chromium change: https://chromium.googlesource.com/chromium/src/+/f0c4460c2a3742970950378fd5d88a882c534ceb commit f0c4460c2a3742970950378fd5d88a882c534ceb Author: Mei Liang <meiliang@chromium.org> Date: Wed Dec 13 20:28:33 2023 +0000 [Discounts][fixit] Clean up the kNtpHistoryClustersModuleDiscounts flag Bug: b:309863117 * [ios] Browser `net` moved into `model/` subfolder This is a regular path refactoring that is taking place upstream. This change in particular requires changes to specific patches we have, as well as inclusion paths. Chromium change: https://chromium.googlesource.com/chromium/src/+/bbeef1ef9429af7741ef8aad3cfdcea9a82568fd commit bbeef1ef9429af7741ef8aad3cfdcea9a82568fd Author: mmrashad <mmrashad@google.com> Date: Thu Dec 14 15:16:46 2023 +0000 [Code Health][iOS][3/3] Move ios/c/b/net to model subfolder To simplify the folder hierarchy on iOS and have a clearer layer separation, all the files in ios/c/b/<foo>/ will be moved to ios/c/b/<foo>/model/ to showcase that they are model files. Bug: 1319852, 1480322 * `RenderViewHost` getter removed from `RenderViewContextMenuProxy` This change is of no effect to brave, as it only affects the stub of a mock returning a nullptr. Chromium change: https://chromium.googlesource.com/chromium/src/+/3fd0e9663bec4f2e83f6313d36e33acbb190ca7b Author: Ian Vollick <vollick@chromium.org> Date: Thu Dec 14 21:51:51 2023 +0000 Avoid use of RenderViewHost in RenderViewContextMenu With this change, we switch callers to getting a RFH (either for the appropriate subframe or the primary main frame of the associated web contents) as suggested by mcnee@. Bug: 1129073,1393234 * Memory saver url constants renamed These URL contants are entirely shadowed in brave, and require to be redifined on our own overrides. Chromium change: https://chromium.googlesource.com/chromium/src/+/3a43a5f06f6c228b7475a0d51d3ed9bbad08805f commit 3a43a5f06f6c228b7475a0d51d3ed9bbad08805f Author: Alison Gale <agale@chromium.org> Date: Thu Dec 14 16:04:22 2023 +0000 Rename remaining instances of high efficiency to memory saver This is one of a set of CLs to rename the "high efficiency" feature to "memory saver" to match the branding we launched with and resolve confusion when searching for code. All CLs are tagged with #rename-high-efficiency. I plan to wait for most of them to be approved before starting to submit these changes to ensure the code remains in a consistent state. After submitting these CLs I'll make another pass to capture any remaining references that can be changed. #rename-high-efficiency Bug: 1493843 * [ios] Include `DriveService` provider This provider is necessary to avoid linking error. Chromium change: https://chromium.googlesource.com/chromium/src/+/3c1ae5137984621c7d9f50bc388d501960067507 commit 3c1ae5137984621c7d9f50bc388d501960067507 Author: Quentin Pubert <qpubert@google.com> Date: Tue Dec 12 17:09:30 2023 +0000 [iOS] Add Drive provider API and DriveService This CL adds a Drive provider API with a single function ``` std::unique_ptr<drive::DriveService> CreateDriveService( const drive::DriveServiceConfiguration& configuration); ``` which returns an instance of `drive::DriveService` based on the provided `DriveServiceConfiguration` instance. Bug: 1495347 * Revert "`RenderViewHost` getter removed from `RenderViewContextMenuProxy`" This reverts commit 11b127abab3772ab3fe045612386669df7c5a0c1. * `kFirstPartySets` deleted upstream Chromium change: https://chromium.googlesource.com/chromium/src/+/2f66b94b342466015f3a0a95479bddc9d7e99f0a commit 2f66b94b342466015f3a0a95479bddc9d7e99f0a Author: Chris Fredrickson <cfredric@chromium.org> Date: Fri Dec 15 20:38:49 2023 +0000 [RWS] Remove RWS feature flag This feature became enabled by default in M119. This CL deletes the FirstPartySetsClearSiteDataOnChangedSets param (which is enabled by default now), and hardcodes the FirstPartySetsMaxAssociatedSites param in the parser. However, the FirstPartySetsNavigationThrottleTimeout param and associated FirstPartySetsNavigationThrottle code (which is a no-op today, other than in tests) shouldn't be deleted yet, since it is important if Chrome is configured to "pause" network requests until RWS is fully initialized. That behavior is controlled by the WaitForFirstPartySetsInit feature (and is tested, since I'd love to enable it someday to fix https://crbug.com/1488079), but is disabled by default. So this CL moves the FirstPartySetsNavigationThrottleTimeout param to the WaitForFirstPartySetsInit feature instead of deleting it. * Changes to CT policy enforce testing methods This is a straight forward change around the use of `SetCTLogListAlwaysTimelyForTesting`, which has been deleted upsrteam. Chromium change: https://chromium.googlesource.com/chromium/src/+/635c4a0fd2ee0985953464778e2af0f94d9063b4 commit 635c4a0fd2ee0985953464778e2af0f94d9063b4 Author: Matt Mueller <mattm@chromium.org> Date: Fri Dec 15 19:05:40 2023 +0000 refactor CTPolicyEnforcer to be run by CertVerifyProc Previously it was run at the socket layer in the network service. Bug: 848277 * Fix `ShouldSkipConditionalFeatureEntry` override This override used to rely on a replacement on its body, however due to recent upstream changes, the token in question has been moved to be guarded for ash-mode only. This change adds a patch to make sure the token is replaced on the exact expected place. Chromium change: https://chromium.googlesource.com/chromium/src/+/dd7cd30687778973e99cfc9829d314b37dbcc1a0 commit dd7cd30687778973e99cfc9829d314b37dbcc1a0 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Dec 15 11:58:35 2023 +0000 Show chrome://flags/#enable-unsafe-webgpu on all channels As WebGPU shipped on stable channel, this restriction is not needed anymore. Bug: 852089 * `ENABLE_SEARCH_ENGINE_CHOICE` build flag deleted This build flag has been deleted and it seems that the actual test is whether or not it is an android build. Chromium change: https://chromium.googlesource.com/chromium/src/+/1aae2ba88f573a0517572708647c3ab1ee7fbea5 commit 1aae2ba88f573a0517572708647c3ab1ee7fbea5 Author: Jack Yammine <jyammine@google.com> Date: Sat Dec 16 06:56:36 2023 +0000 [waffle]Remove the 'ENABLE_SEARCH_ENGINE_CHOICE' build flag We remove the buildflag because it has caused a lot of issues when we forget to check if the code compiles on Fuchsia for example. Instead, we build the files on all Desktop operating systems and make sure that the `SearchEngineChoiceService` is only initialized on the operating systems in which we want to display the screen. Fixed: b:308433630 * `use_typescript_sources` deleted upstream The use of this variable was a workaround due to mojom interfaces that needed to still support JS bindings. This seems to be fixed upstream now around the dependencies that had caused this issue in the first place, with the variable gone with it. Chromium change: https://chromium.googlesource.com/chromium/src/+/345a777cc39fcf40be04f1db1023f2b5c4a65ec1 commit 345a777cc39fcf40be04f1db1023f2b5c4a65ec1 Author: Rebekah Potter <rbpotter@chromium.org> Date: Fri Dec 15 20:12:14 2023 +0000 Reland WebUI Mojo Bindings: Remove use_typescript_sources This reverts commit 302442a4b40c217a82ed67c01b83bb3b755542d9. Reason for revert: Fixing typo Original change's description: > Revert "WebUI Mojo Bindings: Remove use_typescript_sources" > > This reverts commit 2599dd89d8c7c4afc478906b02105abbfca40c5f. > > Reason for revert: breaks compile for chromeos dbg > https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-compile-dbg/1632716 > > FileNotFoundError: [Errno 2] No such file or directory: 'gen/mojom-webui/chrome/test/data/webui/chromeos/web_ui_test.mojom-webui.js' > > Original change's description: > > WebUI Mojo Bindings: Remove use_typescript_sources > > > > The use_typescript_sources parameter was confusing to reviewers (not > > clear what "sources" it refers to, or that it is WebUI-specific), and > > is now default true/on which is the reverse of convention and confuses > > developers about when the parameter needs to be specified. > > > > Renaming it to generate_webui_js_bindings, changing to default "off", > > and limiting the parameter to ChromeOS Ash since WebUI bindings always > > use TypeScript on other platforms. > > > > In this CL removing use_typescript_sources and updating a few > > remaining users. > > > > Bug: 1002798 > > Change-Id: Ic6ee29be22b65bb2d4b1f5fda013766b3c06bd5e > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5115946 > > Reviewed-by: Reilly Grant <reillyg@chromium.org> > > Reviewed-by: Robert Sesek <rsesek@chromium.org> > > Commit-Queue: Rebekah Potter <rbpotter@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#1237670} > > Bug: 1002798 > Change-Id: I84c93e8c09ac384f18440e3eb791cf8b5b5d4b22 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5124793 > Auto-Submit: Joel Hockey <joelhockey@chromium.org> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Shibalik Mohapatra <shibalik@chromium.org> > Owners-Override: Shibalik Mohapatra <shibalik@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1237850} Bug: 1002798 * Reanchoring `PermissionPromptBubbleBaseView` override This override used to be part of the constructor of the class, however the button creation step that it is associated with has been moved to a separate method, and therefore data like the browser instance, and delegate must be accessed as data members. Chromium change: https://chromium.googlesource.com/chromium/src/+/187fedf3180a0459668ac5ecc8c1e41dc66f46cc commit 187fedf3180a0459668ac5ecc8c1e41dc66f46cc Author: Daniel d'Andrada <dandrader@google.com> Date: Mon Dec 18 13:59:24 2023 +0000 Refactor PermissionPromptBubbleBaseView Do not override GetWindowTitle() and GetAccessibleWindowTitle() as this duplicates logic already present in WidgetDelegate. Also, instead of having child classes pass this information in the constructor let them use the existing setters instead. Splitting the big do-it-all constructor into separate methods improves readability and extensibility. You no longer have to add yet another constructor parameter when something else in the base prompt needs to be customized. Bug: 1503624 * Fix overrides around `ToolbarButton` There's no need anymore to virtualise `UpdateColorsAndInsets`, as it has been made virtual upstream. There has also been some change to the `ConfigureInkDropForToolbar`, and its argument list that had to be matched on our override. Chromium change: https://chromium.googlesource.com/chromium/src/+/5018745e22b1cc42d8f5e450754a2b757c447638 commit 5018745e22b1cc42d8f5e450754a2b757c447638 Author: EmiliaPaz <emiliapaz@chromium.org> Date: Tue Dec 19 15:14:54 2023 +0000 [Extensions c2s] Add ToolbarChipButton with flat edges ToolbarButton has two formats: default and highlight (label with border). This CL introduces a new formatting that allows the button to have a flat edge. To not interfere with the existing toolbar buttons formatting, it's implemented as ToolbarChipButton. Toolbar chip button is used in the extensions toolbar to display the extensions request access button (right flat edge) and the extensions toolbar button (left flat edge only when request access button is visible). This will allow us to remove the extensions controls view and add the toolbar buttons directly to the extensions container. Screenshot: https://drive.google.com/file/d/1dacX_zUOjTspVojxzzB_ArpAOcw9jPFp/view?usp=sharing Screencast: https://drive.google.com/file/d/1w0oQgpg4Npk_blJqwtK_W1GRD8KGaIvc/view?usp=sharing Bug: 1511762 * Constraining `GetActiveWebContents` substitution This token is being subsituted to inject some code in `ShowDeviceChooserDialogForExtension`. This substitution can easily break due to how common this function name is. This change prempts the inclusion of header that started causing an unwanted substitution. Chromium change: https://chromium.googlesource.com/chromium/src/+/550ac0206ee38484e0cf4604735b106d74aece8f commit 550ac0206ee38484e0cf4604735b106d74aece8f Author: Emilia Paz <emiliapaz@chromium.org> Date: Tue Jun 13 00:54:49 2023 +0000 [Extensions] Add extensions to request access button tooltip Display the extensions requesting site access in the request access button tooltip instead of a hover card. This change is after a study where the users were constantly trying to click on the hover card. Leaving the hover card coordinator and bubble for now, since we are testing the tooltip. Screenshot: https://drive.google.com/file/d/1wicsoVb5RkvJQoA51w9y4A9L94c1uDeP/view?usp=sharing Bug: 123977 * `MutableProfileOAuth2TokenServiceDelegate` ctor updated The brave implementation passes along all the construction arguments necessary, and one of the argument types in the argument list changed, however this is of no effect for our own implementation. Chromium change: https://chromium.googlesource.com/chromium/src/+/c5c0858f7978be99020e9b3da8a3ef5e6cb21ef3 commit c5c0858f7978be99020e9b3da8a3ef5e6cb21ef3 Author: Gabriel Oliveira <gabolvr@google.com> Date: Tue Dec 19 17:04:03 2023 +0000 [Uno-D] Keep signed in account on reload with clear on exit for UNO Bug: b/311143191 * [ios] Browser `tab` moved into `model/` subfolder. This change merely affects inclusion paths. Chromium change: https://chromium.googlesource.com/chromium/src/+/9baed1f5d6064a8aa83525afe3f2a87c355418b4 commit 9baed1f5d6064a8aa83525afe3f2a87c355418b4 Author: Sylvain Defresne <sdefresne@chromium.org> Date: Tue Dec 19 16:25:59 2023 +0000 [ios] Move tabs related model files to //ios/chrome/browser/tabs/model As discussed in https://crrev.com/c/5134814, move a couple of files from //ios/chrome/browser/sync/model to //ios/chrome/browser/tabs/model. Bug: none * Using `raw_ptr` with `vector<T*>` Upstream vector of pointers are now wrapping the reference into a `raw_ptr`. This change corrects our interactions with such upstream containers. Chromium change: https://chromium.googlesource.com/chromium/src/+/e63cbaf6fdcfdac0f04883d956b00e83330bd0a2 commit e63cbaf6fdcfdac0f04883d956b00e83330bd0a2 Author: Ali Hijazi <ahijazi@chromium.org> Date: Wed Dec 20 19:29:35 2023 +0000 Rewrite vector<T*> into vector<raw_ptr<T, VectorExperimental>> See chromium-dev announcement: https://groups.google.com/a/chromium.org/g/chromium-dev/c/sKckMpzHQgY/m/M3SWxEg3AQAJ?utm_medium=email&utm_source=footer Code review: - First patch: Automatic rewrite - Later patches: Manual fixes The automatic rewrite used the script: ./tools/clang/rewrite_templated_container_fields/rewrite-multiple-platforms.sh Binary size increase: The increase is only 33% (+5kB) above the per-patch limit (+16kB). This is not a lot given the size of the rewrite. Increase of around 500kb was approved for MiraclePtr. AX-Relnotes: n/a. * Add metadata to `TransparentButton` derived types Metadata has been added to `TransparentButton`, which forces all derived types to also have it. This change adds the missing metadata to BraveDownloadItemViewButton. Chromium change: https://chromium.googlesource.com/chromium/src/+/dab2d7d8039c805038cd357dd46e7b298728f381 commit dab2d7d8039c805038cd357dd46e7b298728f381 Author: David Yeung <dayeung@chromium.org> Date: Wed Dec 20 18:12:19 2023 +0000 [views] Update METADATA_MACRO to use newer version. Update View classes to use 2 param version of METADATA_HEADER. Low-Coverage-Reason: LARGE_SCALE_REFACTOR Bug: 1485768 * [ios] Browser `web` moved into `model/` subfolder This change affects inclusion paths, deps, and some of the shadowing files in our codebase. There are no functional changes however. Chromium changes: https://chromium.googlesource.com/chromium/src/+/dca21fb37574f4076e051aa229bba6cc122a1e4f commit dca21fb37574f4076e051aa229bba6cc122a1e4f Author: Weizhong Xia <weizhong@google.com> Date: Wed Dec 20 20:10:11 2023 +0000 [Code Health][iOS] Move ios/c/b/web to model subfolder To simplify the folder hierarchy on iOS and have a clearer layer separation, all the files in ios/c/b/<foo>/ will be moved to ios/c/b/<foo>/model/ to showcase that they are model files. Bug: 1480376 * Removing deleted header for notification auth types This header has been deleted upstream, but its deletion is of no consequence to the sites where it was being included. Chromium change: https://chromium.googlesource.com/chromium/src/+/1ae20a326e55ac545846b136b2f5f173995e91f5 commit 1ae20a326e55ac545846b136b2f5f173995e91f5 Author: Erik Chen <erikchen@chromium.org> Date: Tue Dec 26 07:04:17 2023 +0000 Delete auth notification types. All remaining usage has been migrated. The code is unused. Bug: 1371177, 1174785 * [WIP] Fix `BraveOmniboxClient` weakptr substitution Chromium change: https://chromium.googlesource.com/chromium/src/+/f19bec69a942a25908c2842b368f37396193d27a commit f19bec69a942a25908c2842b368f37396193d27a Author: David Bertoni <dbertoni@chromium.org> Date: Wed Dec 27 19:13:13 2023 +0000 [Code Health] Remove uses of base::SupportsWeakPtr (ob) Bug: 647430 * [ios] Public key pins check simplified Upstream has greatly simplified the signature for the `CheckPublicKeyPins`, and this change adjusts that accordingly. Chromium change: https://chromium.googlesource.com/chromium/src/+/e4fc52aab5f330bb114a8054a88751e4759c54e3 commit e4fc52aab5f330bb114a8054a88751e4759c54e3 Author: Emily Stark <estark@google.com> Date: Wed Dec 27 08:02:58 2023 +0000 Remove public key pins reporting This feature is somewhat obviated by Certificate Transparency monitoring and rarely used (only by Google servers), so this CL removes it. Internal doc for context: https://docs.google.com/document/d/1eQDOFIEZgFv5ITIX5d4iqaWYjQNp2vH0D1U7i57Z2tw/edit?tab=t.0 Bug: 1513205 * `SelectFileDialog` listerner passing `SelectedFileInfo` This listener has been simplified to use `SelectedFileInfo` instances on its events. This meant updating our own uses of these overriden interfaces. Chromium change: https://chromium.googlesource.com/chromium/src/+/d0b88a2bb42b34c43720c0e9ee2543e4c9df3071 commit e4fc52aab5f330bb114a8054a88751e4759c54e3 Author: Emily Stark <estark@google.com> Date: Wed Dec 27 08:02:58 2023 +0000 Remove public key pins reporting This feature is somewhat obviated by Certificate Transparency monitoring and rarely used (only by Google servers), so this CL removes it. Internal doc for context: https://docs.google.com/document/d/1eQDOFIEZgFv5ITIX5d4iqaWYjQNp2vH0D1U7i57Z2tw/edit?tab=t.0 Bug: 1513205 * `monochrome_public_common_apk_or_module_tmpl` removed upstream The case for which the patching of this template had been introduced was deleted a while ago, so the patch was not required anymore. Chromium change: https://chromium.googlesource.com/chromium/src/+/f326467d56d41a0db84b5d3209a6db3654978a4b commit f326467d56d41a0db84b5d3209a6db3654978a4b Author: Egor Pasko <pasko@chromium.org> Date: Tue Jan 2 16:03:26 2024 +0000 Remove monochrome_public_common_apk_or_module_tmpl This template is no longer used? Bug: 1427610 * `BubbleContentsWrapper` requires a UI name Upstream validates the UI name during compile-time, and assorts it with some histograms. Although the historgrams are not relevant to brave, the names are being provided to avoid invasive changes in upstream code. Chromium change: https://chromium.googlesource.com/chromium/src/+/80995e9585aa13ab4fb6293a6f9d946a26e81c01 commit 80995e9585aa13ab4fb6293a6f9d946a26e81c01 Author: Anthony Vallee-Dubois <anthonyvd@chromium.org> Date: Tue Jan 2 15:05:05 2024 +0000 Record histograms for LCP of non-tab WebUI content This CL adds some histograms to record the Time to Largest Contentful Paint of different WebUI surfaces. To achieve this, it introduces a new `PageLoadMetricsObserver` subclass that is only installed for `WebContents` associated with a `BubbleContentsWrapperT`. This should cover all of side-panel WebUI contents, as well as some bubbles set up using this wrapper. Having these metrics aims to help analyze the performance of these non-tab WebUI surfaces, and the `PageLoadMetricsObserver` can be extended to further progress towards this goal (more metrics, trace events, etc). Change-Id: I11cfca4358ff8a9f8cdaccd58f06a78eba0dbfc5 * `MakeFixedFlatMap` now `consteval` By making this consteval, the issue of sorting has been sidestepped with a more reliable approach. The use of `base::sorted_unique` is not required anymore for fixed flat maps, as consteval guarantees the operation will happen at compile time, as opposed to the compiler bailing out during sorting with `constexpr`. Chromium change: https://chromium.googlesource.com/chromium/src/+/45e5a3254798f4f5ccb1ee5b220513a6b773f529 commit 45e5a3254798f4f5ccb1ee5b220513a6b773f529 Author: Andrew Grieve <agrieve@chromium.org> Date: Tue Jan 2 18:36:08 2024 +0000 Make base::MakeFixedFlatMap consteval This ensures that it will be evaluated at compile-time. Also adds MakeFixedFlatMapNonConstEval for the one instance where compile-time evaluation is not possible. Bug: None * Removing `proxy_server` from `ProxyChain` The new accessor is indexed by the chain number. This change corrects the existing tests to use the default first chain. Chromium change: https://chromium.googlesource.com/chromium/src/+/13e652b8b2c26c47b5e498c19be37d3189405e04 commit 13e652b8b2c26c47b5e498c19be37d3189405e04 Author: Andrew Williams <awillia@chromium.org> Date: Tue Jan 2 16:49:12 2024 +0000 [IP Protection] Remove ProxyChain::proxy_server and ProxyList::GetAll This continues our migration from using ProxyServers directly to using ProxyChains. Bug: 1491092 * [Android] BaselineGM3SurfaceColors flag was removed Chromium change: https://source.chromium.org/chromium/chromium/src/+/3ef96fad99e1e08269df3965dca06f05b034ce65 [Fixit] Clean up BaselineGM3SurfaceColors This CL also revs a bunch of render tests. Even though the feature has been enabled for some time, the render tests weren't affected because they don't run the actual ChromeBaseAppCompatActivity and wouldn't be applying the theme overlay that was gated behind the--now enabled--flag. Bug: 1410537 * [Android] PrivacyGuideAndroid flag was deprecated Chromium change: https://source.chromium.org/chromium/chromium/src/+/46077c8b9f2e8e3f9ee8c56fc36157fed26606f2 [Fixit] Deprecate kPrivacyGuideAndroid flag Bug: 1490155 * [Android] Generic callback interfaces were removed The quick fix is just to return them back into our code base as they are used in may places in our code. Chromium change: https://github.com/brave/chromium/commit/d166d258ebe6545f2e3401eed812bb72280a9cad Remove the generic Mojo callback interfaces. This potentially allows followups to pass primitive types rather than the Boxed equivalent, and removes the need to write Callback0, Callback1, Callback2, et cetera generic interfaces. Bug: 1491924 * Virtual method `IsConnectionMetered` add to Configurator This method has a simple implementation as an accessor to the implementation's function of the same name. Chromium change: https://chromium.googlesource.com/chromium/src/+/fb0255c8d251639c336a2f133fc65a3c6336f49b commit fb0255c8d251639c336a2f133fc65a3c6336f49b Author: Noah Rose Ledesma <noahrose@google.com> Date: Thu Jan 4 00:28:23 2024 +0000 Allow component updates to be disabled on metered connections Component installer policies can now specify if the component should be updated on metered networks. This will be useful for the addition of larger non-critical components. Bug: 1513241 * Fix `DeviceInfoSyncBridge` access to its data The type of `all_data_` has been changed to an internal class, providing an accessor to `DeviceInfoSpecifics`. Chromium change: https://chromium.googlesource.com/chromium/src/+/eedd55b4358962e0feb1c08ed013275c750ae32e commit eedd55b4358962e0feb1c08ed013275c750ae32e Author: Mikel Astiz <mastiz@chromium.org> Date: Wed Jan 3 16:41:41 2024 +0000 [sync] Precompute DeviceInfo for each DeviceInfoSpecifics Eventually, the goal is to improve performance for functions such as DeviceInfoSyncBridge::GetAllDeviceInfo(). As a first step, the internal map maintained by DeviceInfoSyncBridge is extended to maintain, for each proto, the converted DeviceInfo class. This incurs in some memory overhead but it is deemed negligible for the vast majority of users (a few kilobytes in total for the 99th percentile). This change doesn't immediately come with performance benefits as GetAllDeviceInfo()'s signature enforces the need to make deep copies. As per added TODOs, follow-up patches will update this signature to avoid these expensive copies. Change-Id: I88631d694516954e919299c6da967110440401a5 Bug: b/316374607 * Deprecated `SetPrivacySandboxEnabled` deleted Chromium change: https://chromium.googlesource.com/chromium/src/+/ee1264ea003c2a0f14cc68e585706a13901ad7a4 commit ee1264ea003c2a0f14cc68e585706a13901ad7a4 Author: Mariam Ali <alimariam@google.com> Date: Wed Jan 3 15:07:59 2024 +0000 Privacy Sandbox GA Cleanup: Remove deprecated SetPrivacySandboxEnabled method Bug: 1449833, 1378703 * [Android] kWebViewMetricsFiltering flag was removed Chromium change: https://source.chromium.org/chromium/chromium/src/+/e63d689c6868ae6e96ed7d65967fed056443f198 Clean up WebViewMetricsFiltering after being default enabled Also remove unneeded tests. Bug: 1465353, 1385901 * Changes for PermissionRequestManager::Requests Chromium change: https://source.chromium.org/chromium/chromium/src/+/e63cbaf6fdcfdac0f04883d956b00e83330bd0a2 Rewrite vector<T*> into vector<raw_ptr<T, VectorExperimental>> See chromium-dev announcement: https://groups.google.com/a/chromium.org/g/chromium-dev/c/sKckMpzHQgY/m/M3SWxEg3AQAJ?utm_medium=email&utm_source=footer Code review: - First patch: Automatic rewrite - Later patches: Manual fixes The automatic rewrite used the script: ./tools/clang/rewrite_templated_container_fields/rewrite-multiple-platforms.sh Binary size increase: The increase is only 33% (+5kB) above the per-patch limit (+16kB). This is not a lot given the size of the rewrite. Increase of around 500kb was approved for MiraclePtr. AX-Relnotes: n/a. Binary-Size: See commit description. Bug: 1432993 * [Android] Fix for GetLocalPrepopulatedEngines changes Chromium change: https://source.chromium.org/chromium/chromium/src/+/0cd7f0c1767b6d5d15a0e99adcb39b15ab76c412 🧇 Ensure that GetPrepopulatedTemplateURLData never gets null prefs A previous change started making it required to pass prefs when calling this method, but Android is the last platform where the SearchEngineChoice feature that requires it is not enabled. In preparation of rolling out changes related to this feature on Android too, we close this outstanding issue. Noting that: 1. We still have many tests passing null prefs, so this exception is allowed for now, until we fix this in follow-ups, as part of https://crbug.com/1499181 2. We are assuming that the service should be available when methods are called from Java, and currently return fallback values if it's not the case. We will move the service availability check to Java in another follow-up (see b/318339172). Bug: 1499181 Fixed: b:303632061 * [Android] NTP code cleanup Chromium change: https://source.chromium.org/chromium/chromium/src/+/c61d12a60ddfe88a1f18810c32f338ebaa0b0239 [Android] Cleanup kProbabilisticCryptidRenderer deprecated flag Bug: 1385901 * [Android] Removed unused rounded_corners resource Chromium change: https://source.chromium.org/chromium/chromium/src/+/1511362d0f3b9d49d2d39214b30113c046233ea8 Remove FEED_BACK_TO_TOP We don't have a plan to experiment and launch this feature. We're working on refactoring feed code to support new layout and we don't want to spend extra time maintaining unplanned feature. Bug: 1511104 * [Android] Minor unit tests fixes * [Android] Query tiles feature was deprecated Chromium change: https://source.chromium.org/chromium/chromium/src/+/eda153ebc5666ae870421560c5184783bc73553a [Fixit] Deprecating query tiles feature code for NTP and Start. In this CL, cleanup all the code related related to QueryTiles at NTP and Start. Also deleting QueryTileSegmentation feature flag. Change-Id: I44e88352646deeda69cca90a559139f79535b9dc Bug: b/316606367 * Replace BasicStringPiece with std::basic_string_view Chromium change: https://source.chromium.org/chromium/chromium/src/+/9dcb26dd13712e39f7e76e6678011dc842b630bd commit 9dcb26dd13712e39f7e76e6678011dc842b630bd Author: Takuto Ikuta <tikuta@chromium.org> Date: Tue Dec 19 08:02:08 2023 +0000 base: remove BasicStringPiece Bug: 691162 * Add missing //chrome/browser/permissions dep * Remove obsolete MigrateBraveDarkModePrefs * Testing profile now migrates obsolete profile prefs Chromium change: https://source.chromium.org/chromium/chromium/src/+/e63cbaf6fdcfdac0f04883d956b00e83330bd0a2 commit e63cbaf6fdcfdac0f04883d956b00e83330bd0a2 Author: Ali Hijazi <ahijazi@chromium.org> Date: Wed Dec 20 19:29:35 2023 +0000 Rewrite vector<T*> into vector<raw_ptr<T, VectorExperimental>> See chromium-dev announcement: https://groups.google.com/a/chromium.org/g/chromium-dev/c/sKckMpzHQgY/m/M3SWxEg3AQAJ?utm_medium=email&utm_source=footer Code review: - First patch: Automatic rewrite - Later patches: Manual fixes The automatic rewrite used the script: ./tools/clang/rewrite_templated_container_fields/rewrite-multiple-platforms.sh Binary size increase: The increase is only 33% (+5kB) above the per-patch limit (+16kB). This is not a lot given the size of the rewrite. Increase of around 500kb was services are created. This is done in MigrateObsoleteProfilePrefs(), which is the same approach taken by https://crrev.com/c/5033264. Also add a call to MigrateObsoleteProfilePrefs() to TestingProfile, so the latter can be used for testing later. No behavior change (not even behind flag) because the function is not implemented yet. Bug: 1495626 * [Android] Changes for SingleWebsiteSettings.setupContentSettingsPreference Chromium changes: https://source.chromium.org/chromium/chromium/src/+/104fb6d77c5d1d5c07e33486ad3d4c901bfbf907 Clank OTP: Add support for showing one time grant in page info Bug: 1509386 * Correct access to `DeviceInfoTracker` In order to avoid deep copies, access to `DeviceInfo` in `DeviceInfoTracker` is now done to a vector of pointers for the info. Chromium change: https://chromium.googlesource.com/chromium/src/+/5c6b332f6993841570c4e45eec87d7e5828351bd commit 5c6b332f6993841570c4e45eec87d7e5828351bd Author: Mikel Astiz <mastiz@chromium.org> Date: Thu Jan 4 20:24:30 2024 +0000 [sync] Avoid deep copies of DeviceInfo in DeviceInfoTracker This is a performance improvement that makes APIs calls such as GetAllDeviceInfo(), as implemented by DeviceInfoSyncBridge, significantly faster for users with a very large number of sync-ing devices (deemed to be a rare scenario). There are still codepaths under chrome/browser/sharing that perform deep copies, now moved to the calling site. TODOs have been added to tackle those in follow-up patches. Change-Id: Idd45cffdeb526a3072b2e1afc8eaa89300233956 Bug: b/316374607 * Access around `OmniboxController` moved around `OmniboxController::result()` has been rempoved, and `result` is now retriavable through `autocomplete_controller()` in the controller. Addiotionally, `OmniboxEditModel::StopAutocomplete()` has been deleted and it is now accessed through `OmniboxController`. Chromium change: https://chromium.googlesource.com/chromium/src/+/c36dea22089c9a4ca7bce2d2be11d1f6595b5d0c commit c36dea22089c9a4ca7bce2d2be11d1f6595b5d0c Author: Mohamad Ahmadi <mahmadi@chromium.org> Date: Thu Jan 4 20:17:32 2024 +0000 [omnibox] Moves StopAutocomplete and StartPrefetch to OmniboxController This is intended to beef up the OmniboxController to play more of a controller role in the MVC model and provide a consistent interface for the caller to start/stop the Autocompletion flow. This CL does not move OmniboxEditModel::StartZeroSuggestRequest() and OmniboxEditModel::StartAutocomplete() to the OmniboxController yet. Removes result() and query_in_progress() from OmniboxController. Given the similar naming of OmniboxController and ACController, these convenience methods can be confusing to the reader. These methods can be called directly on an AutocompleteController instance which can be obtained from the OmniboxController. Bug: 1404748 * Fix `ComponentInstaller` overrides arg list The methods being overriden do not include a `TaskPriority` argument any longer. Chromium change: https://chromium.googlesource.com/chromium/src/+/f5b3542ab4e8de9e679924d33c7a3f5fa76695dd commit f5b3542ab4e8de9e679924d33c7a3f5fa76695dd Author: Noah Rose Ledesma <noahrose@google.com> Date: Fri Jan 5 17:14:24 2024 +0000 Allow components to be uninstalled w/o registering Previously attempting to uninstall a component before it was registered could cause a crash due to a null task runner. The task runner initialization has been moved to the installer's constructor. Additionally, Uninstall now operates without relying on registration info to locate the install directory. Bug: 1515745 * `IsPrivacySandboxEnabled` deleted upstream The function `IsPrivacySandboxEnabled` has been deleted based on what seems to be an effort to deprecate old versions supported for sandbox. This change deletes the removed virtual, and also a test around this method that cannot be carried out, now that the method has been deleted upstream. Chromium change: https://chromium.googlesource.com/chromium/src/+/59e9654b8b045701e709da49daf9f287611ef99f commit 59e9654b8b045701e709da49daf9f287611ef99f Author: Mariam Ali <alimariam@google.com> Date: Thu Jan 4 11:13:02 2024 +0000 Privacy Sandbox GA Cleanup: Remove deprecated IsPrivacySandboxEnabled method Bug: 1449833, 1310157 * `version_info` now under `//base` Brave's patches and overrides to the `//components` previous version have been moved into the new location. Chromium change: https://chromium.googlesource.com/chromium/src/+/778e421637a4f1cd2268a41a42130f9f83274e40 commit 778e421637a4f1cd2268a41a42130f9f83274e40 Author: Henrique Nakashima <hnakashima@chromium.org> Date: Fri Jan 5 19:51:57 2024 +0000 Move version_info into //base This is a step to move version_info from //components into //base, which is a dependency of cached feature flags which is also getting moved to //base. //components/version_info is left as a facade of //base/version_info. This CL leaves two copies of Channel.java, one in //components (copy of the auto-generated) and one in //base (auto-generated), in order to perform the migration to //base downstream. Soon after, https://crrev/c/5142488 will delete //components/version_info/.../Channel.java. I cannot do it on the same CL because of the Java @interface Channel which cannot easily be made into a facade. The upstream references are migrated in this same CL. Bug: 1515661 * Move `kPresetZoomFactors` overrides to the new blink path This change corrects the naming and location for the override of this values to the new location. Chromium change: https://chromium.googlesource.com/chromium/src/+/fb71620081ef26d4fce675edf57919840d3bf807 commit fb71620081ef26d4fce675edf57919840d3bf807 Author: Tove Petersson <tovep@chromium.org> Date: Fri Jan 5 11:43:10 2024 +0000 Move kPresetZoomFactors to blink kPresetZoomFactors is moved to blink so that it can be exposed to JavaScript without interprocess communication. Bug: 1466247 * `kPrivacySandboxApisEnabledV2` deprected upstream This change reexports the now deprecated prefs, in order for brave to keep disabling these prefs whenever privacy sandbox settings are changed. Chromium change: https://chromium.googlesource.com/chromium/src/+/59e9654b8b045701e709da49daf9f287611ef99f commit 59e9654b8b045701e709da49daf9f287611ef99f Author: Mariam Ali <alimariam@google.com> Date: Thu Jan 4 11:13:02 2024 +0000 Privacy Sandbox GA Cleanup: Remove deprecated IsPrivacySandboxEnabled method Bug: 1449833, 1310157 * Delete patches for certificate reporting Chromium change: https://chromium.googlesource.com/chromium/src/+/9390d199dd1c2c139fec34029694d9f19a13419a commit 9390d199dd1c2c139fec34029694d9f19a13419a Author: Mustafa Emre Acer <meacer@chromium.org> Date: Tue Jan 9 18:52:28 2024 +0000 Delete certificate reporting code Certificate reports were used to analyze root causes of certificate errors in Chrome and produce data for the SSL error assistant feature. A paper was published to document our findings. The SSL error assistant is also no longer maintained, so this code is no longer needed. Bug: 1479573 * `ExperimentalAsh` trait removed upstream This trait was being required for compatibility with `raw_ptr` instances held by upstream code. Chromium change: https://chromium.googlesource.com/chromium/src/+/447e6fd97fcdc01ccb53a4a064f40bd97528a873 commit 447e6fd97fcdc01ccb53a4a064f40bd97528a873 Author: Bartek Nowierski <bartekn@chromium.org> Date: Mon Jan 8 16:03:05 2024 +0000 Remove remnants of ExperimentalAsh trait This removes all the usage, as well as the definition. The trait was used to select pointers for the BRP experiment. BRP is now fully enabled for Ash, and the experiment is no longer necessary. This CL is mechanical and a no-op. * Privacy sandbox arg removed from `SetupTestState` This argument was aparently unused on the functions implementation with the recent removal of `IsPrivacySandboxEnabled()`. Chromium change: https://chromium.googlesource.com/chromium/src/+/6d0578a047725f4144abd08c74590fe9ca566426 commit 6d0578a047725f4144abd08c74590fe9ca566426 Author: Dan McArdle <dmcardle@chromium.org> Date: Mon Jan 8 16:29:25 2024 +0000 Remove unused privacy_sandbox_enabled param from SetupTestState() I think this was left behind by this cleanup commit: https://crrev.com/454bafbfd77ab9b43c388ca56aa8afe27efbb2ae Bug: 1449833 * Make adjustments for upstream tests * [Android] Update version for media3-exoplayer-hls Updated version to be inline with Chromium's libs. Chromium change: https://source.chromium.org/chromium/chromium/src/+/6f520b5d0cfd467443278c98224ae1e72903726d Updating androidx media3 copies to match DoubleDown required versions DoubleDown is red because we need these updated media3 libraries, which provide the missing ax.media3.session.MediaSession$ConnectionResult$AcceptedResultBuilder Change-Id: I9b5ab41d8ea545929452468d92ef115c8c28980f * Fix CommanderServiceBrowserTest There was a refactoring of the AutocompleteController which caused some tests to fail. There were two causes: A DCHECK that we weren't NotifyListeners wasn't called if the Provider was done in the controller. OmniboxView->SetText isn't immediately reflected in GetText, so there is a small refactor for making the Provider pass the current text. There's a weird going on where the ... has a space before it. I think that's fine to address separately, it doesn't look like the string has changed. * `GetProminent` removed from `MdTextButton` This function has been removed as `GetStyle` can be used with the same effect of determining if a button is with prominent style. Chromium change: https://chromium.googlesource.com/chromium/src/+/295aa0e71882fbb1fabb5e8f426f1745b88959ff commit 295aa0e71882fbb1fabb5e8f426f1745b88959ff Author: EmiliaPaz <emiliapaz@chromium.org> Date: Wed Jan 10 01:28:47 2024 +0000 Remove [Get/Set]Prominent() in favor of [Get/Set]Style Previously, MdTextButton only had 2 styles that could be set with SetProminent(). With the addition of a new style, now button style is set with SetStyle. Therefore, this remove calls GetProminent() and SetProminent() in favor of GetStyle() and SetStyle(ButtonStyle::kProminent), as all callers were updated. Fixed: 1406008 * `OwnedRule` renamed to `Rule` `UnownedRule` was deleted in upstream, and now `OwnedRule` is merely `Rule`, with access to `value()` simplified merely to `.value`. Chromium change: https://chromium.googlesource.com/chromium/src/+/d548a74bc71c5a42db47bc0737c8d17ee957521c commit d548a74bc71c5a42db47bc0737c8d17ee957521c Author: Christian Dullweber <dullweber@chromium.org> Date: Wed Jan 10 08:44:04 2024 +0000 ContentSettings: Remove UnownedRule struct The UnownedRule struct avoids copying base::Value objects but it requires holding a lock. This optimization is not needed anymore when copying Values for individual content setting queries gets removed with a followup change. (See doc linked in bug for details). Bug: b/316530672 * [ios] UI `bookmarks` target made reduntant This target doesn't exist anymore on upstream, and it had some cyclic reference. The iOS build links as normal without it. Chromium change: https://chromium.googlesource.com/chromium/src/+/8732c878384753db20a811084511bb9aae24232d commit 8732c878384753db20a811084511bb9aae24232d Author: Sylvain Defresne <sdefresne@chromium.org> Date: Wed Jan 10 12:00:45 2024 +0000 [ios] Resolve circular dependency in //ios/chrome/browser/ui/bookmarks Move all the files from //ios/chrome/browser/ui/bookmarks to the //ios/chrome/browser/ui/bookmarks/home target to remove circular dependencies between the two targets. As only //ios/chrome/browser/ui/bookmarks/home was including those headers in //ios/chrome/browser/ui/bookmarks, this make sense to merge them to the target. Fixed: 1409490 * `DetachedWebContents` wrapping contents in a `TabModel` Access to the `WebContent` instance occurs now through the `tab()` member. Chromium change: https://chromium.googlesource.com/chromium/src/+/773a4e18ae36bff759d1798ba47c7f8c5c19bcb1 commit 773a4e18ae36bff759d1798ba47c7f8c5c19bcb1 Author: Taylor Bergquist <tbergquist@chromium.org> Date: Thu Jan 11 00:18:11 2024 +0000 Make TabModels movable between tabstrips. This CL also adds a back reference to the containing TabStripModel, which TabStripModel keeps up to date as TabModels are moved in and out. Bug: 1476012 * Fix `SyncServiceObserver` mock listed function. `OnSyncConfigurationCompleted` has been deleted upstream, and this change corrects our mock for it. Chromium change: https://chromium.googlesource.com/chromium/src/+/2f144364e1cc5466d14a5914619fe629163b9eda commit 2f144364e1cc5466d14a5914619fe629163b9eda Author: Rushan Suleymanov <rushans@google.com> Date: Thu Jan 11 14:31:02 2024 +0000 [Sync] Remove unused OnSyncConfigurationCompleted from observer Bug: None * `CreateThrottles` argument type for resource request changed This is a simple type change to the function being overriden for an argument that just gets passed along, and of no consequence for our codebase. Chromium change: https://chromium.googlesource.com/chromium/src/+/2455e700019a2766db2b51c19e9ec4616e62b509 commit 2455e700019a2766db2b51c19e9ec4616e62b509 Author: Tsuyoshi Horo <horo@chromium.org> Date: Thu Jan 11 01:58:45 2024 +0000 Use network::ResourceRequest instead of WebURLRequest in ResourceFetcher blink::WebURLRequest is used for the argument of URLLoaderThrottleProvider::CreateThrottles() method after [1]. But we are planing to call this method from the background thread where we don't use blink::WebURLRequest [2]. Also we are planing to deprecate blink::WebURLRequest, and planing to use network::ResourceRequest instead [3]. So this CL changes the argument type of CreateThrottles() from blink::WebURLRequest to network::ResourceRequest. A network::ResourceRequest is created in ResourceLoader::Start(). So we pass the reference of the structure through ResourceFetcher:: CreateURLLoader(). In frames: ResourceLoader::Start() -> ResourceFetcher::CreateURLLoader() -> LoaderFactoryForFrame::CreateURLLoader() |-> URLLoaderThrottleProvider::CreateThrottles() |-> ServiceWorkerNetworkProviderForFrame:: | GetSubresourceLoaderFactory() |-> URLLoaderFactory::CreateURLLoader() In workers: ResourceLoader::Start() -> ResourceFetcher::CreateURLLoader() -> LoaderFactoryForWorker::CreateURLLoader() |-> WebWorkerFetchContext::CreateThrottles() | -> WebServiceWorkerFetchContextImpl::CreateThrottles() or | DedicatedOrSharedWorkerFetchContextImpl::CreateThrottles() | -> URLLoaderThrottleProvider::CreateThrottles() |-> URLLoaderFactory::CreateURLLoader() mojom::blink::RequestContextType in blink::WebURLRequest is checked in the code path. But this type member is not in network::ResourceRequest. network::ResourceRequest has a network::mojom::RequestDestination member. And some of these checks of mojom::blink::RequestContextType can be safely converted to network::mojom::RequestDestination without any behavior change. But the check in ResourceFetcher::CreateURLLoader() needs the mojom::blink::RequestContextType. Also we need to pass `service_worker_race_network_request_token` to LoaderFactoryForWorker::CreateURLLoader(), and `is_from_origin_dirty_style_sheet` flag to ServiceWorkerNetworkProviderForFrame::GetSubresourceLoaderFactory(). So this CL adds these three arguments to CreateURLLoader() methods. [1]: https://crrev.com/c/994152 [2]: https://crrev.com/c/5113665 [3]: https://groups.google.com/a/chromium.org/forum/#!topic/platform-architecture-dev/ntSzerId4gw Bug: 1379780 * `ContentSettingsType` moved into a mojom file This change moves our extension to that enum to the mojom file that now is used to generate that enum. Chromium change: https://chromium.googlesource.com/chromium/src/+/93a3620ca2272ce0352112ebe0f80e6ccbb4b73f commit 93a3620ca2272ce0352112ebe0f80e6ccbb4b73f Author: Kevin Graney <kmg@google.com> Date: Fri Jan 12 17:05:20 2024 +0000 Add a ContentSettingsType enum defined in mojo The goal of this change is to migrate the source of truth for the ContentSettingsType from a C++ header into mojo. Generated C++ from the mojo definition is exactly the same as the enum in content_settings_types.h, and moving the source of truth to mojo lets us generate a TypeScript equivalent enum more easily. This change also removes the complexity of type conversion with `EnumTraits<>`. Avoiding use of `EnumTraits` is recommended in the style guide. https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/mojo.md#using-mojo-enums-directly-when-possible Generated Java enums are slightly different, unfortunately requiring a small change to the type name in every usage. Bug: b:317035343 * `PrepopulatedEngine` using `char16_t` `PrepopulatedEngine` and all other types generated by `json_to_struct.py` have migrated the use of `wchar_t` to `char16_t`. Chromium change: https://chromium.googlesource.com/chromium/src/+/d829ce89a08cd89666b1a0d99eb49db458faf200 commit 252f9ac0b9b2eb17a16ccb37e3ea66b7eaf8d5c8 Author: Bryan Nguyen <nguyenbryan@google.com> Date: Tue Jan 31 00:05:10 2023 +0000 [Lens] Add context menu item to translate text in image. The context menu item will be displayed only if the page is currently being translated. It is also gated behind a feature flag. The functions for image search are parameterized to allowing specifying image translation, which involves using a different search URL and adding URL parameters. Both Lens and third-parties are supported. Adds a new enum value in lens::EntryPoint for image translate. Currently this is being handled the same as image search (i.e. the same query parameters will be sent to Lens) - will update this as a follow-up. Adds three new fields to prepopulated_engines_schema.json for describing how to populate image translate URLs. Design doc: go/lens-chrome-translate-filter Cq-Include-Trybots: luci.chrome.try:linux-chromeos-chrome,mac-chrome,linux-chrome,win-chrome,win64-chrome Bug: b/265073008 * `navigation_id` being passed through `CreateURLLoaderThrottles` This is just an extra argument that gets passed along on all brave implementations. Chromium change: https://chromium.googlesource.com/chromium/src/+/eddfce30a3eb10a2897db3ed64caa6b39c6dc400 commit eddfce30a3eb10a2897db3ed64caa6b39c6dc400 Author: Xinghui Lu <xinghuilu@chromium.org> Date: Thu Jan 11 19:32:16 2024 +0000 [AsyncSB] Pass navigation_id into CreateURLLoaderThrottles This info will eventually be used to implement AsyncCheckTracker::IsMainPageLoadPending[1]. We will add navigation_id in security_interstitials::UnsafeResource and use it to determine whether DidFinishNavigation has been called and whether we should show a post commit error. The navigation_id is needed to map UnsafeResource back to the original navigation that triggered this Safe Browsing check. This CL only bubbles up navigation_id to the embedder layer without actual usage. The actual usage will be done in the following sequence: 1) Inject navigation_id into safe_browsing/ layer: https://crrev.com/c/5171128. 2) Consume the navigation_id in safe_browsing::AsyncCheckTracker: https://crrev.com/c/5171302. More context in http://shortn/_92fIErC6tC (google only). [1] https://source.chromium.org/chromium/chromium/src/+/main:components/safe_browsing/content/browser/async_check_tracker.cc;l=35;drc=e71b6befbb758f58280989b2a83b583a7394fe06 Bug: 1501194 * IWYU fixes * Updated `BrowserFrameViewLinuxNative` ctor This change is of not much consequence to how this code works except that brave overrides have been updated to match the upstream code. Chromium change: https://chromium.googlesource.com/chromium/src/+/a6f88535e9ccda6d38a350be9068dcbc135f80e0 commit a6f88535e9ccda6d38a350be9068dcbc135f80e0 Author: Tom Anderson <thomasanderson@chromium.org> Date: Fri Jan 12 04:46:32 2024 +0000 Polish tiled browser window UI on Linux When in tiled mode: - Don't draw rounded corners - Don't draw shadows - Increase input region to account for resize borders R=sky Change-Id: Ifa7e87ae801c96b0176397005bbdd21ee53e0900 Fixed: 1488638 * `is_direct` removed from `ProxyServer` It seems to be the case that this can only be tested agains `ProxyChain`, however following upstream fashion, this check is just removed. Chromium change: https://chromium.googlesource.com/chromium/src/+/deae655274cd6571bf0e2d6c692c471e893f1be1 commit deae655274cd6571bf0e2d6c692c471e893f1be1 Author: Ciara McMullin <ciaramcmullin@google.com> Date: Thu Jan 11 16:13:45 2024 +0000 Remove SCHEME_DIRECT from ProxyServer::Scheme since a direct connection is now specified by an empty ProxyChain. Refactor CrosapiSchemeToNetScheme -> ProxyToProxyChain and ProxyDictionaryToProxyServer -> ProxyDictionaryToProxyChain to support direct proxy chains. There are no functional changes intended in this CL. Bug: 1515118 * [WIP] Adjusting to `URLLoaderThrottleProviderImpl` ctor changes Chromium change: https://chromium.googlesource.com/chromium/src/+/f794e224cb310e911e164bd42d5e06ebbe13704f commit f794e224cb310e911e164bd42d5e06ebbe13704f Author: Tsuyoshi Horo <horo@chromium.org> Date: Mon Jan 15 08:35:25 2024 +0000 Make IdentityUrlLoaderThrottle work on non-main thread Currently IdentityUrlLoaderThrottle is not created by URLLoaderThrottleProvider when CreateThrottles() is called on non-main thread. So IdentityUrlLoaderThrottle don't work for subresource requests from workers. This is not a big issue since login and logout requests are rarely sent by workers. But it will be a problen when we will call CreateThrottles() of a cloned URLLoaderThrottleProvider on the background thread for normal subresource requests from frames for BackgroundResourceFetch feature (crrev.com/c/5113665). So this CL does followings: 1. Keep the main thread task runner in providers (URLLoaderThrottleProviderImpl and ShellContentRendererUrlLoaderThrottleProvider). 2. Make CreateThrottles() method of the providers create IdentityUrlLoaderThrottle even when it is called on non-main thread. 3. In the callback of MaybeCreateIdentityUrlLoaderThrottle, use the main thread task runner to call blink::SetIdpSigninStatus() in the main thread when the callback is called on non-main thread. Low-Coverage-Reason: COVERAGE_UNDERREPORTED Bug: 1379780 * [Android] CachedFlag was moved to //base Chromium change: https://source.chromium.org/chromium/chromium/src/+/db3e1d9b131df5a2e2a34114a76a0cbafc3c14d5 [Android] Move CachedFlag and CachedFieldTrialParameter to //base Move all generic flags classes, including CachedFlag, PostNativeFlag, CachedFieldTrialParameter and subclasses to //base/cached_flags, along with tests. Bug: 1442347 * [Android] Site settings fixes Chromium change: https://source.chromium.org/chromium/chromium/src/+/93a3620ca2272ce0352112ebe0f80e6ccbb4b73f Add a ContentSettingsType enum defined in mojo The goal of this change is to migrate the source of truth for the ContentSettingsType from a C++ header into mojo. Generated C++ from the mojo definition is exactly the same as the enum in content_settings_types.h, and moving the source of truth to mojo lets us generate a TypeScript equivalent enum more easily. This change also removes the complexity of type conversion with `EnumTraits<>`. Avoiding use of `EnumTraits` is recommended in the style guide. https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/mojo.md#using-mojo-enums-directly-when-possible Generated Java enums are slightly different, unfortunately requiring a small change to the type name in every usage. Bug: b:317035343 * Workaround to URLLoaderThrottleProviderImpl passkey requirement by providing protected static GetPassKey(). Chromium change: https://chromium.googlesource.com/chromium/src/+/f794e224cb310e911e164bd42d5e06ebbe13704f commit f794e224cb310e911e164bd42d5e06ebbe13704f Author: Tsuyoshi Horo <horo@chromium.org> Date: Mon Jan 15 08:35:25 2024 +0000 Make IdentityUrlLoaderThrottle work on non-main thread Currently IdentityUrlLoaderThrottle is not created by URLLoaderThrottleProvider when CreateThrottles() is called on non-main thread. So IdentityUrlLoaderThrottle don't work for subresource requests from workers. This is not a big issue since login and logout requests are rarely sent by workers. But it will be a problen when we will call CreateThrottles() of a cloned URLLoaderThrottleProvider on the background thread for normal subresource requests from frames for BackgroundResourceFetch feature (crrev.com/c/5113665). So this CL does followings: 1. Keep the main thread task runner in providers (URLLoaderThrottleProviderImpl and ShellContentRendererUrlLoaderThrottleProvider). 2. Make CreateThrottles() method of the providers create IdentityUrlLoaderThrottle even when it is called on non-main thread. 3. In the callback of MaybeCreateIdentityUrlLoaderThrottle, use the main thread task runner to call blink::SetIdpSigninStatus() in the main thread when the callback is called on non-main thread. Low-Coverage-Reason: COVERAGE_UNDERREPORTED Bug: 1379780 * [Android] Fixes for new tab page Chromium change: https://source.chromium.org/chromium/chromium/src/+/27c065cfb71a2f61314fbba548b0f5db45c3ac4e [MagicStack] Add the magic stack to NTP home surface. In this CL, the magic stack is added to the NTP home surface. Make NewTabPage implements the ModuleDelegateHost interface. Showing the magic stack in non-home surface NTP will be done in a follow up CL. DD: go/magic-stack-on-clank-dd Bug: 1512962 * Client hints feature flags deleted upstream Chromium changes: https://chromium.googlesource.com/chromium/src/+/adee8f40c37577323e95ff918bb56fa6065effee commit adee8f40c37577323e95ff918bb56fa6065effee Author: Ari Chivukula <arichiv@chromium.org> Date: Tue Jan 16 14:46:55 2024 +0000 [runtime enabled feature cleanup] Remove ClientHintsMetaEquivDelegateCH This has been launched since M98. Bug: 1517958 https://chromium.googlesource.com/chromium/src/+/e84e6de7365f8adcd375bdffae409b6cd8e69dc4 commit e84e6de7365f8adcd375bdffae409b6cd8e69dc4 Author: Ari Chivukula <arichiv@chromium.org> Date: Tue Jan 16 15:37:09 2024 +0000 [runtime enabled feature cleanup] Remove ClientHintsMetaHTTPEquivAcceptCH This has been launched since M105. Bug: 1517958 https://chromium.googlesource.com/chromium/src/+/4ab383b4fb8ec4c6c7f00e79132e68786159e72e commit 4ab383b4fb8ec4c6c7f00e79132e68786159e72e Author: Ari Chivukula <arichiv@chromium.org> Date: Tue Jan 16 15:43:27 2024 +0000 [runtime enabled feature cleanup] Remove ClientHintThirdPartyDelegation This has been launched since M100. Bug: 1517958 * Adjust resource_ids.spec to avoid duplicate resources with upstream * [Android] New tab page fixes Chromium change: https://source.chromium.org/chromium/chromium/src/+/7c9217eec9fcf69e01a223e1498ac51a6b3b6305 [Android TRM] Add skeletal files to show empty module. This CL adds skeletal files to render an empty Tab Resumption Module, serving as placeholders to be populated with business logic in upcoming CLs. The main .java source files follow Clank UI architecture (MVC): * ...Util.java: Static helpers. * Helper to test whether the TRM should be shown. Currently this only checks the #enable-tab-resumption-module flag. * Helper as main initializer. * ...Coordinator.java: Owner; public interface of component. * ...Mediator.java: Business logic; bridge to other Chrome parts. * ...View.java: Derives form Android View class, for rendering. * Derive from LinearLayout to anticipate row-by-row stacking. * ...ViewBinder.java: Updates View in response to property changes. * ...Properties.java: Keys to all properties. * Add IS_VISIBLE. The TRM is shown with title only, and no content. Also add skeletal unit tests for {Util, Mediator, View}. Bug: 1515325 * [Android] Tab Switcher Pane Init Chromium change: https://source.chromium.org/chromium/chromium/src/+/e897a5182ecf608e0a02da5a3b369ee499394768 [Hub] Tab Switcher Pane Init Glue code to wire up Tab Switcher Panes. With this the flag becomes "functional" and actually allows using the Hub variant of the tab switcher. There will likely be bugs. More integration tests will be added for this in HubLayoutPublicTransitTest. However, I don't think this breaks any existing functionality as all non-hub tests continue to pass. Binary-Size: Enables tab switcher in hub which is an entire feature. Bug: 1505772 * [Android] Remove getLastUsedRegularProfile from FeedFeatures Chromium change: https://source.chromium.org/chromium/chromium/src/+/0847e3aa71c826bd0a23bfa80fd79539744c84bb Remove getLastUsedRegularProfile from FeedFeatures. Bug: 1410601 * [Android] Fixes for Widevine permission request Chromium change: https://source.chromium.org/chromium/chromium/src/+/00aea98302114c41e40f5ce542c7e26640757348 Remove language structure assumptions in bolding logic. Previously, origin bolding happened by identifying the first space character and making all characters up to that location bold. This means the first word is boldened. This assumption is incorrect, as in some languages the first word is not the origin. Low coverage due to moving of untested code (Clank prompt creation for SA). Low-Coverage-Reason: OTHER Bug: 1512613 * Reinstate Keystone support We need to reinstate some of the Keystone support files, as we hook into some of that infrastructure for Sparkle. Chromium change: https://source.chromium.org/chromium/chromium/src/+/7e25bd3b8073a10aa8db64195e5a666227886bf2 commit 7e25bd3b8073a10aa8db64195e5a666227886bf2 Author: Joshua Pawlicki <waffles@chromium.org> Date: Thu Jan 11 15:43:19 2024 +0000 Remove Keystone from Chrome. While doing this, some issues with brand code handling were discovered. The code in brand_code does not align with the code in keystone_installer, which results in the two not correctly communicating the brand code in some cases. I've standardized the behavior on what is in keystone_installer, because I think that's the least disruptive. In practice, it's a marginal issue anyways. Fixed: 1504587, 1498732 * Do not replace "powered by Google AI" in strings files * Use `SearchEngineChoiceService` `SearchEngineChoiceService` is now passed to functions related to search engine components. This requires updates to calls for `GetPrepopulatedEngine` and similar functions. This change corrects our own overrides to take into account the choice service instance when returning values, and also corrects different tests to pass the instance when calling these functions. Chromium change: https://chromium.googlesource.com/chromium/src/+/2b77815a114063c715991c42702286383307116b commit 2b77815a114063c715991c42702286383307116b Author: Boris Sazonov <bsazonov@chromium.org> Date: Wed Jan 17 15:35:04 2024 +0000 🧇 Create SearchEngineChoiceService Moves a large chunk of methods from search_engine_choice_utils.h into a newly created SearchEngineChoiceService which is a KeyedService. No behavior changes. Low-Coverage-Reason: LARGE_SCALE_REFACTOR Bug: b/318801987 * Privacy sandbox `SetupTestState` deleted Chromium change: https://chromium.googlesource.com/chromium/src/+/5c34326a2d8c69d3674e2386d742b5217b6b6937 commit 5c34326a2d8c69d3674e2386d742b5217b6b6937 Author: Mariam Ali <alimariam@google.com> Date: Wed Jan 17 08:01:58 2024 +0000 Privacy Sandbox GA Cleanup: Deprecate trials test setup method This CL removes the old privacy sandbox trials setup method. Some tests were affected by this change including the attribution reporting debug mode test. Setting the cookie exception manually caused the test to fail due to feature enabled states overlapping. The CL introduced a new test suite to parameterise the test instead of a loop to ensure the overlap doesn't happen. Bug: 1442226 * `RenderViewHost` getter removed from `RenderViewContextMenuProxy` This change is of no effect to brave, as it only affects the stub of a mock returning a nullptr. Chromium change: https://chromium.googlesource.com/chromium/src/+/3fd0e9663bec4f2e83f6313d36e33acbb190ca7b Author: Ian Vollick <vollick@chromium.org> Date: Thu Dec 14 21:51:51 2023 +0000 Avoid use of RenderViewHost in RenderViewContextMenu With this change, we switch callers to getting a RFH (either for the appropriate subframe or the primary main frame of the associated web contents) as suggested by mcnee@. Bug: 1129073,1393234 * [ios] Skia `SkMasks.cc` moved to skia core With this file being moved into skia core target, it is not necessary anymore for it to be included as part of a custom target for svg rendering. Chromium change: https://skia.googlesource.com/skia/+/02e94b3b4d2972cca594302825e635f1879c7bd8 commit 02e94b3b4d2972cca594302825e635f1879c7bd8 Author: Kevin Lubick <kjlubick@google.com> Date: Mon Jan 15 10:58:04 2024 -0500 Move SkMasks from src/codec to src/core These are also used by some text code. Change-Id: Ia7cffc52791a5c9a7477f2215eae9218dd75d75c Bug: b/40045064 * Moving DNS P3A metrics to new path A large part of `HostResolver` was moved to `HostResolverManager::Job`, and therefore brave's override for metrics had to be moved accordingly. Chromium change: https://chromium.googlesource.com/chromium/src/+/d7f6d7306d7cf1050cc51997712a9bc45ed9d9dc commit d7f6d7306d7cf1050cc51997712a9bc45ed9d9dc Author: Kenichi Ishibashi <bashi@chromium.org> Date: Wed Jan 17 05:20:43 2024 +0000 Move HostResolverManager::{Job,RequestImpl} into separate files Bug: chromium:1518698 * Refactor `GetCookieSettingInternal` override Chromium change: https://chromium.googlesource.com/chromium/src/+/eedd954c3e4fac0925f7ac3542e1eedeec27de3f commit eedd954c3e4fac0925f7ac3542e1eedeec27de3f Author: Dan McArdle <dmcardle@chromium.org> Date: Thu Jan 18 18:29:47 2024 +0000 Refactor CookieSettingsBase::GetCookieSettingInternal() I found the original implementation difficult to reason about, I think primarily due to not really understanding the `block_third` variable. There's also some repetitive checking of conditions that are variations on `block_third` and `IsAllowed(setting)`. I found these confusing because `IsAllowed(setting)` is a part of the conjunction that defines `block_third`'s original value! Finally, I found it difficult to reason about whether the return value wants to allow or block cookies, since it's defined in terms of variables, some of which may have been mutated during the course of the function. This CL addresses these sticking points by untangling the logic and moving it into a helper function. The helper function is a sequence of branches, each of which returns a clearly-labeled value. The helper function returns absl::variant<AllowAllCookies, AllowPartitionedCookies, BlockAllCookies>. The goal is that the reader can clearly see the intent in lines like `return BlockAllCookies{};`. Bug: 1519246 * `WDKeywordsResult` field configuration changed This structure is now encapsulating the field being used during test into another substructure for metadata. Chromium change: https://chromium.googlesource.com/chromium/src/+/354c10a535404c945f3471a3f4b8f6cd7c59e743 commit 354c10a535404c945f3471a3f4b8f6cd7c59e743 Author: Nicolas Dossou-Gbete <dgn@chromium.org> Date: Mon Jan 22 11:18:37 2024 +0000 🧇 Add country and milestone as keyword DB remerge triggers Adds new metadata associated with the built-in keywords to the search engines database: the country for which we loaded the prepopulated search engines, and the Chrome milestone when that happened. This metadata field is updated every time we change the built-in keyword data on load, but it might trigger re-merges only in certain cases (e.g. related to the search engine choice feature state, or the profile being in the EEA). Bug: b:320461832 Fixed: b:310615953 * Search provider returning metadata info through a struct Version-related arguments for `GetSearchProvidersUsingKeywordResult` have been reworked into a metadata struct where they can be packed together and returned. Chromium change: https://chromium.googlesource.com/chromium/src/+/af259e78c21772187c108a30d33183831dca7299 commit af259e78c21772187c108a30d33183831dca7299 Author: Nicolas Dossou-Gbete <dgn@chromium.org> Date: Fri Jan 19 20:53:55 2024 +0000 🧇 Refactor search engine DB remerge trigger Prepares for adding new criteria that can trigger template urls to be re-merged, besides the data version. No behaviour change is expected with this CL. Bug: b:320461832 * `SetWebsiteSetting` requires a `PartitionKey` The partition key can be passed along on the use being corrected in code. Chromium change: https://chromium.googlesource.com/chromium/src/+/6b0340a666e1d0e8f937581efe7e2f7f055f9514 commit 6b0340a666e1d0e8f937581efe7e2f7f055f9514 Author: Jason Lin <lxj@google.com> Date: Fri Jan 19 07:31:56 2024 +0000 Support partitioning in content_settings::PrefProvider Bug: b/307193732 * `content_settings::Observer` requires a `PartitionKey` For the existing use of this observer, a partition key is not being provided as it doesn't seem to be necessary for our use-case. Chromium change: https://chromium.googlesource.com/chromium/src/+/91c4ae13d96bf74dcefd4653a5e8a2b8dabffcbb commit 91c4ae13d96bf74dcefd4653a5e8a2b8dabffcbb Author: Jason Lin <lxj@google.com> Date: Mon Jan 22 11:26:56 2024 +0000 Update content_settings::Observer to include PartitionKey Bug: b/307193732 * `OriginIdentifierValueMap` renamed This class has been renamed to `OriginValueMap`, and with nothing more as a consequence. Chromium change: https://chromium.googlesource.com/chromium/src/+/2575796a49e9d212dde1cb4b6c7cf4d591d5ab4b commit 2575796a49e9d212dde1cb4b6c7cf4d591d5ab4b Author: Jason Lin <lxj@google.com> Date: Mon Jan 22 01:37:27 2024 +0000 Remove "Identifier" from the name [Partitioned]OriginIdentifierValueMap Change-Id: I56de10833dfd1add5a852c227be25328567d7da2 * [Android] Remove getLastUsedRegularProfile from UpdateMenuItemHelper Chromium change: https://source.chromium.org/chromium/chromium/src/+/26ca76247ab0d8c08cf65894f1686dabe8dd6e08 Remove getLastUsedRegularProfile from UpdateMenuItemHelper. This converts the singleton instance to a Profile-keyed class. This also renames shouldShowUpdateBadge to canShowUpdateBadge as this was confusing during reading. When reading, should (to me) implied that the item was to be displayed if true, but it is only shown based on other criteria like being out of date. Thus, "can" more clearly read to me that the update badge is allowed to be shown if other conditions are met. Bug: 1410601 * OriginalFunctions is now a struct Chromium change: https://source.chromium.org/chromium/chromium/src/+/fba4ed89eb65b0253df6945882033ed83376b20f commit fba4ed89eb65b0253df6945882033ed83376b20f Author: Ben Bamesberger <benb@microsoft.com> Date: Mon Jan 22 21:10:39 2024 +0000 Windows sandbox: Split TransferVariable address param into local and remote parts This change enables concurrent use of TransferVariable by splitting the address param into local and target parts. This allows the broker to copy data from a local variable instead of from the global variable. This works because the broker only needs the address of a global variable in its own process for determining the corresponding address in the target, and so it is not required for any data to be set in the broker-side global before copying. Bug: 1499551 * Add Partitioned preferences to our prefs database Chromium change: https://source.chromium.org/chromium/chromium/src/+/dbee17533eef6107c1748022f65473e360bd5225 commit dbee17533eef6107c1748022f65473e360bd5225 Author: Jason Lin <lxj@google.com> Date: Mon Jan 15 01:21:45 2024 +0000 Add partitioned_pref_name to content_settings::WebsiteSettingsInfo Bug: b/307193732 * [Android] Changes for NotificationPlatformBridge Chromium change: https://source.chromium.org/chromium/chromium/src/+/7326bef93bc8fffffa63ea8abd5e93df5a0bd89c Simplify NotificationPlatformBridge. This CL simplifies the NotificationPlatformBridge implementation by removing unused arguments, and by introducing a nested class to group common notification arguments identifying a notification and its source. The method `buildNotificationWrapper` is also de-coupled from the logic to `appendSiteSettingsButton`, and `prepareNotificationBuilder` is decoupled from adding content/delete handlers. There are some small mechanical changes. All changes should be no-ops functionally. Bug: 1519634 * Fixed SpeedReaderBrowserTest.RestoreSpeedreaderPage. * [Android] Added androidx libs removed in the upsteam We still use them in Playlist feature. Chromium change: https://source.chromium.org/chromium/chromium/src/+/d24bc8a78dd9693535015d51d1b988df187050f3 Revert "Roll androidx from BW2v6j8vjcVQrdX9f... to -Pfe65blElulocPye..." This reverts commit 9e9356de1e0197b484ce65f334a876e9f7e58a4a. Reason for revert: Suspected cause of build failures: crbug.com/1519713 Original change's description: > Roll androidx from BW2v6j8vjcVQrdX9f... to -Pfe65blElulocPye... > > If this roll has caused a breakage, revert this CL and stop the roller > using the controls here: > https://autoroll.skia.org/r/androidx-chromium > Please CC clank-build@google.com,clank-library-failures@google.com,wnwen@google.com on the revert to ensure that a human > is aware of the problem. > > To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry > > To report a problem with the AutoRoller itself, please file a bug: > https://issues.skia.org/issues/new?component=1389291&template=1850622 > > Documentation for the AutoRoller is here: > https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md > > Cq-Include-Trybots: luci.chrome.try:android-internal-binary-size;luci.chrome.try:android-internal-rel > Tbr: clank-library-failures@google.com > Change-Id: Ib7a26c2fd4ebba2f48fd9c31c4c11452ff7faea2 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5214668 > Bot-Commit: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> > Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> > Cr-Commit-Position: refs/heads/main@{#1249129} Change-Id: Ie7df335864ed868400610efb744071a9abbc1df2 Cq-Include-Trybots: luci.chrome.try:android-internal-binary-size;luci.chrome.try:android-internal-rel No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 1519713 * [Android] New pref in safety check settings Chromium change: https://source.chromium.org/chromium/chromium/src/+/004b0920380576bd04e12e8f4a37d5af106bc158 [UPMLocalSettings] Introduce the UI for the second password check This CL introduces a new password check preference into safety_check_preferences.xml. When there will be split stores, one preference will be used to display the result of the password check in the local password storage, another - for the account password storage. SafetyCheckSettings fragment also has the logic to set visibility of the local and account tied preferences depending on whether the appropriate password storage is available. Bug: b/306670833 * Remove overrides for `BindStorageArea` These functions have been overriden to allow the use of `GetEphemeralStorageKeyOrStorageKey` when required. However, with recent changes to `BindStorageArea`, it seems more approppriate to patch the caller for that. A patching has been added accordingly. Chromium change: https://chromium.googlesource.com/chromium/src/+/901a0c44c13aea9a6a3cdbc19f06df14f86bd436 commit 901a0c44c13aea9a6a3cdbc19f06df14f86bd436 Author: Ari Chivukula <arichiv@chromium.org> Date: Tue Jan 9 20:13:03 2024 +0000 [SAA] Fix Session/Local Storage Binding for Handle An external developer reported a bug: https://github.com/arichiv/saa-non-cookie-storage/issues/11 where the local/session storage area bound to the handle would be the partitioned one instead of the unpartitioned one. This happened when the unpartitioned handle wasn't already in the renderer-side cache, so was traced to an error in the binding code. This fix should resolve the issue, but won't be merged back into M121 as it's not an urgent vulnerability. Once in trunk, an email alerting developers to a fix in M122 will be made on the I2E blink-dev thread. Note that the scope of bindings allowed is already secured on the browser side so this does not impact IPC security: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/dom_storage/dom_storage_context_wrapper.cc;drc=23a4e772ead0273151c4e8412cdf084797fd3935;l=289 Bug: 1484966 * Extract PDF content from pdf region because status subtree under pdf root now contains static text. chromium change: https://chromium.googlesource.com/chromium/src/+/e7b77d864a20bc6f294eb69762059c17a9312d44 commit e7b77d864a20bc6f294eb69762059c17a9312d44 Author: Ramin Halavati <rhalavati@chromium.org> Date: Thu Jan 18 09:24:21 2024 +0000 Add static text node to PDF OCR status node. A StaticText node is added to the Status node of PDF OCR, so that it would be considered as a rendered node in node ordering comparisons. Bug: 1443341 Change-Id: I5e7a6e619f219c09a48eb4371c51f234d181d167 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5182920 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Commit-Queue: Ramin Halavati <rhalavati@chromium.org> Cr-Commit-Position: refs/heads/main@{#1248647} * Argument added to `PermissionRequest` ctor This constructor is now receiving an automatic embargo argument, that has to be passed along by our own override. Chromium change: https://chromium.googlesource.com/chromium/src/+/b333180137a5f4a691972d63cd14c9df9d692086 commit cf64328f5a321cdf68eed8bac9d4bd13f57ce581 Author: Helmut Januschka <helmut@januschka.com> Date: Thu Jan 25 12:46:33 2024 +0000 runloop: finalize refactor of Quit*Deprecated() RunLoop usage Bug: 922118 * Adjust unit test to account for changes to kSearchEngineChoiceTrigger feature flag This flag is disabled on Windows and enabled on Mac/Linux, but will eventually be enabled on all three. Chromium change: https://source.chromium.org/chromium/chromium/src/+/7f209e568a1c3a2829ad6309dd3228e70f85239f commit 7f209e568a1c3a2829ad6309dd3228e70f85239f Author: Nicolas Dossou-Gbete <dgn@chromium.org> Date: Mon Jan 22 16:33:07 2024 +0000 🧇 Enable the feature by default on macOS,Linux,ChromeOS Per rollout plan, the other platforms will be toggled separately. See http://shortn/_fHkGG8hPkU Bug: b:315126434 * Disable features flagged by privacy/security team * `kUserAgentClientHint` deleted upstream Chromium change: https://chromium.googlesource.com/chromium/src/+/7cb768195fc3a89fa618fec85e2d1b0dbd4e3c42 commit 7cb768195fc3a89fa618fec85e2d1b0dbd4e3c42 Author: Victor Tan <victortan@google.com> Date: Fri Jan 19 22:53:24 2024 +0000 Remove UserAgentClientHint feature flag The Client hints feature has been rolled out in all platforms. Change-Id: Ib1d3cdeccf34dc57211627278cf7485beade137d Bug: 1518844 * [ios] Need to ensure that SessionRestorationServiceFactory is started * Remove IS_PERMISSIONS_COMMON_IMPL definition to avoid triggering DCHECK when overriding features Upstream changed permissions_common to be a source_set (used to be a component). That change triggered a DCHECK in our feature override code that looks for features that were already overridden. Will follow up with upstream folks to get this patch submitted there. Chromium change: https://source.chromium.org/chromium/chromium/src/+/e8ee9a2058c029e1fa9f5c8b1bfc32aed1e7ec04 commit e8ee9a2058c029e1fa9f5c8b1bfc32aed1e7ec04 Author: Adrian Taylor <adetaylor@chromium.org> Date: Mon Jan 22 13:21:55 2024 +0000 Make permissions_common a source_set. This was previously impossible but it would be great to try it again because it will solve some issues with a problematic fuzzing framework. Bug: 1327384, 1519605 * Temporarily disable PGO phase on Android due to upstream experiment * [Android] Moves monochrome_public_apk from 32-bit primary to 64-bit primary Chromium change: https://source.chromium.org/chromium/chromium/src/+/8f211ca26a664bf7f7a547140e98eb3fe7b45a80 Change telemetry monochrome to be 64-bit primary This also moves monochrome_public_apk from 32-bit primary to 64-bit primary. We do this in the same CL to avoid making a new monochrome target for telemetry. Bug: 1479998 * fixup! [Android] Minor code adjustments to the C122 upstream changes * Ignore scons-out directory when checking licenses --------- Co-authored-by: Claudio DeSouza <cdesouza@brave.com> Co-authored-by: Artem Samoilenko <artem@brave.com> Co-authored-by: mkarolin <max@brave.com> Co-authored-by: Jay Harris <jay.harris@outlook.co.nz> Co-authored-by: Anthony Tseng <darkdh@gmail.com> Co-authored-by: boocmp <boocmp@yandex.ru>
76 lines
2.6 KiB
Objective-C
76 lines
2.6 KiB
Objective-C
/* Copyright (c) 2024 The Brave Authors. All rights reserved.
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef BRAVE_BROWSER_MAC_KEYSTONE_REGISTRATION_H_
|
|
#define BRAVE_BROWSER_MAC_KEYSTONE_REGISTRATION_H_
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#include <Security/Authorization.h>
|
|
#include <stdint.h>
|
|
|
|
// Declarations of the Keystone registration bits needed here. From
|
|
// KSRegistration.h.
|
|
|
|
namespace keystone_registration {
|
|
|
|
typedef enum {
|
|
kKSPathExistenceChecker,
|
|
} KSExistenceCheckerType;
|
|
|
|
typedef enum {
|
|
kKSRegistrationUserTicket,
|
|
kKSRegistrationSystemTicket,
|
|
kKSRegistrationDontKnowWhatKindOfTicket,
|
|
} KSRegistrationTicketType;
|
|
|
|
extern NSString* KSRegistrationVersionKey;
|
|
extern NSString* KSRegistrationExistenceCheckerTypeKey;
|
|
extern NSString* KSRegistrationExistenceCheckerStringKey;
|
|
extern NSString* KSRegistrationServerURLStringKey;
|
|
extern NSString* KSRegistrationPreserveTrustedTesterTokenKey;
|
|
extern NSString* KSRegistrationTagKey;
|
|
extern NSString* KSRegistrationTagPathKey;
|
|
extern NSString* KSRegistrationTagKeyKey;
|
|
extern NSString* KSRegistrationBrandPathKey;
|
|
extern NSString* KSRegistrationBrandKeyKey;
|
|
extern NSString* KSRegistrationVersionPathKey;
|
|
extern NSString* KSRegistrationVersionKeyKey;
|
|
|
|
extern NSString* KSRegistrationDidCompleteNotification;
|
|
extern NSString* KSRegistrationPromotionDidCompleteNotification;
|
|
|
|
extern NSString* KSRegistrationCheckForUpdateNotification;
|
|
extern NSString* KSRegistrationStatusKey;
|
|
extern NSString* KSRegistrationUpdateCheckErrorKey;
|
|
extern NSString* KSRegistrationUpdateCheckRawResultsKey;
|
|
extern NSString* KSRegistrationUpdateCheckRawErrorMessagesKey;
|
|
|
|
extern NSString* KSRegistrationStartUpdateNotification;
|
|
extern NSString* KSUpdateCheckSuccessfulKey;
|
|
extern NSString* KSUpdateCheckSuccessfullyInstalledKey;
|
|
|
|
extern NSString* KSRegistrationRemoveExistingTag;
|
|
#define KSRegistrationPreserveExistingTag nil
|
|
|
|
} // namespace keystone_registration
|
|
|
|
@interface KSRegistration : NSObject
|
|
|
|
+ (instancetype)registrationWithProductID:(NSString*)productID; // NOLINT
|
|
|
|
- (BOOL)registerWithParameters:(NSDictionary*)args; // NOLINT
|
|
|
|
- (BOOL)promoteWithParameters:(NSDictionary*)args // NOLINT
|
|
authorization:(AuthorizationRef)authorization;
|
|
|
|
- (BOOL)setActiveWithError:(NSError**)error; // NOLINT
|
|
- (void)checkForUpdateWasUserInitiated:(BOOL)userInitiated;
|
|
- (void)startUpdate;
|
|
- (keystone_registration::KSRegistrationTicketType)ticketType;
|
|
|
|
@end // @interface KSRegistration
|
|
|
|
#endif // BRAVE_BROWSER_MAC_KEYSTONE_REGISTRATION_H_
|