Commit Graph
67 Commits
Author SHA1 Message Date
cdesouza-chromium f5c6a0136f [CodeHealth] Use base::DictValue/base::ListValue - Part I (#33614)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Issue: https://github.com/brave/brave-browser/issues/52435
2026-02-04 12:54:52 -03:00
Emerick Rogul b67c05d9d8 [cr144] Deps fixes 2025-12-20 23:56:16 +00:00
Nuo Xu 4a72a67003 [iOS][Wallet] Correct Copy BaseValue's tag (#32690) 2025-12-05 12:24:48 -05:00
cdesouza-chromium 07b587a892 [CodeHealth] Use BASE_FEATURE with two args where possible (#32041)
This PR corrects several places where `BASE_FEATURE` is being used to
rely on the two-arg variant of this macro. This particular PR has no
functional changes, and the only feature declarations affected are the
ones for which the feature-name constant, and the actual value are
identical.

The particular issue for this will be left open so subsequent work for
the other features can be followed up on.

Bug: https://github.com/brave/brave-browser/issues/50492
2025-10-27 18:56:50 +00:00
cdesouza-chromium 12e0c0aed7 [CodeHealth] Use base::WriteJson - Part I (#32035)
This PR migrates several uses of `base::JSONWriter::Write` over to
`base::WriteJson`, following the upstream migration.

Bug: https://github.com/brave/brave-browser/issues/50480
2025-10-26 10:42:47 +00:00
Kyle Hickinson 7aa988a8f2 [iOS] Move base::Value Obj-C wrapper into brave/base (#30497)
This moves the `MojoBaseValue` type to the `//brave/base` directory to be used as a more general purpose `base::Value` bridge wrapper. It also updates the `//brave/base/mac` directory to `apple` and fixes a few banned method calls.
2025-08-06 14:33:56 -04:00
cdesouza-chromium 821274796b [IWYU] Fixing logging inclusions pt.11 (#29531)
This change is one of many fixing inclusion for the following files:

    - `base/notimplemented.h`
    - `base/notreached.h`
    - `base/check.h`
    - `base/dcheck_is_on.h`
    - `base/check_deref.h`
    - `base/check_op.h`
    - `base/logging/log_severity.h`
    - `base/logging.h`

This change is a mechanical change done with the following script:
https://github.com/brave/brave-browser/issues/46707#issuecomment-2960116515

Resolves https://github.com/brave/brave-browser/issues/46707
2025-06-12 13:48:07 +01:00
cdesouza-chromium ce008a782a Reapply "[CodeHealth] Use asan sanity test from //base" (#26449)
This reverts commit f668ee9df671ba5d030ccbc4d9e09159d0dd1409.

This commit had been reverted as there were a suspicion it had been
responsible for some breakage in the CI test for asan, however the cause
does seem to be somewhere else.
2024-11-25 14:28:36 +00:00
cdesouza-chromium 713f6cd686 [CodeHealth] Remove CHECK(false) uses (#26602)
All uses of `CHECK(false)` are incorrect and should be either a
`NOTREACHED`, `LOG(ERROR)`, or higher `CHECK` that removed the enclosing
conditional code path.

Resolves https://github.com/brave/brave-browser/issues/42331
2024-11-18 16:13:27 +00:00
cdesouza-chromium 13a2432bc2 [spanify] Use safe buffers pt.1 (#26486)
This change touches in a few places where safe buffers usage can be
improved, by making use of `base::span`, and `std::array`.
2024-11-12 03:52:42 +00:00
AlexeyBarabash d6d6a31d26 Fix unused variables warnings at java (#26433)
* Removed unused variables and members at Brave java files
2024-11-08 00:11:56 +02:00
cypt4 491750914c Remove NOTREACHED_IN_MIGRATION in base/process/ and browser/ui/webui/… (#26415)
Remove NOTREACHED_IN_MIGRATION in base/process/ and browser/ui/webui/settings/
2024-11-07 13:22:17 +04:00
cdesouza-chromium f67c2a23f3 Revert "[CodeHealth] Use asan sanity test from //base" (#26413)
This reverts commit b7ac05468eec2500145b096c03f5d065d8d26de2.
2024-11-06 22:14:20 +01:00
Brian Clifton 8993dc3536 Merge pull request #25662 from brave/cr131
Upgrade from Chromium 130 to Chromium 131.
2024-10-24 14:14:06 -07:00
cdesouza-chromium f4946de565 [CodeHealth] Use asan sanity test from //base (#26190)
It looks like we have lifted
`ToolsSanityTest.DISABLED_AddressSanitizerLocalOOBCrashTest` from
`//base` in order to sanity check that asan is on. However there's no
reason to not use the upstream file anyway, as having a local copy adds
to our maintainance burden.
2024-10-24 13:31:14 +01:00
Artem Samoilenko 11fb643838 [Android] Fixes for lint new warnings
List of the fixed warning types:
warning: [ClassCanBeStatic] Inner class is non-static but does not reference enclosing class
warning: [AlmostJavadoc] This comment contains Javadoc or HTML tags, but isn't started with a double asterisk
warning: [EmptyBlockTag] A block tag (@param, @return, @throws, @deprecated) has an empty description. Block tags without descriptions don't add much value for future readers of the code; consider removing the tag entirely or adding a description.
warning: [ObjectToString] DisplayAd is final and does not override Object.toString, so converting it to a string will print its identity (e.g. `DisplayAd@4488aabb`) instead of useful information.
2024-10-24 12:14:33 +01:00
Artem Samoilenko 2a4f95de3a [Android] Move base.cached_flags to components.cached_flags
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/78b03df18d4625181de54bf6a7efa805c20b367d

Move base.cached_flags to components.cached_flags

We will need to depend on components/variations to support
fieldtrial_testing_config.json.

Since base can't use cached flags, and many clients of base won't
either, it makes more sense to put it in components.

Bug: 370797986
2024-10-24 12:14:32 +01:00
cdesouza-chromium e59212a5f5 [CodeHealth] Enable -Wunsafe-buffer-usage across brave (#26027)
[CodeHealth] Enable `-Wunsafe-buffer-usage` acrosss brave

This PR removes `brave/` from the blanket exclusion for
`-Wunsafe-buffer-usage`, and adds only certain third party subpaths to
it. Additionally, in order correct the ensuing warning violations, this
PR adds to individual files exclusion annotations, that we can revisit
gradually.

Having this warning on will prevent further violations from popping up
in new places in the codebase. A significant amount of effort has
already been employed in correcting some of these unsafe buffer usages.

For reference:
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/unsafe_buffers.md

Resolves https://github.com/brave/brave-browser/issues/41660
2024-10-17 03:29:44 +01:00
AlexeyBarabash 217f22ebf6 Fixed broken New Tab page layout, missing NTP image
Related Chromium change:
https://source.chromium.org/chromium/chromium/src/+/7b867b8e46bb0a13a694923f921bb913b7d75868

	Enable feed containment feature by default

	Bug: none
	Change-Id: I3536238ab66ae6ab4b06af1337affde003dab7cf
	Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5851691
2024-10-03 17:06:30 +01:00
AlexeyBarabash fca5e8addf [Android] LocationBarMediator.mShouldClearOmniboxOnFocus was removed
"RetainOmniboxOnFocus" feature is used instead

Related Chromium change:
https://source.chromium.org/chromium/chromium/src/+/46147680fe334aeec900ec6d76c8b9e443d07452

	Adds flag-guarded support for retaining omnibox on focus.

	This CL adds flag-guarded support for retaining omnibox contents on
	focus (as opposed to clearing it). When enabled, omnibox contents will
	also be fully selected (to allow for quick replace) and zero-prefixed
	suggestions are still shown (to allow for quick search). When enabled,
	only devices with large screens, attached keyboards, and attached
	precision pointers are affected.

	Design doc: http://shortn/_g7JfqshAX0

	Before:
	* google.com: http://shortn/_QQDvhI44dH
	* NTP w/o paste: http://shortn/_RowwKkjjGM
	* NTP w/ paste: http://shortn/_9Im63Fv4Ep

	After:
	* google.com: http://shortn/_29TqnQpVQE
	* NTP w/o paste: http://shortn/_whJqKzcDnv
	* NTP w/ paste: http://shortn/_ZnBOkVUvrU

	Bug: 347632178
	Change-Id: I8c8ceffa766ff7c960f122241ae3fb2efe3654c6
	Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5804846
2024-10-03 17:06:28 +01:00
Claudio DeSouza 8896149685 SetAllocatorDumpNameAllowlistForTesting spanified
The only call to this function was passing `nullptr` which is the
equivalent of an empty span.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/58bfcc525abee92abce83078a14519cf86142e49

commit 58bfcc525abee92abce83078a14519cf86142e49
Author: Jan Keitel <jkeitel@google.com>
Date:   Fri Aug 16 16:43:55 2024 +0000

    Fix unsafe buffer warnings in memory_infra_background_allowlist.cc.

    Bug: 40284755
2024-09-10 14:42:45 -04:00
Artem Samoilenko ca7daa6651 [Android] Remove the TabGroupStableIds flag
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/bf898063c7d8403f747e324d5a2141a3de55e187

[Tab Groups] Remove the TabGroupStableIds flag

Remove the TabGroupStableIds flag as this feature has been launched for
a sufficient period of time behind a flag.

Fixed: 354894500
2024-09-10 14:42:30 -04:00
AlexeyBarabash cebcded69a showNtpAtStartup and StartSurfaceAndroid flags were removed
Related Chromium change:
https://source.chromium.org/chromium/chromium/src/+/5b360c7808439527a4aa57f6ee2e19b9a914014f

[Start] Remove showNtpAtStartup and StartSurfaceAndroid feature flags.

	In this CL, we remove:
	1) feature flag ShowNtpAtStartup;
	2) feature flag StartSurfaceAndroid;
	3) ReturnToChromeUtil#isStartSurfaceFlagEnabled() which always returns
	   false;
	4) StartSurfaceConfiguration#isNtpAsHomeSurfaceEnabled() which always
	   returns true.

	Bug: 344651414
	Change-Id: Ib9a7e41b9387c6f15ebcb304f894e05c259342db
	Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5709277
2024-08-07 21:31:42 -04:00
AlexeyBarabash 4b10e6e4d0 kAndroidHub was removed
Previously it was enabled at Chromium and disabled at Brave.

Related Chromium change
https://source.chromium.org/chromium/chromium/src/+/0f43d517bee2c01ea67736e1d890c84203b9099e

	Reland "[Hub] Remove the AndroidHub flag"

	This is a reland of commit d8ff75b50a54ac6a11d4af945e3925c6ebc5250a

	Fixed the issue with TabSwitcherTabletTest and tested locally. See
	PS1 for the original change and the latest for the updated one.

	Original change's description:
	> [Hub] Remove the AndroidHub flag
	>
	> This CL is the first step in removing the AndroidHub flag. It removes
	> the feature flag entry. As a consequence a number of tests now become
	> invalid or reference unreachable code and are deleted.
	>
	> In a follow up CL HubFieldTrial#isHubEnabled() calls will be removed.
	>
	> Bug: 345524466
	> Change-Id: I11cf287462274ef43a6db15379205537e7c777c0
	> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5629936
	> Reviewed-by: Ted Choc <tedchoc@chromium.org>
	> Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
	> Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
	> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
	> Reviewed-by: Sky Malice <skym@chromium.org>
	> Cr-Commit-Position: refs/heads/main@{#1315470}

	Cq-Include-Trybots: luci.chromium.try:android-12l-x64-dbg
	Bug: 346852431
	Change-Id: I8768cfb2d3551a685b867809e9cc493438280720
	Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5634047
2024-08-07 21:31:13 -04:00
goodov b47f8ca377 Enable important Chromium browser lifetime tests (#24671)
Enable "Variations" and "Shutdown" upstream tests.
2024-07-23 11:51:14 +07:00
Serg 48dad8b190 Disables show ntp at startup flag on Android 2024-07-04 15:01:43 -04:00
Artem Samoilenko 0a702ee58b [Android] Disable Enable Magic feature
This feature is related to Chromium's NTP, but we have its own implementaion.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/6c5b63627d835e9fede52f137482583edaa2baac

[MagicStack] Enable Magic Stack and Price change module by default.

In this CL:
1. we clean up three feature flags: MAGIC_STACK_ANDROID,
   PRICE_CHANGE_MODULE and SegmentationPlatformAndroidHomeModuleRanker.
2. Clean up tests for showing single tab cards, and replaced with
   showing the magic stack.

Bug: 41485537
2024-06-25 13:13:14 +01:00
Artem Samoilenko f87a408366 [Android] Disable Android Tab Group Stable IDs
This feature causes UI issues with bottom controls.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/ed4add002d0322cb110f30ce41bdd58145a2bee6

[Tab Groups] Launch Android Tab Group Stable IDs

Launch AndroidTabGroupStableIds to 100%. See launch/4309143 for metrics.

Bug: 340916880
2024-06-25 13:13:14 +01:00
Claudio DeSouza a19c44fed1 Use NOTREACHED_IN_MIGRATION()
`NOTREACHED()` has been marked as `[[noreturn]]`, and therefore will
break in many cases when building the code. The migration variant of the
macro is being used upstream to allow for a gradual migration of each
callsite.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/61831cb39155842c781f63214a7862bfd23e3390

commit 61831cb39155842c781f63214a7862bfd23e3390
Author: Peter Boström <pbos@chromium.org>
Date:   Wed May 22 21:32:53 2024 +0000

    Reland "Make NOTREACHED() without parameters [[noreturn]]"

    This is a reland of commit fdeac78ccd92e2cc578d8cfa04219599520138b4

    Original change's description:
    > Make NOTREACHED() without parameters [[noreturn]]
    >
    > Previous callers have been migrated to NOTREACHED_IN_MIGRATION(). This
    > also renames the few NOTREACHED_NORETURN() callers in base/ to
    > NOTREACHED() to verify that it's still working (no missing-return).
    >
    > Let's see how many times this needs to be reverted and relanded. :)
    >
    > Bug: 40580068
    > Change-Id: Ib8155e461ea9d0853c9508e28fc45389114da48c
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5548908
    > Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
    > Commit-Queue: Lei Zhang <thestig@chromium.org>
    > Owners-Override: Lei Zhang <thestig@chromium.org>
    > Auto-Submit: Peter Boström <pbos@chromium.org>
    > Commit-Queue: Peter Boström <pbos@chromium.org>
    > Reviewed-by: Lei Zhang <thestig@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#1303439}

    Bug: 40580068
2024-06-25 13:13:09 +01:00
cdesouza-chromium 7814e17784 [clang-tidy] Modernise namespaces (#24272)
Modernising all namespaces in brave to use nested concat namespace
declarations.

This change is part of a large effort to modernise the brave codebase
across the board with `clang-tidy`, in order to allow future use of
`clang-duty`during code reviews. The idea is to apply a few modernisers
across the codebase in order to have less noise when trying to use
clang-tidy with some sort of autmoation.
2024-06-21 17:12:18 +01:00
AlexeyBarabash 49c0c59128 CachedFlag now has two different ctors
fixes https://github.com/brave/brave-browser/issues/38524

Related Chromium change:
https://source.chromium.org/chromium/chromium/src/+/d185bd9ea3aa006e8dfc789dce07f3d902886c9a

[Android] Allow CachedFlags to specify test defaults

	This mimics fieldtrial_testing_config.json for CachedFlag in tests.
	It does not affect the flag value in developer builds like
	fieldtrial_testing_config.json does, however.

	Bug: 40239922
	Change-Id: I8b67a6c2feeadd5ce12dcf6d41fe4c2e3e3d240f
	Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5523173
2024-05-24 09:45:44 -04:00
Artem Samoilenko 35423a8fc0 [Android] Diasble AndroidHub feature
We are not using this UI at the moment and it blocks our bottom toolbar.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/b39f3a16ecb3a74e3cb5614f6038b7a5dd6e8c3d

[Hub] Default enable on ToT

Enable on ToT after metrics green light.

Also deflake two tests that have block submit.

Bug: 335250391
2024-05-24 09:44:03 -04:00
Mikhail f6c50a76ce Moves IsMemoryAllocatorDumpNameInAllowlist to BraveProcessMemoryDumpTest (#23754)
Make BraveProcessMemoryDumpTest
2024-05-22 22:51:10 +01:00
Aleksey Khoroshilov bacbcbc78a Do not report flaky failures in upstream tests. 2024-05-13 18:30:33 +07:00
Aleksey Khoroshilov 65fdfbbbba Do not mix stdout/stderr, write service messages atomically. 2024-05-13 18:30:33 +07:00
Aleksey Khoroshilov d4c5403e00 Fix few nits. 2024-05-13 18:30:33 +07:00
Aleksey Khoroshilov 91ac3888f9 Review fixes. 2024-05-13 18:30:33 +07:00
Aleksey Khoroshilov 7c6c5fbd29 Cleanup base:: references in namespace base {}. 2024-05-13 18:30:33 +07:00
Aleksey Khoroshilov 879020026b Allow Teamcity Reporter to be disabled via command line. 2024-05-13 18:30:32 +07:00
Aleksey Khoroshilov 9bc746b291 Add teamcity test reporting to browser/unit tests. 2024-05-13 18:30:32 +07:00
Aleksey Khoroshilov 6f79bda149 Fix base::Feature override propagation to blink.
Chromium change:commit bd5c53cee33440161338f84028160597d4c35a90
Author: François Doray <fdoray@chromium.org>
Date:   Tue Mar 19 19:32:44 2024 +0000

    Reland "Enable ReduceCookieIPCs by default."

    This is a reland of commit 1446ec926e7198e6cd7ca271b000916bd694d47c

    The change was reverted because it broke GetCookiesString() calls
    on WebView. The bug was identified and fixed with https://crrev.com/c/5368234.

    Original change's description:
    > Enable ReduceCookieIPCs by default.
    >
    > The feature has a positive impact on performance on Windows, Mac
    > and ChromeOS and Android Browser:
    >   go/catan2023h2-individual-optimizations
    >
    > On Android Webview, no shared memory is returned to the renderer
    > due to [1], so the IPC is never bypassed [2].
    >
    > [1] https://source.chromium.org/chromium/chromium/src/+/main:android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.cc;l=188;drc=4dbc034a20d71ba93b61d60d1d26526d6d8cc1c1
    > [2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/loader/cookie_jar.cc;l=188;drc=7dc3003765c74daa4bb49e4463e3a7963d8c7ea1
    >
    > Bug: 1393050
    > Change-Id: I29ec122a7830f1b342d8af9ee3c11e3e308b7e4e
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5273404
    > Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
    > Reviewed-by: Olivier Li <olivierli@chromium.org>
    > Auto-Submit: Francois Pierre Doray <fdoray@chromium.org>
    > Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#1257024}

    Bug: 1393050
    Change-Id: I94daa51828d3f77c64f901d55877bfe0096b20d9
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5380980
    Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
    Reviewed-by: Francois Pierre Doray <fdoray@chromium.org>
    Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
    Commit-Queue: Olivier Li <olivierli@chromium.org>
    Reviewed-by: Maks Orlovich <morlovich@chromium.org>
    Auto-Submit: Olivier Li <olivierli@chromium.org>
2024-05-03 16:54:28 -04:00
Serg cfecbee895 Removes unneeded check for our pref keys 2024-04-17 13:11:59 -04:00
Artem Samoilenko 5c8ff1fe6f [Android] Disable SurfacePolish feature
We are not using Chromium's surface as we have our own implementaion of NTP.

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/ec6c6b0e979ce3d56fef6d25fec8fbe025151831

[SurfacePolish] Enabled feature SurfacePolish by default.

Enable the feature and increase renderer tests version due to the UI
changes.

Bug: 1449683
2024-03-08 14:56:05 -05:00
a923a2e308 Upgrade from Chromium 121 to Chromium 122 (#21524)
* 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>
2024-02-09 18:21:54 -05:00
cdesouza-chromium d1384a7872 [CodeHealth] Replace absl::optional with std::* (#21156)
This change replaces all uses of `absl::optional` with `std::*` variants
for optional. This is in line with upstream recent changes making
`absl::optional` a `typedef` to the `std` type.

This change has been done using an automated script:

    #!/bin/bash

    function replace {
      echo "Replacing $1 by $2"
      git grep -l "$1" \
        | cut -f1 -d: \
        | sort \
        | uniq \
        | grep \
          -e "\.h" \
          -e "\.cc" \
          -e "\.mm" \
          -e "\.py" \
        | xargs sed -i "s/$1/$2/g"
    }

    function delete_line_with {
      echo "Deleting lines with $1"
      git grep -l "$1" \
        | cut -f1 -d: \
        | sort \
        | uniq \
        | grep \
          -e "\.h" \
          -e "\.cc" \
          -e "\.mm" \
          -e "\.py" \
        | xargs sed -i "/$1/d"
    }

    function add_header {
      echo "Adding header $1"
      git diff --name-only HEAD \
        | xargs ../tools/add_header.py --header "$1"
    }

    replace "absl::make_optional" "std::make_optional"
    replace "absl::optional" "std::optional"
    replace "absl::nullopt" "std::nullopt"
    replace "absl::in_place" "std::in_place"
    replace "absl::in_place_t" "std::in_place_t"
    add_header "<optional>"
    delete_line_with "\"third_party\/abseil-cpp\/absl\/types\/optional.h\""
    git cl format

Chromium change:
https://chromium.googlesource.com/chromium/src/+/d9d21aa16829a7d471a4f3b3a493a31170ed8271

commit d9d21aa16829a7d471a4f3b3a493a31170ed8271
Author: David Benjamin <davidben@chromium.org>
Date:   Mon Oct 2 23:29:57 2023 +0000

    Make absl::optional a typedef for std::optional

    This only changes the types around. It doesn't rewrite existing uses
    to std::optional, which we can do incrementally.

    absl::optional to std::optional seems to have two visible impacts.
    First, the field order is different (bool first vs bool last).
    std::optional's order (bool last) seems to be better overall, decreasing
    binary size. Second, absl::optional's assertions crash with
    __builtin_trap, while std::optional calls __libcpp_verbose_abort which
    calls base::ImmediateCrash. __builtin_trap permits the compiler to
    combine crash sites within a function but leads to worse crash
    debugging. In base::ImmediateCrash, we'd made a conscious decision to
    prefer debuggability and pay some binary size for it. The net size
    increase brings our optional type in line with that preference.

    For more details see the discussion and document below:
    https://groups.google.com/a/chromium.org/g/cxx/c/XG3G85_ZF1k/m/_QN8adIJBQAJ
    https://docs.google.com/document/d/1AW7q9HCLOk738OCj8Z2U_AKVUC0YIFZWuyRvv09XTHk/edit

    Binary-Size: See discussion above.
    Fuchsia-Binary-Size: See discussion above.
    Bug: 1373619
2023-12-01 10:16:12 +00:00
Artem Samoilenko 6d32aa8484 [Android] Fixes for the new java format 2023-10-23 13:19:08 +01:00
Artem Samoilenko b1bc02c44d [Android] SharedPreferences moved to base
Chromium change:
https://github.com/brave/chromium/commit/d2cf18e9828940db691acf1aba1d90ecf12b848a

[Android] Move SharedPreferencesManager to //base
SharedPreferencesManager only needed to be //chrome-layer because
it has lists of the SharedPrefs keys used in Chrome. This CL:
- Detaches the key registry from the key checking
- Moves SharedPreferencesManager and Base/ChromePreferenceKeyChecker
  to //base
- Leaves behind a temporary facade where //chrome
  SharedPreferencesManager is until the migration is finished.
- Implements checking that all PreferenceKeyRegistries are
  listed in AllPreferenceKeyRegistries
- Modifies ChromePreferenceKeysTest to check uniqueness across
  all known registries

See go/base-shared-preferences for more details.

Bug: 1069897,1483469
2023-10-23 13:19:08 +01:00
Claudio DeSouza bdaa0828b5 Remove redundant ARC configs
Upstream has enabled ARC by default for apple code. This change removes
the individual setting of it across targets.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/8485b150e05e24548ec98413ced34994ab9ef622

commit 8485b150e05e24548ec98413ced34994ab9ef622
Author: Avi Drissman <avi@chromium.org>
Date:   Mon Jul 31 18:07:39 2023 +0000

    Rename "enable_arc2" to "enable_arc"

    Remove uses of "enable_arc" that snuck in, and rename "enable_arc2" to
    "enable_arc".

    Bug: 733237
2023-09-06 12:38:49 +01:00
Claudio DeSouza e3ffbc3fe2 Use raw_ref for reference member data
Upstream has turned on a clang plugin check to prevent declaring
reference member data. This has been turned on for Linux only at the
moment.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/507a79fc52eb714185c54acfd5d46f39c8950318

commit 507a79fc52eb714185c54acfd5d46f39c8950318
Author: Ali Hijazi <ahijazi@chromium.org>
Date:   Wed Jul 19 14:23:14 2023 +0000

    Reland "Enable raw_ref check on linux"

    This is a reland of commit d1ff03b57f992b7e856aa247598385a2a5f4ee09

    Original change's description:
    > Enable raw_ref check on linux
    >
    > clang will now show warnings where raw_ref<T> could be used.
    >
    > Change-Id: I2c88bbe23cef7431f3d5ede46e9a661e4ad89e5a
    > Bug: 1446146
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4534995
    > Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    > Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
    > Commit-Queue: Ali Hijazi <ahijazi@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#1153404}

    Bug: 1446146
2023-09-06 12:38:47 +01:00
Aleksey Khoroshilov 7a98bf0f79 Fix filter in LASTCHANGE generator to work on older Git versions. 2023-07-06 15:48:53 +07:00