* Strip BidiControl from download file name
* Fix downloads not working for data URIs
* Remove data-uri check. Just don't display any host if there is none (following Safari and Chrome)
This is an update to the Windows SDK with a repackaged SDK, that
includes a version of `d3dcompiler_47.dll` from `10.0.22621.2428`.
Resolves https://github.com/brave/brave-browser/issues/45263
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/fca8e8720feecf9faa988b92806b574cd530b23e
commit fca8e8720feecf9faa988b92806b574cd530b23e
Author: Devon Loehr <dloehr@google.com>
Date: Thu Mar 20 09:54:01 2025 -0700
Update Supported Windows SDK to 10.0.26100.3323
The floor bug (https://crbug.com/374162585) which blocked the previous roll has been addressed, so we're trying to update the SDK again.
Code changes are essentially the same as the previous update attempt
(https://crrev.com/c/5898835). Some minor changes to gate new SDK features behind a #define while we transition, and some regenerated image baselines to support the new 3D emojis. Note that updating mc.exe and midl.exe outputs produced no changes.
Pleasantly, the linking change to d3dcompiler_47.dll has been undone, so we no longer need to patch in an older version. This means the update is about as straightforward as it gets.
-----------------------------------------------------------------
Instructions to reproduce:
These instructions are best done on a fresh VM. Make sure to uninstall any existing installations of Visual Studio and any existing SDK installations before starting.
1. Install git for windows from their website, with the default settings (https://git-scm.com/downloads/win)
2. Install depot_tools following the instructions on their webpage (https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up)
3. Run:
$ git config --global depot-tools.allowGlobalGitConfig true
4. Download Visual Studio Professional (Free Trial) from the official site (https://visualstudio.microsoft.com/downloads/)
5. Run the VS installer with the following arguments:
```
$ VisualStudioSetup.exe --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.ATLMFC --add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.MFC.ARM64 --includeRecommended --passive
```
6. Open the VS installer (from the start menu), click “Modify”, and uninstall any existing SDK versions (search for “windows sdk”).
7. Open “Add or Remove Programs” and make sure there are no SDK versions installed; remove them if so (search for “windows software development kit”).
8. Download SDK Version 10.0.26100.3323 from the official site (https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/)
9. Run the SDK installer with default settings, except disable “insights”.
10. Run the packaging script from depot_tools, e.g
$ python3 depot_tools\win_toolchain\package_from_installed.py 2022 -w 10.0.26100.0
Link to packaging script version used for packaging: https://source.chromium.org/chromium/chromium/tools/depot_tools/+/main:win_toolchain/package_from_installed.py;drc=371aa997c04791d21e222ed43a1a0d55b450dd53
This resulted in the final package with hash 076960eda6.
Bug: 362650376
Change-Id: Ib6cb299ab20cfca1e72f34728e6ea165ab057d05
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6252774
Reviewed-by: Keren Zhu <kerenzhu@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Zequan Wu <zequanwu@google.com>
Commit-Queue: Devon Loehr <dloehr@google.com>
Reviewed-by: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1435503}
iOS 18.4 simulators have a known issue with networking that can cause repeated requests to pages that support HTTP3 to timeout/fail (https://developer.apple.com/forums/thread/777999). This switches the unit tests to use an `ephemeral` configuration which is a known workaround
QA discovered that on-demand updates were failing with cr136 on Windows. The
delta update was downloaded, but the call to rename the executable failed with:
[26260:26536:0414/144959.375:ERROR:chrome\browser\first_run\upgrade_util_win.cc:326] app->get_command failed; hr = 80070005
Based on feedback from our installer/Omaha team, we decided to revert this
change and continue to use IProcessLauncher::LaunchCmdElevated.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/6822d2ac265835f8b1f52b89cdd57593c1413dae
commit 6822d2ac265835f8b1f52b89cdd57593c1413dae
Author: S. Ganesh <ganesh@chromium.org>
Date: Mon Mar 31 13:26:48 2025 -0700
Chrome: IProcessLauncher::LaunchCmdElevated => IAppCommandWeb::execute
This CL migrates the system-level rename operation via the `updater`
from `IProcessLauncher::LaunchCmdElevated` to `IAppCommandWeb::execute`.
`IProcessLauncher::LaunchCmdElevated` uses an `[out]` parameter of type
`ULONG_PTR`. `ULONG_PTR` is not a supported type for OLE automation
marshaling, which is what the `updater` uses. In addition, its size
changes with the size of a pointer (32/64). It is typed to a 64-bit for
x64, and 32-bit for x86.
Fixed: 407126161
Chromium change: https://chromium-review.googlesource.com/c/chromium/src/+/6304464
commit 6e2d4797aa27bbfcd13e05895cd8a519eb78d206
Author: Aliona DANGLA <alionadangla@google.com>
Date: Fri Mar 21 09:45:02 2025 -0700
[iOS] Add TabGroupService
Create a tab group service to store some helper functions needed for the
web state list.
Fixed: 378881981
Change-Id: Iaf49b35e36c1fee7f6a14e2bbedc0babf46d4ff7
These files are not have enabled check at the upstream.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/224ee248b1cb706a8aaf58ea3fa173835fcea8b7
Reland "Add _CheckAndroidNullAwayAnnotatedClasses PRESUBMIT check"
Doing a simpler check, not trying to figure out if the annotation is in the class declaration or on a method declaration. It would be
very rare for a method to be annotation and not the class.
This reverts commit ae8498e7516099f7e07b7477ecc6af65da6ade99.
Reason for revert: Fixed version
Original change's description:
> Revert "Add _CheckAndroidNullAwayAnnotatedClasses PRESUBMIT check"
>
> This reverts commit cfe861e365f1c00b7dae00cae8cdcf69cf4123e1.
>
> Reason for revert: Doesn't ignore comments
>
> Original change's description:
> > Add _CheckAndroidNullAwayAnnotatedClasses PRESUBMIT check
> >
> > Warn when a .java file is missing @NullMarked and @NullUnmarked.
> >
> > Temporarily disabled in //android_webview and //chrome while migrating.
> >
...
Bug: 404884589
Change-Id: I11d0ed28bf1941e72df5dcc457fb9d7e62dc89ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6381838
This change drops the local crate for `num-bigint-0.4.3` in favour of
the one checked out in the chromium tree.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/667fc3f5519cddeaa61316868fcbfa5c7d38ebaf
commit 667fc3f5519cddeaa61316868fcbfa5c7d38ebaf
Author: Manish Goregaokar <manishearth@google.com>
Date: Mon Feb 3 16:11:14 2025 -0800
Import ICU4x 2.0.0-beta1
This imports ICU4X 2.0.0-beta1 and its dependencies. I have taken this
opportunity to audit and improve most of these crates, with audits
included in this CL. From discussion with lukasza@ I have also written
exemptions for some of these rather than reviewing everything:
ICU4X is already used in Google3 (and soon
Android) and is in part Google maintained, with a crabal member (me)
having written or reviewed most of the unsafe code. I still intend to
get audits published for the things we have exemptions for, it may just
take a while.
Bug: 393889248
Change-Id: I63967fb71044ccc542854d8ebcca7d9e7359d156
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6222782
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Manish Goregaokar <manishearth@google.com>
Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org>
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1415265}
There still many unfixed files:
android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveIncognitoTabSwitcherPane.java
android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveTabGroupUiCoordinator.java
android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/BraveTabSwitcherPaneBase.java
android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkManagerCoordinator.java
android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkManagerMediator.java
android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkToolbarCoordinator.java
android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkUtils.java
android/java/org/chromium/chrome/browser/customtabs/FullScreenCustomTabActivity.java
android/java/org/chromium/chrome/browser/customtabs/FullScreenCustomTabRootUiCoordinator.java
android/java/org/chromium/chrome/browser/firstrun/WelcomeOnboardingActivity.java
android/java/org/chromium/chrome/browser/settings/AppearancePreferences.java
android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase.java
android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java
android/java/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java
android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java
android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java
android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java
browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/BraveHubManagerImpl.java
browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/BraveHubToolbarView.java
They are not fixed because they are waiting for the upstream's counterparts to be fixed.
See exclusions at _CheckAndroidNullAwayAnnotatedClasses at src/PRESUBMIT.py
Related Chromium issue:
https://issues.chromium.org/issues/389129271
Add @NullMarked to all .java Files
This crate is still in use in Brave, so a copy of it is being checked
out in the tree.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/2654c789bc9562774b5552bc09813f7606b235c6
commit 2654c789bc9562774b5552bc09813f7606b235c6
Author: Lukasz Anforowicz <lukasza@chromium.org>
Date: Fri Mar 7 14:05:01 2025 -0800
[rust png] Roll `png` crate to version 0.18*
This CL has been created semi-automatically. Manual changes have been
made as follows:
* Before automated update:
- Switch to 0.18 in
`//third_party/rust/chromium_crates_io/Cargo.toml`
(`=...` syntax is needed because 0.18 is a "prerelease")
- Remove 0.17-targeting patches under
`//third_party/rust/chromium_crates_io/patches/png`
* After automated update:
- Remove old `//third_party/rust/foo/vX` directories
- Edit `skia/BUILD.gn` to enable `png_0_18` crate feature
(this part depends on http://review.skia.org/958801)
- Record the audit in
`.../chromium_crates_io/supply-chain/audits.toml`
Updated crates:
* png: 0.17.16 => 0.18.0-rc
Removed crates:
* bitflags@1.3.2
Chromium `supply-chain/config.toml` policy requires that the following
audit criteria are met (note that these are the *minimum* required
criteria and `supply-chain/audits.toml` can and should record a stricter
certification if possible; see also //docs/rust-unsafe.md):
* png@0.18.0-rc: crypto-safe, safe-to-deploy, ub-risk-2
Bug: None
Change-Id: I9008912d7ac58b66887b7bf276367e56aad51828
Cq-Include-Trybots: chromium/try:android-rust-arm32-rel
Cq-Include-Trybots: chromium/try:android-rust-arm64-dbg
Cq-Include-Trybots: chromium/try:android-rust-arm64-rel
Cq-Include-Trybots: chromium/try:linux-rust-x64-dbg
Cq-Include-Trybots: chromium/try:linux-rust-x64-rel
Cq-Include-Trybots: chromium/try:win-rust-x64-dbg
Cq-Include-Trybots: chromium/try:win-rust-x64-rel
Disable-Rts: True
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6318699
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1429744}
There is still a presubmit warning similar to the one at upstream:
Banned functions were used.
chromium_src/chrome/browser/ui/webui/current_channel_logo.cc:15:
Code gated by OFFICIAL_BUILD is effectively untested. This is typically wrong. One valid use case is low-level code that handles subtleties related to high-levels of optimizations that come with OFFICIAL_BUILD.
Related Chromium commit:
https://source.chromium.org/chromium/chromium/src/+/c134a4989fe915c47d32b83336db1e03750e4943
extensions: Show chrome logo on chrome://extensions on desktop android
I ignored the following warning, because I just extracted the existing
piece of code as a helper function.
** Presubmit Warnings: 1 **
Banned functions were used.
chrome/browser/ui/webui/current_channel_logo.cc:15:
Code gated by GOOGLE_CHROME_BRANDING is effectively untested. This is typically wrong. Valid use cases are glue for private modules shipped alongside Chrome, and installation-related logic.
Bug: 406136774
Fixed: 406136774
Test: Manually confirm the logo is shown on chrome://extensions both on
light mode and dark mode on desktop android
Change-Id: I1a0b8b0af46c25f605a2e5047a0bc54212fffa3f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6399693
Related Chromium changes:
https://source.chromium.org/chromium/chromium/src/+/f8de93495c1d5e041d25dfd02d60f03ff1fabeed
[Android TRM] Remove R.id.tab_resumption_module_container_stub.
In crrev.com/c/5297855, the Tab Resumption Module was integrated into
the Magic Stack. Therefore it no longer needs the ViewStub
R.id.tab_resumption_module_container_stub as the top level layout, but
it still lingers. This CL deletes the now useless ViewStub.
Bug: 1515325
Change-Id: I358b64ef57c267629230578cf8dc5b28af3d7dfc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5734353https://source.chromium.org/chromium/chromium/src/+/28cde898edae21f1b807d3e0e43d62701837ac7a
[Android TRM] Remove feature and most of the code.
This CL removes the Android Tab Resumption Module:
* Remove chrome/browser/tab_resumption.
* Remove flags and configs.
* Remove 5 UI strings: IDS_TAB_RESUMPTION_MODULE_*,
IDS_N_{MINUTES,HOURS}_AGO_NARROW.
* Remove resources.
Need to keep for metrics:
* tools/metrics/histograms/enums.xml entry.
Out of scope of this CL; TODO in follow-ups:
* NTP Customization features and tests involving the TRM (will remove in
follow-up).
* Keep IDS_TAB_RESUMPTION_MODULE_SEE_MORE "See more": This got reused by
Tab Switcher.
* Keep IDS_HOME_MODULES_TAB_RESUMPTION_TITLE "Continue with this tab" /
"Continue with these tabs": Used by Single Tab Module.
Unaffected:
* TRM still exists on Desktop and iOS. Tab data sync from Android
continue to work same as before.
Bug: 400479323, 400479745
Change-Id: I38cc101c361c761d38dff931b7ab6d15960836fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6408054
The patching for this used to be in
`chrome/browser/ui/webui/theme_source.cc`, but this code is now under
`chrome/browser/ui/webui/current_channel_logo.cc`, in its own function.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c134a4989fe915c47d32b83336db1e03750e4943
commit c134a4989fe915c47d32b83336db1e03750e4943
Author: Keigo Oka <oka@google.com>
Date: Mon Mar 31 14:24:15 2025 -0700
extensions: Show chrome logo on chrome://extensions on desktop android
I ignored the following warning, because I just extracted the existing
piece of code as a helper function.
** Presubmit Warnings: 1 **
Banned functions were used.
chrome/browser/ui/webui/current_channel_logo.cc:15:
Code gated by GOOGLE_CHROME_BRANDING is effectively untested. This is typically wrong. Valid use cases are glue for private modules shipped alongside Chrome, and installation-related logic.
Bug: 406136774
Fixed: 406136774
Test: Manually confirm the logo is shown on chrome://extensions both on
light mode and dark mode on desktop android
Change-Id: I1a0b8b0af46c25f605a2e5047a0bc54212fffa3f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6399693
Auto-Submit: Keigo Oka <oka@chromium.org>
Commit-Queue: Keigo Oka <oka@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1440558}
Due to the introduction of DraggingTabsSession which now handles many of the
tab-related dragging responsibilities, we need to modify our patches and
overrides to work within this new framework.
Chromium change:
https://chromium.googlesource.com/chromium/src/+/b39ab7bc4ae0db831a930d373264e5edf8205fdc
commit b39ab7bc4ae0db831a930d373264e5edf8205fdc
Author: Taylor Bergquist <tbergquist@chromium.org>
Date: Mon Mar 24 16:22:37 2025 -0700
Create DraggingTabsSession to handle dragging tabs within a tabstrip.
DraggingTabsSession handles the work of the kDraggingTabs state for
TabDragController. This functionally boils down to implementing
MoveAttached. TabDragController creates a new DraggingTabsHelper each
time it enters kDraggingTabs (or, in one case, when it enters
kWaitingToDragTabs instead), and destroys it when exiting that state.
This removes quite a few responsibilities from TabDragController - most
of the detailed business logic bits are in this domain, even though it's
a minority of the code size. It's also more testable, since it doesn't
have to deal with creating windows or running move loops. A compact
interface with minimal dependencies, hiding lots of requirements? It's
unit test heaven. Followup CLs will set up a test harness and convert
TabDragControllerInteractiveUITests into DraggingTabsSessionUnitTests.
Bug: 382754501