Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade from Chromium 134 to Chromium 135 #27522

Draft
wants to merge 72 commits into
base: master
Choose a base branch
from
Draft

Conversation

cdesouza-chromium
Copy link
Collaborator

@cdesouza-chromium cdesouza-chromium commented Feb 6, 2025

Resolves brave/brave-browser#43864

Submitter Checklist:

  • I confirm that no security/privacy review is needed and no other type of reviews are needed, or that I have requested them
  • There is a ticket for my issue
  • Used Github auto-closing keywords in the PR description above
  • Wrote a good PR/commit description
  • Squashed any review feedback or "fixup" commits before merge, so that history is a record of what happened in the repo, not your PR
  • Added appropriate labels (QA/Yes or QA/No; release-notes/include or release-notes/exclude; OS/...) to the associated issue
  • Checked the PR locally:
    • npm run test -- brave_browser_tests, npm run test -- brave_unit_tests wiki
    • npm run presubmit wiki, npm run gn_check, npm run tslint
  • Ran git rebase master (if needed)

Reviewer Checklist:

  • A security review is not needed, or a link to one is included in the PR description
  • New files have MPL-2.0 license header
  • Adequate test coverage exists to prevent regressions
  • Major classes, functions and non-trivial code blocks are well-commented
  • Changes in component dependencies are properly reflected in gn
  • Code follows the style guide
  • Test plan is specified in PR before merging

After-merge Checklist:

Test Plan:

@github-actions github-actions bot added CI/run-network-audit Run network-audit CI/run-audit-deps Check for known npm/cargo vulnerabilities (audit_deps) CI/storybook-url Deploy storybook and provide a unique URL for each build CI/run-upstream-tests Run upstream unit and browser tests on Linux and Windows (otherwise only on Linux) labels Feb 6, 2025
@brave-builds
Copy link
Collaborator

A Storybook has been deployed to preview UI for the latest push

@cdesouza-chromium cdesouza-chromium force-pushed the cr135 branch 6 times, most recently from 691402f to 065a4b6 Compare February 13, 2025 14:37
@cdesouza-chromium cdesouza-chromium force-pushed the cr135 branch 3 times, most recently from 39f5358 to dbd9431 Compare February 18, 2025 17:06
This attribute has been deleted from grit, and isn't recognised anymore.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/96c98d3ae26486007669c1cd00e4da58c85659b3

commit 96c98d3ae26486007669c1cd00e4da58c85659b3
Author: dpapad <[email protected]>
Date:   Tue Feb 4 16:23:24 2025 -0800

    Grit: Remove output_all_resource_defines from list of valid attributes.

    All references to this attribute have been removed in previous CLs, both
    from public and internal repositories.

    Fixed: 389466679
One of the existing overrides using `ShouldBlockThirdPartyCookies` had
to be updated to pass the origin/overrides args into this function.

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

commit a6b7e38f7f4b1112263986c1fca59078139f046b
Author: Chris Fredrickson <[email protected]>
Date:   Wed Feb 5 05:25:50 2025 -0800

    Consolidate 3PC restrictions and ShouldBlockThirdPartyCookies methods

    This simplifies the CookieSettingsBase logic, since it no longer has
    to treat various ways of blocking 3PC differently.

    It also makes the CookieSettings API more honest, as shown in the
    CookieSettingsBase unittests: sometimes the CallbackCookieSettings class
    blocked 3PC somehow, even though its ShouldBlockThirdPartyCookies
    override always returned false. (It was blocking cookies because
    CookieSettingsBase didn't fully rely on the result of
    ShouldBlockThirdPartyCookies, and did some of the logic on its own.)

    Finally, this refactor avoids a redundant call to
    network::CookieSettings::IsThirdPartyPhaseoutEnabled in some cases.

    Change-Id: I24e45f9bb423b143f8092c5769daadd4a7fd257b
An extra argument, `FeatureContext*`, has been added to this function,
and this affects the shadow override in brave, which is expected to pass
this argument along.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/8a24e7e4bde6bd24e11c07c6219b674eed3de0ba

commit 8a24e7e4bde6bd24e11c07c6219b674eed3de0ba
Author: Mike West <[email protected]>
Date:   Wed Feb 5 02:10:38 2025 -0800

    [SRI Message Signatures] Support origin trials in Blink.

    In order to support origin trials for SRI Message Signatures, this CL
    does twoish things, one of which is trivial, one of which is also
    trivial, but (very, very) verbosely so.

    1.  We will begin enforcing signature validation on incoming responses
        iff the request contained signature expectations. We'll rely on the
        renderer not sending signature expressions unless the feature flag
        is enabled, either through command-line flags or an origin trial.

    2.  We'll add an origin trial name to the Blink-side feature, and then
        pipe a `FeatureContext` everywhere it's needed. This ductwork is
        ~90% of the CL.

    Bug: 393924693
This provider is required to fixing linking failures on ios.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/6059ed27ff883f446e12a9d4b4a4373662d62884

commit 6059ed27ff883f446e12a9d4b4a4373662d62884
Author: Olivier ROBIN <[email protected]>
Date:   Wed Jan 29 13:31:48 2025 -0800

    Create GoogleOne provider

    Create the provider API for GoogleOne.
    This is part of a 4 CL change

    => crrev.com/c/6187393 : Create the new API
     - cl/716205930 : create the internal class
     - crrev.com/i/7971741 : implement the new provider
     - crrev.com/c/6197979 : use the new provider

    Change-Id: Idd1194d9e06903bc5550f18daefe57af9df048e8
This affects several gn inclusion paths, header files, and shadow files
to this component.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/422d5eb80c1ee199aaf98f07707e71449fb42d86

commit 422d5eb80c1ee199aaf98f07707e71449fb42d86
Author: rbpotter <[email protected]>
Date:   Wed Feb 5 08:42:48 2025 -0800

    WebUI: Refactor components/flags_ui into components/webui/flags

    Followup from refactoring recommended by components/ OWNER in
    https://chromium-review.googlesource.com/c/chromium/src/+/6178599

    no other changes

    Bug: 379889249
These patches are now part of M135.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/473d1315f86445a38b622f3114cdd04ae2ad0068

commit 473d1315f86445a38b622f3114cdd04ae2ad0068
Author: Claudio DeSouza <[email protected]>
Date:   Thu Feb 6 08:01:12 2025 -0800

    Expose `JSONReader` options on test utils

    The use of `ParseJson` and friends in tests simplifies checks around
    code parsing, however making use of such utils runs into issues in cases
    where the test wants to support certain parsing options.

    This CL adds a default value that can be overriden by the caller,
    similar to how `JSONReader` works.

    Bug: 40172729
These occur sporadically due to transient dependencies changing.
This alias has been renamed to better reflect the use of `string_view`.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/534a26b46b5d5315def1d0760b52191710e1b368

commit 534a26b46b5d5315def1d0760b52191710e1b368
Author: Lei Zhang <[email protected]>
Date:   Thu Jan 30 17:35:09 2025 -0800

    Add base::FilePath::StringViewType

    Add a replacement alias for StringPieceType, now that base::StringPiece
    is gone. Use this replacement in base::FilePath and its unit tests.
    Modernize modified files to use `using` instead of `typedef` as well.

    Change-Id: Ib87150f54b6b7de3696a57b14bd12d92a82239ef
cdesouza-chromium and others added 29 commits February 19, 2025 15:01
Chromium change:

https://chromium.googlesource.com/chromium/src/+/db0d33d24cdfda8c09747120c5af2e68f3eefebb

commit db0d33d24cdfda8c09747120c5af2e68f3eefebb
Author: Devlin Cronin <[email protected]>
Date:   Tue Feb 4 17:07:57 2025 -0800

    [Extensions] Rename ExtensionSystemFactory, ExtensionSystemImpl

    Rename ExtensionSystemFactory and ExtensionSystemImpl to
    ChromeExtensionSystemFactory and ChromeExtensionSystem, respectively.
    These classes are the //chrome implementations of the general interfaces
    in //extensions, and this naming style more closely matches other
    similar variants (such as ChromeExtensionsBrowserClient,
    ChromeExtensionWebContentsObserver, and others). It is also more
    descriptive and accurate (since there are other ExtensionSystemFactories
    and Impls beyond just the Chrome ones).

    Along with this, perform a few IWYU fixes.

    This CL is a pure rename and has no behavior change.

    Bug: 394119732
Crash due to:

Check failed: instance->IsTestRenderFrameHost(). You may want to instantiate RenderViewHostTestEnabler.
In places where the string is being passed for things like accessibility
it is now necessary to create a copy of the string, as this is the only
way to pass a string view to a string. This should be reviewed in the
feature as more functions in views get migrated to using `string_view`.

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

commit d6c295470c9181b0a61511e2b1a4f427f568e8fc
Author: Peter Kasting <[email protected]>
Date:   Wed Feb 12 10:56:37 2025 -0800

    Convert text rendering, elision, and manipulation to string_view.

    This also converts Label and TextField; these are closely intertwined
    with the classes above and converting them is easier than trying to
    demarcate the changes around them.

    The rest of this huge ball of changes are basically what happens when
    you pull this viral string. I could have gone further; l10n_util really
    wants to be converted to take string_view args, for example, and not
    doing it here results in a lot of string instantiations. But there has
    to be some kind of limit, and that was just a step too far.

    Bug: 364987728
This function has been renamed for `BubbleDialogDelegate` and derived
types.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/4dbd03db80728187af21b1283d3da0d406c978eb

commit 4dbd03db80728187af21b1283d3da0d406c978eb
Author: Zoraiz Naeem <[email protected]>
Date:   Wed Feb 12 14:46:54 2025 -0800

    Set ColorIds when possible for BubbleDialogDelegate implementations

    In crrev.com/c/6242094, BubbleDialogDelegate was migrated to use
    ui::ColorVariant allowing us to set ui::ColorIds directly.

    By supporting ColorIds in BubbleDialogDelegate[1], allows us to not
    rasterize color ids to SkColors, in various implementation of
    BubbleDialogDelegate when the theme changes.

    [1]
    https://chromium-review.googlesource.com/c/chromium/src/+/6242094/9/ui/views/bubble/bubble_dialog_delegate_view.cc#1108

    This CL also renames `BubbleDialogDelegateView::set_color()` to
    `BubbleDialogDelegateView::set_background_color()`

    Bug: b:394420459
This affects the access to `displayed_on_background_color_`, which was
being done as a friend class access.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/008e1c65a7e9650258095f35338e85263c766aa2

commit 008e1c65a7e9650258095f35338e85263c766aa2
Author: Zoraiz Naeem <[email protected]>
Date:   Thu Feb 13 21:23:20 2025 -0800

    Migrated views::StyledLabel to use ui::ColorVariant

    Bug: b:394420459
Chromium change:
https://chromium.googlesource.com/chromium/src/+/fc0102d04279c0bbc8206186e5d5824bb2e73038

commit fc0102d04279c0bbc8206186e5d5824bb2e73038
Author: Wilson Low <[email protected]>
Date:   Thu Feb 13 13:04:17 2025 -0800

    [Benefits] Fix card benefits settings toggle href

    Fixes the `Learn about card benefits` link in the Payments settings
    page such that hovering over the link points to the true destination
    `https://support.google.com/googlepay?p=card_benefits_chrome` instead
    of `chrome://settings/#`.

    Before: https://screenshot.googleplex.com/pYfEDUSobNUHwRa
    After: https://screenshot.googleplex.com/9NSbAsj2ueybeVY

    Skip-Translation-Screenshots-Check: True
    Bug: 393628337
This change adjusts `GetSearchProvidersUsingKeywordResult` to include
the resolver argument to the override of this upstream function. This
affects other caller sites for this function, including a unit test,
which required the argument too. In order to correct the test, the
previous members were replaced with an instance of
`SearchEnginesTestEnvironment`, which does a similar job, but in a much
simpler way, whislt providing also the necessary resolver instance.

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

commit d8bd0119166870ca42ab64af69487cecbe8298db
Author: Nicolas Dossou-Gbete <[email protected]>
Date:   Thu Feb 13 00:52:01 2025 -0800

    rcaps: Switch prepopulated engines resolution to the new Resolver

    Switches the resolution of prepopulate template urls to use
    TemplateURLPrepopulateDataResolver instead of pulling individual
    context from the profile.

    Bug: 328040066
This crate was being patched as a production crate, but now it is gone
from the upstream crate collection. Brave should make use of the newer
crate too, if at all possible, or have its own copy of this version.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/25c81bfeca7839fbaa4485d17373d8bc9f8a3f20

commit 25c81bfeca7839fbaa4485d17373d8bc9f8a3f20
Author: Dustin J. Mitchell <[email protected]>
Date:   Fri Feb 14 12:45:22 2025 -0800

    Update cloud_authenticator to latest base64

    This allows removal of this old version of base64 from the codebase.

    Bug: 396459442
With this migration it is possible to assign `ColoVariant` directly,
rather than converting it to `ColorId`.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/1100870d3f71a65eb90c45841360c93ddc31856b

commit 1100870d3f71a65eb90c45841360c93ddc31856b
Author: Zoraiz Naeem <[email protected]>
Date:   Fri Feb 14 10:58:11 2025 -0800

    Migrated views::Label::SetBackgroundColor() to use ui::ColorVariant

    Bug: b:394420459
Chromium change:
https://chromium.googlesource.com/chromium/src/+/024681e0b4b2045a05cb562b65b49f887cd1f043

commit 024681e0b4b2045a05cb562b65b49f887cd1f043
Author: Mohammed Ashraf <[email protected]>
Date:   Fri Feb 14 08:52:51 2025 -0800

    Resolve TODO for changing all_timestamps to use base::Time

    Convert all_timestamps to use base::Time and update all related code to use
    base::Time values.

    Bug: 335282446
Chromium change:
https://chromium.googlesource.com/chromium/src/+/aa76cafff78ecf2b926b1bf47dc4e495daf817d8

commit aa76cafff78ecf2b926b1bf47dc4e495daf817d8
Author: Khalid Peer <[email protected]>
Date:   Wed Feb 12 12:19:22 2025 -0800

    [omnibox] Deprecate the HISTORY_KEYWORD suggestion type.

    As a result of crrev.com/c/6164610 and crrev.com/c/6168413, support for
    non-substituting keywords has been removed from the Omnibox. Given that
    such keywords were the only source of HISTORY_KEYWORD suggestions in the
    Omnibox, this CL updates the rest of the codebase to effectively
    deprecate this type of suggestion.

    Bug: 388070061, 391666322
The signature of several functions in upstream have been changed,
droppin the passing of `SearchEngineChoiceService*` as an argument, and
just taking `CountryID` directly. This has affected several tests that
have been making use of these functions. Additional, several overriden
functions had also to be corrected accordingly to reflect that.

Another aspect of this change is that `PrefService*` and `Profile*` are
now being passed around as a reference in these functions, and because
of that, several functions in brave were also update to pass these
values by ref, in order to cascade their mandatory status.

Finally, `BraveTemplateURLPrepopulateDataTest` has been updated to make
use of `search_engines::SearchEnginesTestEnvironment`, as it simplifies
the operations it was testing.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/990127eb3c219f7165b6883e914b1f2b4e340631

commit 990127eb3c219f7165b6883e914b1f2b4e340631
Author: Nicolas Dossou-Gbete <[email protected]>
Date:   Mon Feb 17 03:02:48 2025 -0800

    rcaps: Make TemplateURLPrepopulateData use rcaps for country needs

    Instead of accessing the profile country ID through
    SearchEngineChoiceService, TemplateURLPrepopulateData[::Resolver] now
    obtains it directly through RegionalCapabilitiesService. This allows
    properly updating the dependencies between these 3 services

    Bug: 328040066
This delegate has been introduce, which eliminates the passing of
multiple thunks to the constructor. This change has to be applied to
`BraveSyncAuthManager` as well.

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

commit c6a82680f0869c5dca816a37a6018119aa935f94
Author: Mikel Astiz <[email protected]>
Date:   Mon Feb 17 03:13:56 2025 -0800

    [sync] Introduce SyncAuthManager::Delegate

    Pure refactoring without behavioral changes.

    This delegate replaces the less readable solution using callbacks,
    following the same approach used by analogous classes such as
    SyncServiceCrypto.

    Change-Id: Ia55d9309b66a13f071ef0060315f59a604b29dfe
    Bug: 387132027
Chromium change:

https://chromium.googlesource.com/chromium/src/+/610b50243cec4c60433606349299120232692c2e

commit 610b50243cec4c60433606349299120232692c2e
Author: Nicolas Dossou-Gbete <[email protected]>
Date:   Fri Feb 14 05:32:04 2025 -0800

    rcaps: Remove TemplateURLService::IsEeaChoiceCountry

    Replaces usage by the API from RegionalCapabilitiesService.

    Bug: 388792357
This simple change in this function's signature doesn't have any
consequence for our codebase, as this is only used for test.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/0d8b05cdcdd10ede329fd476dd8820a9c283440d

commit 0d8b05cdcdd10ede329fd476dd8820a9c283440d
Author: James Cook <[email protected]>
Date:   Tue Feb 18 16:16:05 2025 -0800

    extensions: Add InstallTracker to the desktop Android build

    This is part of the effort to add CrxInstaller to desktop Android.
    It requires a bit of refactoring to remove CrxInstaller references
    from InstallTracker and InstallObserver. We can't compile CrxInstaller
    yet on Android, so break the dependencies.

    InstallObserver::OnFinishCrxInstall() takes both an extension and an
    extension ID because the extension isn't yet available in the registry
    during this call (so you can't use the ID to look it up). Also, on
    install failure the extension is null, but some codepaths need the ID
    anyway (since we know the ID for several types of install).

    Also several IWYU fixes.

    Bug: 396722906
The header itself is deleted and the implementation has moved elsewhere
making the inclusion unnecessary.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/878f8351809ff802cae6173daaaac6f7bc05e2cd

commit 878f8351809ff802cae6173daaaac6f7bc05e2cd
Author: Sandor Major <[email protected]>
Date:   Tue Feb 18 12:16:02 2025 -0800

    Move `ParsedPermissionsPolicyDeclaration` from Blink to Network service

    The network service is going to need access to the "storage-access"
    Permissions Policy. This is the third step of moving some of the
    Permissions Policy logic out of Blink to maintain a single
    implementation of https://w3c.github.io/webappsec-permissions-policy
    across Chromium.

    Bug: 382291442
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/run-audit-deps Check for known npm/cargo vulnerabilities (audit_deps) CI/run-network-audit Run network-audit CI/run-upstream-tests Run upstream unit and browser tests on Linux and Windows (otherwise only on Linux) CI/storybook-url Deploy storybook and provide a unique URL for each build
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade from Chromium 134 to Chromium 135
5 participants