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.
* [Android] Migrate private NTP to Leo tokens and fix VPN icon visibility
- Drop Brave-local duplicates of ic_product_vpn / ic_antenna /
ic_product_private_window so the private NTP renders the Leo
(Nala) icons via resource_overlay; tint the inner icon layer to
primitive_private_window_60 in IncognitoNewTabPageView so the
designed purple still wins on the fixed-dark surface.
- Remove Brave-local primitive_private_window_5/10/20/60/80/90 from
brave_colors.xml; references now resolve through Leo's primitive
scale (same hex for _60/80/90; slight neutral shift for _5/10/20).
- Remove the runtime setBackgroundColor on the scroll view that was
masking the gradient drawable defined in the layout XML.
- Switch the private-tab logo to ic_social_brave_release_favicon_-
fullheight_color (Leo) and size in dp (42 phone, 56 tablet) to
match Figma and to stop scaling with accessibility font size.
- Resize circle drawable to 32x32 (was 32x33), constrain inner icon
via new_tab_page_incognito_icon_inner_size (20dp / 24dp tablet),
and grow circle to 48dp on tablets.
- Introduce per-form-factor style aliases (IncognitoNtpTitle /
SectionTitle / SectionDescription / Cta) under values/ +
values-sw600dp/ so phones and tablets land on the right Leo
typography ramp without per-TextView attributes.
- Delete the now-dead ntp_bg_incognito and incognito_modern_-
primary_color color entries.
Resolves: https://github.com/brave/brave-browser/issues/53958
* [Android] Show loading state in Origin preferences during post-purchase credential fetch
When a Brave Origin purchase is completed, there is a delay while the
receipt is passed from Play Store to the SKUs SDK via
fetchOrderCredentials. During this time, the Origin preferences screen
opens but credentials aren't ready yet.
- Disable all toggles and clickable preferences until
fetchOrderCredentials completes
- Show a snackbar with "Disabling features" spinner instead of
"Restart now" during the credential fetch
- On success, re-enable preferences and transition to "Restart now"
- On failure, close the preferences screen
- Always show restart snackbar on toggle change regardless of
setPolicyValue result, since failure means a restart is needed
- Remove duplicate color definitions (schemes_primary_fixed_dim,
schemes_on_primary_fixed, semantic_text_secondary,
semantic_text_tertiary) that already exist in nala tokens
Resolves: https://github.com/brave/brave-browser/issues/53915
Implements new layout for widget search promo panel and introduces better handling of activity recreations and configuration changes to redraw the widget search promo panel with correct theme (day/night) and proper position.
Other notable enhancements:
- Tweak tablet margins to better frame the onboarding cards on foldable devices after initial review with the design team.
- Fix post-FRE intent and delay activity to avoid a glitch on foldable devices by following the same strategy applied upstream.
- Accessibility: include content descriptions for widget search promo panel images.
- Nala: include new drawables from Nala tokens.
- Append new source android-widget for all searches made from the widget.
- Implement tests to verify new source android-widget.
Update Android Origin paywall from subscription to one-time purchase
- Replace monthly/yearly subscription plan selectors with single "One Time Purchase" plan row
- Add 4th feature benefit: one-time purchase, no subscription cost
- Add Origin description and Brave Search Premium note sections
- Replace "Try 7 days free" with "Buy now" button
- Replace "Refresh your credentials" with "Get a login code" button
- Remove "Learn more about Origin" button and unused resources
- Update text styles per design spec
- Comment out billing integration for later hookup
Resolves: https://github.com/brave/brave-browser/issues/52855
Redesign the Origin preferences screen: add a custom restart
snackbar with dismiss button shown on toggle changes, split then
description into styled title/body/note sections, and rename
the bottom section from Subscription to Purchase.
Resolves: https://github.com/brave/brave-browser/issues/52774
Updates the Day Zero onboarding experience on smartphones and small screen devices to a multi‑step, horizontally advancing flow driven by CTA buttons.
It introduces distinct layouts per step, a pager animation helper, and updates onboarding logic to support a scalable, multi‑step sequence with minimal duplication.
Tablet support is intentionally out of scope and will be handled in a separate PR.
Remove Android Super Referrals. The feature is no longer supported or
used, and this cleanup helps reduce unused code and simplify the overall
system as part of https://github.com/brave/brave-browser/issues/44403.
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/c818a3850128c73f62537482e36f43367e9c40ce
commit c818a3850128c73f62537482e36f43367e9c40ce
Author: Tomasz Wiszkowski <ender@google.com>
Date: Fri Oct 3 15:11:19 2025 -0700
Ensure all StatusIcons meet the specific size constraint.
We've observed a weird behavior when toggling search engines results
in oversize and cropped search engine icon shown in the omnibox.
This is partially because the ChromeTransitionDrawable animating
between states receives Drawables of inconsistent sizes, and changes
its intrinsic size, trying to accommodate the larger of the drawables.
Second more important factor is that the StatusIconResource carrying
drawable was shared between two different views - the NTP Fakebox and
the Omnibox. One view altering the Drawable state made the other view
instantly see these alterations, resulting in wrong positioning of
the icon.
This change aligns all StatusView icon sizes, ensuring that no icon
can ever change the intrinsic size of the TransitionDrawable.
Change intentionally kept small as it will need to be cherrypicked.
Fixed: 449181250
Change-Id: I59953971b99a01d015aa2398db058677c7816d7c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7007583
Commit-Queue: Tomasz Wiszkowski <ender@google.com>
Reviewed-by: Patrick Noland <pnoland@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1525046}
This change has been produced using a Ruby script that implements the
following logic:
1. For each <color> tag in the destination, try to find one in the
source with the same name
2. If found, update the destination tag with the colour from the source
tag
3. If not found, do nothing and move onto the next tag.
4. Tags that exist in the source but not the destination are ignored.
Currently, some tags exist in the destination XML that are missing from
the source and also vice versa.
Once this has been resolved, we should be able to delete the files in
this diff and move to simply copying the generated XML files straight
out of brave/leo.
Additionally, a small change has been made to the Brave Sync "Add New
Device" button to use a Nala-defined colour rather than being hard-coded
to white.
Closesbrave/brave-browser#49143
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/e981dd46821f563acaa6a5a3d8fd51e046e311e2
commit e981dd46821f563acaa6a5a3d8fd51e046e311e2
Author: Patrick Noland <pnoland@google.com>
Date: Wed Aug 13 13:37:18 2025 -0700
[Toolbar] Rework hairline positioning
Manually calculating the margin for the hairline is error-prone and
tedious when multiple components can alter the height of the toolbar.
Instead of manual manipulation, we can position it "for free" by using
coordinator layout's anchor gravity concept.
This does require switching the toolbar container to be a
CoordinatorLayout. Mostly this is easy since CoordinatorLayout is a more
powerful FrameLayout. There is one consideration: OptimizedFrameLayout,
formerly in the inheritance chain for the toolbar container, reduced the
number of measure calls on ToolbarLayout for performance reasons.
This ends up not mattering because CoordinatorLayout performs the same
number of measure calls.
NO_IFTTT=Adding block for the first time
Change-Id: Idfbb41afbbb1d361214cd0e8e585fefa545aee89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6828889
Reviewed-by: Xi Han <hanxi@chromium.org>
Reviewed-by: Wenyu Fu <wenyufu@chromium.org>
Commit-Queue: Patrick Noland <pnoland@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1501003}
The custom menu item preference screen follows the Figma design and is composed by two sections, Main menu and Page actions.
The screen shows only those items that are supported by the device, items that will never appear won't be shown.
Each item's visibility will default to true and each preference is saved on shared preferences.
The only two items whose visibility cannot be modified are the Main Settings item and the Custom Menu item itself.
Implements Brave origin paywall screen and handles subscription
purchases on Google Play Store. There is no entry point to it
currently, it will be done in the feature PRs
Resolves: https://github.com/brave/brave-browser/issues/48279
* [Android] Initial integration of quick shortcut button
- Adds flag for quick shortcut (disabled until all Brave items are available)
- Makes parity with options available with the upstream
- Visual and UI fixes
* Moves flag under Android guards
* Move java classes into brave/browser for quick_search_engines
* Move serach_engines resources to brave/browser/search_engines
* Add translations files for search_engines android string
* Add dimens
Add a function to load favicons
* Add close menu id for quick search
* Add missing deps
* Move quick search engines changes to brave/browser/quick_search_engines
* Remove comments for BUILD.gn
* Add support for diferent variants
* Remove omnibox highlight which shows up right after onboarding
* Add different variants function
* Add search widget promo on NTP
* Add notification permission changes
* Update widget promo UI
* Update wdp check
Resolve presubmit issue
* Add rewards 3.0 feature flag
* Add a function to check for rewards 3.0 flag
Update entry points for rewards with rewards 3.0 flag
* Add RewardsPageActivity/RewardsCustomTabRootUiCoordinator to show rewards 3.0 changes in custom tab
* Address rewards reset for rewards 3.0
* Add activity transition for rewards page
* Remove onBackPressed override
* Add close button to close the rewards panel as we have disabled back press
Update close button position on the page
* Add creator changes for rewards 3.0
Remove logs
Add null check
Remove changes for backpress
* Add changes for handling creators
Encode Url for creators
* Add open url native fucntion
* Add bubble in query params
* Add bytecode changes for BaseCustomTabActivity
Add native function to open url into rewards_page_ui
* Update copyright header year
* Update close icon for rewards page
Remove comments and refactor changes
* Address naming related changes
* Add test for bytecode changes
Resolve rebase error
* Update changes to use TabUtils open tab
* Remove close button
* Add FullScreenCustomTabActivity