Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ee2afaf87b258f0f692c32d17866114a996eb66
commit 5ee2afaf87b258f0f692c32d17866114a996eb66
Author: Zhe Li <zheliooo@google.com>
Date: Mon Apr 20 13:08:32 2026 -0700
[TabFavicon] Do not fallback to host for tab switcher and tab strip
- Guarded behind feature flag sFaviconDisableHostFallback.
- Sets `fallbackToHost = false` in LayerTitleCache.java and TabListFaviconProvider.java when feature is enabled.
- Default `fallbackToHost = true` for all the other callsites.
- Added histograms Favicons.AndroidHostFallbackFetchResult.* in favicon_helper.cc
Bug: 468979189
Change-Id: I5574adf85647c1d5205889dddc2bc42bfba35305
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7745223
Reviewed-by: Theresa Wellington <twellington@chromium.org>
Commit-Queue: Zhe Li <zheliooo@google.com>
Auto-Submit: Zhe Li <zheliooo@google.com>
Cr-Commit-Position: refs/heads/main@{#1617726}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/5ee2afaf87b258f0f692c32d17866114a996eb66
commit 5ee2afaf87b258f0f692c32d17866114a996eb66
Author: Zhe Li <zheliooo@google.com>
Date: Mon Apr 20 13:08:32 2026 -0700
[TabFavicon] Do not fallback to host for tab switcher and tab strip
- Guarded behind feature flag sFaviconDisableHostFallback.
- Sets `fallbackToHost = false` in LayerTitleCache.java and TabListFaviconProvider.java when feature is enabled.
- Default `fallbackToHost = true` for all the other callsites.
- Added histograms Favicons.AndroidHostFallbackFetchResult.* in favicon_helper.cc
Bug: 468979189
Change-Id: I5574adf85647c1d5205889dddc2bc42bfba35305
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7745223
Reviewed-by: Theresa Wellington <twellington@chromium.org>
Commit-Queue: Zhe Li <zheliooo@google.com>
Auto-Submit: Zhe Li <zheliooo@google.com>
Cr-Commit-Position: refs/heads/main@{#1617726}
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/1527e1c0fa38dfb971603f9f59faf7de58c3f313
commit 1527e1c0fa38dfb971603f9f59faf7de58c3f313
Author: Samuel Huang <huangs@chromium.org>
Date: Wed Apr 8 21:43:14 2026 -0700
[Android NTP] Fix vertical gaps between adjacent main sections
The New Tab Page (NTP) has multiple "sections" that are vertically
stacked. Let's specify these with abbreviations:
* FSB: Fake Search Box.
* AIM: AI Mode Button + Incognito Button, AKA Composeplate.
* MVT: Most Visited Tiles.
* MS: Magic Stack, AKA New Tab Page Cards.
* DF: Discovery Feed.
Note that we're ignoring the Logo (above FSB) and promotion (e.g., for
Sign in) sections.
{MVT, MS, DF} may be absent sometimes:
* NTP Customization can toggle {MVT, MS, DF}.
* MS dynamically appears / disappears.
AIM is now a permanent component of the layout and cannot be optionally
removed.
Let FSB-AIM be the vertical gap between the FSB bottom and AIM top.
Similarly, define other spacings. Since {MVT, MS, DF} may be absent,
there are 7 gap cases: FSB-AIM, AIM-{MVT,MS,DF}, MVT-{MS,DF}, MS-DF.
Recently we found that these gap sizes are inconsistent. This CL fixes
the inconsistency by making FSB-AIM = 8 dp, and everything else 16 dp:
Gap Old Goal
FSB-AIM 9 dp 8 dp
AIM-MVT 25 dp 16 dp
AIM-MS 18 dp 16 dp
AIM-DF 18 dp 16 dp
MVT-MS 16 dp 16 dp
MVT-DF 16 dp 16 dp
MS-DF 16 dp 16 dp
Strategy:
* Assign top margins to 12 dp for {FSB, MVT, MS, DF} and 4 dp for AIM.
* Assign bottom margins to 4 dp. Previously this existed so that
sections can expand to accommodate shadows. This is no longer
needed, but we keep the margin anyway as buffer space.
Note that 4 dp + 12 dp = 16 dp, which will be the standard spacing
between sections; and the FSB-AIM exception is managed by 4 dp + 4 dp.
In a previous CL (crrev.com/c/7603164), we removed the dynamic resizing
logic that was previously required to accommodate the AIM view's shadow.
With that logic removed, we can now rely entirely on these static
margins, greatly simplifying the spacing definitions.
Details:
* For common dimensions define and use:
@dimen/ntp_section_top_margin = 12 dp
@dimen/ntp_section_bottom_margin = 4 dp
* For AIM top margin define and use:
@dimen/composeplate_view_margin_top = 4 dp
* Define "padding" quantities to replace previous uses of
section-specific "margin" quantities for padding.
* Update ShowNtpAtStartupTest to expect the new standardized
@dimen/ntp_section_bottom_margin on the MVT container.
* Bump revisions in TabSwitcherLayoutPTTest and FeedV2NewTabPageTest to
trigger Skia Gold rebaselines for the new spacing.
Bug: 481717794
Change-Id: I77adb4c8980a3bc2e0803a5b6cd0b2ac7a66d48a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7589698
Commit-Queue: Samuel Huang <huangs@chromium.org>
Reviewed-by: Brandon Wylie <wylieb@google.com>
Reviewed-by: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1611969}
The Brave News inline content ads pipeline is already disabled via
https://github.com/brave/brave-core/pull/32359. This PR removes the
remaining inline content ads Android code and mojom code that no longer
has any effect.
Move BraveConstants.java from org.chromium.chrome.browser.util to
org.chromium.chrome.browser to align with upstream's hierarchy.
Upstream's analogous ChromeStringConstants lives directly under
org.chromium.chrome.browser, and the util package is treated as
deprecated for new top-level constants/utilities.
No behavior changes — pure refactor.
Resolves: https://github.com/brave/brave-browser/issues/55685
Adds support for the https://brave.com/deeplink-android-origin-promo
deep link so that Google Play promotional content events for Brave
Origin can route users directly into the Origin payment screen (or
settings page for existing subscribers).
Routing happens via the existing autoVerified brave.com App Link.
BraveActivity catches the intent before upstream's URL handling in
initializeState (cold start) and onNewIntent (warm start), and the
Play Install Referrer flow continues to support deferred routing for
first-install attribution.
Resolves: https://github.com/brave/brave-browser/issues/55654
Within the Password Manager UI, the title bar contained two redundant
icons to the left of the title:
1. The help icon - since it only takes the user to the generic help
page, this isn't particularly "helpful"
2. The 3 vertical dots simply display an exit option which is also
redundant since the back arrow does the same thing.
Resolvesbrave/brave-browser#52765
Aligns brave:// with chrome:// in IntentHandler.intentHasUnsafeInternalScheme.
The upstream guard is unaware of the Brave alias because the brave:// →
chrome:// rewrite happens after the intent layer.
BraveIntentHandlerClassAdapter redirects the upstream call site through
BraveIntentHandler.intentHasUnsafeInternalScheme. The Brave method defers to
upstream first, then additionally rejects brave:// under the same category
guard upstream uses. A new BraveIntentHandlerInternal helper holds the
bytecode stub used to back-call the (private) upstream method.
Resolves: https://github.com/brave/brave-browser/issues/55473
Hides the "Show New Tab Page Ads" toggle and the
"Learn more about new tab page ads" link in
Settings -> New Tab Page when Brave Rewards is disabled by policy.
Both controls remain visible and functional otherwise.
Also switches BackgroundImagesPreferences to retrieve the profile via
the inherited getProfile() instead of the legacy
ProfileManager.getLastUsedRegularProfile().
Resolves: https://github.com/brave/brave-browser/issues/55312