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 132 to Chromium 133. #26537

Open
wants to merge 223 commits into
base: master
Choose a base branch
from
Open

Conversation

cdesouza-chromium
Copy link
Collaborator

@cdesouza-chromium cdesouza-chromium commented Nov 13, 2024

Resolves brave/brave-browser#43347
Resolves brave/brave-browser#42364

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:

@mkarolin mkarolin changed the title Upgrade from Chromium 131 to Chromium 132. Upgrade from Chromium 132 to Chromium 133. Nov 13, 2024
@cdesouza-chromium cdesouza-chromium force-pushed the cr133 branch 2 times, most recently from 81e768a to e9436d8 Compare November 15, 2024 14:33
@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) feature/web3/wallet feature/web3/wallet/core labels Nov 15, 2024
@cdesouza-chromium cdesouza-chromium force-pushed the cr133 branch 6 times, most recently from fb6e03c to 476b199 Compare November 22, 2024 13:04
@cdesouza-chromium cdesouza-chromium force-pushed the cr133 branch 5 times, most recently from 0182146 to 01accbf Compare December 2, 2024 13:09
@cdesouza-chromium cdesouza-chromium force-pushed the cr133 branch 6 times, most recently from 1d2a6d6 to a300918 Compare December 9, 2024 15:05
mkarolin and others added 20 commits January 17, 2025 13:26
Chromium change:

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

commit f451e7da1a9db0a8d7407e4c8c47be40b81a0947
Author: Tommy Martino <[email protected]>
Date:   Wed Dec 4 18:23:36 2024 +0000

    [iOS] Clean up Text Fragments

    WebKit supports the text fragments standard from iOS 16.1 onward 🎉, so
    we don't need our own (redundant) implementation anymore. (In fact, it's
    better not to have both operating on the same page, to avoid their
    highlights interfering with ours, or vice-versa.)

    Fixed: 381853455
Chromium change:

https://source.chromium.org/chromium/chromium/src/+/cfee8c37cfc6b7bc7bd6b1679704b2955e5c34dd

commit cfee8c37cfc6b7bc7bd6b1679704b2955e5c34dd
Author: Elmehdi Rahmaoui <[email protected]>
Date:   Fri Dec 20 07:14:20 2024 -0800

    [iOS] Handle the request of application mode

    The aim of this CL is to add the handling of app mode when requested. It
    also adds a new application mode `APP_SWITCHER_INCOGNITO` to have a
    clear distinction between chrome's incognito and app switcher incognito.

    Bug: 374935368
Chromium change:

https://source.chromium.org/chromium/chromium/src/+/a355eaae7dea12674ddc29419f24f5a27fe09094

commit a355eaae7dea12674ddc29419f24f5a27fe09094
Author: Stepan Khapugin <[email protected]>
Date:   Mon Dec 23 07:00:42 2024 -0800

    [iOS] Clean up stale HttpsOnlyModeEnabled flag.

    Existing unit tests are kept, as the feature can be disabled with a
    pref.

    Bug: 356624511
The build fails with

 ERROR Unresolved dependencies.
 //third_party/dawn/src/dawn/partition_alloc:partition_alloc(//build/toolchain/ios:ios_clang_x64)
   needs //base/allocator/partition_allocator:partition_alloc(//build/toolchain/ios:ios_clang_x64)

This is due to the upstream change below which doesn't expose //base/allocator/partition_allocator
target when use_partition_alloc flag is false. However, //third_party/dawn/src/dawn/partition_alloc
is only predicated on defined(dawn_partition_alloc_dir) - which is defined - and not on
use_partition_alloc. I am not sure what's causing //third_party/dawn/src/dawn/partition_alloc to
be referenced in the build in the first place.

Enabling the var for now. If it causes crashes like it used, then we'll need to track down what's
depending on dawn.

https://source.chromium.org/chromium/chromium/src/+/4dacf2b61c359950d2c2f1b5f9b9d079a01290a4

commit 4dacf2b61c359950d2c2f1b5f9b9d079a01290a4
Author: Etienne Dechamps <[email protected]>
Date:   Thu Dec 19 08:31:05 2024 -0800

    Don't build partition_alloc if it is not needed

    Currently //base has a dependency on partition_alloc code even if
    `use_partition_alloc` is false, with the rationale that this avoids
    `gn check` errors, relying on the linker to remove the dead code.

    The main problem with this approach is that even though the code does
    not make it into the final binary (hopefully... assuming no accidental
    code dependencies), we still attempt to build it. This is wasted work,
    but more importantly it can cause build failures because partition_alloc
    may contain code that does not build on all platforms where
    use_partition_alloc is false. One example is when building Cronet in
    AOSP - in this case this code is built against an older version of
    glibc that does not support memfd_create(), leading to a compilation
    error.

    We could attempt to work around such problems by making partition_alloc
    build on such platforms, but it seems silly to spend time implementing
    workarounds in what is literally dead code. Instead, it makes more sense
    to just not build partition_alloc when `use_partition_alloc` is false.
    This is what this commit does.

    Bug: b:381421702
We will re-evaluate if new settings are useful for Brave in a separate issue brave/brave-browser#43263
A new settings srceen is used for ChromeOS now, so these tests need adjustments.
Since it is not a quick fix, it will be done in a separate issue brave/brave-browser#43285

Chromium change:
https://chromium.googlesource.com/chromium/src/+/143e5dd239772d488aa172cb7c712cbde6d53f93

[Android][Signin] Remove deprecated promo in settings

The sign-in promo in settings is deprecated with the UNO2 launch. This
CL removes the related code and flag to clean-up the logic.

Bug: 350461111
We were hiding this section, but it's been removed from upstream now so we no
longer need to do that.

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

commit a5af3c4c4beb17ab1fbc2fe39f474b089453abaa
Author: Marc Treib <[email protected]>
Date:   Mon Dec 16 01:56:14 2024 -0800

    Cleanup: Remove kPageContentOptIn feature and page_content settings page

    Bug: 40070860
We were hiding this row, but no longer need to since it's gone upstrem.

Chromium change:

https://source.chromium.org/chromium/chromium/src/+/b522bad8fc62abca7902de52cdbed6956ced8677

commit b522bad8fc62abca7902de52cdbed6956ced8677
Author: Maggie Jennings <[email protected]>
Date:   Fri Nov 22 19:30:04 2024 +0000

    [Mode B] Clean up TP UX feature from Privacy Page

    Screenshot (no changes): https://screenshot.googleplex.com/A4NY8asTFe2hMMp

    OBSOLETE_HISTOGRAM[Settings.TrackingProtection.Redirect]=No longer
    logged

    Bug: b:333527273
Chromium change:

https://source.chromium.org/chromium/chromium/src/+/04b92fe51a232715ec340189d15c5cbdb98a3e7d

commit 04b92fe51a232715ec340189d15c5cbdb98a3e7d
Author: rbpotter <[email protected]>
Date:   Mon Dec 2 22:12:23 2024 +0000

    iron-flex-layout: Remove from settings and Desktop builds

    - Add a .flex { flex: 1 } style in settings-shared
    - Manually replace .layout.vertical style in the few places that used
      it
    - Remove all iron-flex-layout imports and iron-flex includes
    - Remove iron-flex-layout from Desktop builds.

    Bug: 404943652
Chromium change:
https://chromium.googlesource.com/chromium/src/+/2bd4e38dc9ed39d922061a54b06d586528f33f7e

[UPMLoginDbSunset] Clean up ClearLoginDatabaseForAllMigratedUPMUsers

.. after launch. This was enabled by default in crrev.com/c/5975566.

Bug: 381113374
…mpl`

Chromium change:
https://source.chromium.org/chromium/chromium/src/+/89e5482d2454b462257e987d7185a77006fb7c09

commit 89e5482d2454b462257e987d7185a77006fb7c09
Author: Sylvain Defresne <[email protected]>
Date:   Mon Nov 18 11:07:59 2024 +0000

    [ios] Decouple app initialisation from profile initialisation

    With the introduction of AppLifetimeObserver and after moving the
    profile-specific initialisation logic to ProfileController, it is
    now possible to decouple app and profile initialisation.

    Remove the AppInitStage that mirrored ProfileInitStage, move the
    logic to load the Profile from MainController to ProfileController
    and start the profile initialisation when MainController reaches
    the AppInitStage::kFinal, by connecting each SceneState to the
    requested profile (as stored in ProfileAttributesStorageIOS).

    Rework the -changeProfile:forScene:completion: method to work with
    the new logic for loading the ProfileController.

    Fixed: 333863468, 353683675, 324417250
Currently it causes crash (follow up issue created brave/brave-browser#43348):

0000000008aae454  resource_attribution::CPUMeasurementMonitor::RecordMemoryMetrics()                ../../components/performance_manager/resource_attribution/cpu_measurement_monitor.cc:368:40␍
v------>  base::OnceCallback<void (resource_attribution::internal::QueryScheduler*)>::Run(resource_attribution::internal::QueryScheduler*) &&  ../../base/functional/callback.h:156:12␍
0000000008ab641c  resource_attribution::internal::(anonymous namespace)::SchedulerTaskRunner::CallWithScheduler(base::OnceCallback<void (resource_attribution::internal::QueryScheduler*)>)  ../../components/performance_manager/resource_attribution/query_scheduler.cc:123:25␍
v------>  base::OnceCallback<void ()>::Run() &&                                             ../../base/functional/callback.h:156:12␍
0000000008aa7790  performance_manager::(anonymous namespace)::TaskRunnerWithSynchronousRunOnUIThread::PostDelayedTask(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta) (.1183b9048717363005df61d5a2997ef7)  ../../components/performance_manager/performance_manager_impl.cc:97:23␍
0000000008ab6308  resource_attribution::internal::QueryScheduler::CallWithScheduler(base::OnceCallback<void (resource_attribution::internal::QueryScheduler*)>, base::Location const&)  ../../components/performance_manager/resource_attribution/query_scheduler.cc:146:18␍
0000000008aa6314  performance_manager::PerformanceManager::RecordMemoryMetrics()                    ../../components/performance_manager/performance_manager.cc:184:3␍
0000000009ffbcf8  (anonymous namespace)::RecordMemoryMetrics()                                      ../../chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc:182:3

Chromium change:
https://chromium.googlesource.com/chromium/src/+/23511d67df55ba0894d160dcd4315117964adc4a

Move CPUMeasurementMonitor results to NodeInlineData

This improves lookup time by accessing results for PM nodes through a
pointer instead of with a map lookup. Results for
OriginInBrowsingInstanceContexts are now held in a separate, smaller
map.

Also removes the ScopedCPUTimeResultPtr alias to avoid cluttering the
public namespace, since ScopedCPUTimeResult must now be public.

Bug: 325328567
The order for `IntDef` doesn't matter for functionality, but logically and for better code readability it should follow enum's order.
Copy link
Collaborator

@kylehickinson kylehickinson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ios++

mkarolin and others added 5 commits January 17, 2025 11:18
Detection is done on Google's backend, and so this feature doesn't apply to Brave.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/65fe083143b4ecc55ab41f9cd5d6692da634c8b1

[M133] Relocate password leak toggle from safe browsing page to privacy page

This change removes the password leak detection toggle from the
standard protection fragment and makes it it's own setting on the
privacy page for Android. We are also removing the safebrowsing
protection level dependency on the password leak toggle enable status so
the now the user has free choice to select whether they want the
password leak toggle enabled regardless of safe browsing status.

We will also remove the enhanced protection bullet point about
password leak detection since that is no longer accurate.

Respective Desktop Implementation CLs:
https://crrev.com/c/6000457 & https://crrev.com/c/5899277

Password Leak Detection Screenshots:
Screenshot(Before):https://crbug.com/370770920#comment33
Screenshot(After):https://crbug.com/370770920#comment32

Enhanced Protection Screenshots:
Screenshot(Before):https://crbug.com/370770920#comment34
Screenshot(AFter):https://crbug.com/370770920#comment35

Fixed: 388883054

(cherry picked from commit 4586b7192eef92f12daa58ed2a34f3e2a392ce62)

Bug: 370770920
[cr133] GetProductNameAndVersionForUserAgent moved to own header.

Chromium change:

https://source.chromium.org/chromium/chromium/src/+/94ba97dc616a73046b47a0ea053791e344706842

commit 94ba97dc616a73046b47a0ea053791e344706842
Author: Henrique Nakashima <[email protected]>
Date:   Tue Mar 5 00:09:17 2024 +0000

    Create version_info_with_user_agent.cc|h in //components

    These methods in version_info are Chrome-specific should not be in
    //base. Move them back to components while keeping most of version_info
    in //base.

    Bug: 327638952
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 feature/web3/wallet/core feature/web3/wallet needs-security-review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade from Chromium 132 to Chromium 133. Fix dangling pointer in DedicatedOrSharedWorkerFetchContextImpl