Commit Graph
75373 Commits
Author SHA1 Message Date
Anton Paymyshev 0976475da3 Refactor wallet permissions (#33209) 2026-02-09 12:59:10 +00:00
brave-builds 0f0440505d 1.89.13 2026-02-09 12:32:56 +00:00
brave-builds eb4ed76b37 1.89.12 2026-02-09 12:03:32 +00:00
Anirudha Bose 1982672fc3 [Rewards] [Gemini] Migrate OAuth endpoints to gate3 proxy (#33566)
* [Rewards] [BitFlyer] Migrate OAuth endpoints to gate3 proxy

* review(zenparsing): add public accessors for each provider

* review(zenparsing): move GetBraveServicesKeyHeader to EnvironmentConfig

* review(goodov): use base::StrCat

* review(goodov): use UpperCase for brave_services_key_header

* review(goodov): move kGate3URL to brave_wallet/common

* review(goodov): consolidate kGate3URL in brave_rewards/core/common as single source of truth

* Consolidate gate3 url in brave_domains as single source of truth

* review(goodov): use public_deps in brave_wallet/browser

* Add buildflag guards in rewards around kGate3URL usage

* Move brave_domains:constants dep out of enable_brave_rewards guard

brave_rewards/core is already unconditional in brave_browser_net_deps,
so brave_domains:constants should be too.

* [Rewards] [Gemini] Migrate OAuth endpoints to gate3 proxy

* Revert bitFlyer migration in favour of Gemini

* review(goodov): add comment explaining ENABLE_BRAVE_REWARDS guard in network delegate

* Remove guards around kGate3URL definition

* Remove unused import in sources.gni
2026-02-09 16:22:05 +05:30
Simon Hong a988f96cee [Cleanup] Deleted empty brave_tab_layout_constants.h (#33792) 2026-02-09 19:42:54 +09:00
Terry Mancey 273ae5441a Follow up to #52104: Deleted SERP metrics can be recovered (#33770)
This occurred because TimePeriodStorage keeps internal state in memory
that can be rewritten to disk; as a result, SERP metrics reappear if the
user visits SERP again, but they do not reappear if the browser is
restarted, since the in-memory state is cleared.
2026-02-08 23:02:47 -05:00
Jay Harris 636d768d1f [AI Chat]: Add support for remark-directives in preparation for rendering inline search results (#33485) 2026-02-09 03:37:09 +00:00
Jay Harris 0d01fb7bc3 Reland "[Nala]: Replace app.global.scss with Nala variables" (#33677) 2026-02-09 15:24:14 +13:00
Jay Harris 6260a14493 [webpack]: Bump for audit failure (#33782) 2026-02-09 15:24:01 +13:00
Jay Harris c08efcaa7f [Nala]: Bump version to main (#33476)
Changes https://github.com/brave/leo/compare/11bf0dd8e23a95988d63b4add9769875ede59736...516fb343647ecaeef997100884e6cd03f14baf3f
- [Menu]: Fix console error when element is undefined ([#1305](https://github.com/brave/leo/pull/1305))
- [Dropdown]: Improve default value handling ([#1300](https://github.com/brave/leo/pull/1300))
- [Toggle]: Fix hover style for WebKit ([#1294](https://github.com/brave/leo/pull/1294))
- [Icons]: Fix auto updater which broke due to rate limiting ([#1297](https://github.com/brave/leo/pull/1297))
- [Icons]: Update icons from Figma ([#1298](https://github.com/brave/leo/pull/1298))
- [audit]: Fix audit failure ([#1295](https://github.com/brave/leo/pull/1295))
- Bump lodash from 4.17.21 to 4.17.23 ([#1293](https://github.com/brave/leo/pull/1293))
2026-02-08 20:17:13 -05:00
Jay Harris 69daefc6df [settings]: Add padding under ollama toggle (#33783) 2026-02-09 01:07:41 +00:00
brave-builds e56026faf3 1.89.11 2026-02-09 00:03:15 +00:00
Pete Miller 3e5b3073de createInterfaceApi - a browser proxy store (#29601)
* createInterfaceApi - a browser proxy store

A way to generate a state store browser proxy from any remote API, designed for mojom (or extension) APIs

The intention is to create something requiring minimal configuration and remove often repeated patterns to do with WebUI <-> Browser communication and
- storing and caching fetch results across UI components
- event listening to data updates and upadting local cache
- passing through actions to UI components
- mocking data for unit tests and storybook

This is not intended to replace all local state management. The intention is to manage only the data that is owned by a remote (e.g. the browser) and present it to the UI. Any local-only state should still be managed by the relevant framework (i.e. React, Lit, or Svelte) or a separate state manager.
However, this does add another relevant utility:

Used to send an instance of an api to a tree of React components. However, since it accepts any function it can also conveniently be used to store global state for that tree, using React hooks (`useState`, `useMemo`) or derived state from values retrieved from the API.
React Context is not that performant, as the whole tree will re-render when any pieces of state change, so this should be used sparingly. Instead, hooks for each individual endpoint should be used via the API instance which is passed down via Context. The API instance itself won't change and cause re-renders, but the individual hooks will cause subscriptions to be made to each piece of data.

A helper to generate endpoints from an interface. Prevents having to re-declare the mojom function signature as Typescript can deduce it from the generated mojom JS.

A helper to mark an interface function as an 'event'. Prevents having to re-declare the mojom function signature as Typescript can deduce it from the generated mojom JS.

See `components/common/api/readme.md` for examples.
2026-02-08 15:54:40 -08:00
Netzenbot d0a3440be2 Disable Chromium test: WebRtcEventLogManagerTestForNetworkConnectivity (#33784)
This is an upstream Chromium test that tests WebRTC event log upload
behavior based on network connectivity. Brave disables WebRTC event log
uploading via patches to webrtc_event_log_uploader.cc (StartUpload
returns early). The related test suites WebRtcEventLogManagerTestPolicy
and WebRtcEventLogUploaderImplTest are already disabled in the filter
file for the same reason.

The test is stable upstream (0% flake rate across 190k+ runs in 30 days)
confirming this is a Brave-specific failure caused by the upload
disabling patches.

Resolves https://github.com/brave/brave-browser/issues/52667
2026-02-08 18:53:24 -05:00
Szilard Szaloki 9602b8578a Account: disable auto-capitalization for email input fields (#33775) 2026-02-08 22:32:57 +00:00
Netzenbot 1bcd0d4a8a Disable Chromium test IsolatedWebAppRetryTest.RetryTriggeredWhenAllTasksDone (#33779) 2026-02-08 16:46:21 -05:00
Netzenbot 6e3348e02c Disable intermittent upstream test WebUIURLLoaderFactoryTest.RangeRequest (#33778)
The WebUIURLLoaderFactoryTest.RangeRequest parameterized tests fail
intermittently on Windows CI due to a Mojo data pipe race condition
where response_body().ReadData() returns 0 bytes after
RunUntilComplete() completes. The data hasn't been flushed through
the pipe yet when the query is made.

Resolves https://github.com/brave/brave-browser/issues/52657
2026-02-08 16:28:21 -05:00
Mikhail c8ebf643b1 [brave_news] Fix iterator issues with ApplySubscriptions (#33695)
The PR:
* fixes incorrect usage of .erase().
* adds a unit test to cover the problematic case.
2026-02-09 00:00:47 +04:00
Szilard Szaloki bae8fc61cd Account: adds keyboard shortcuts to dialogs (#33764) 2026-02-09 08:17:03 +13:00
Netzenbot b907f2509c Disable Chromium test ExtensionBackForwardCacheBrowserTest.MessageSentToCachedIdFails (#33776)
Move ServiceWorker/ExtensionBackForwardCacheBrowserTest.MessageSentToCachedIdFails/0
from the Linux-specific browser_tests-linux.filter to the platform-agnostic
browser_tests.filter. The EventPage parameterization was already disabled
globally.

This is an upstream Chromium test (located in
chrome/browser/extensions/back_forward_cache_browsertest.cc). Chromium has not
disabled this test. Brave has modifications to RenderFrameHostImpl via
chromium_src (ephemeral storage tokens, nonce computation) that may affect
BFCache lifecycle management.

The test intermittently fails because the RenderFrameHost is destroyed instead
of being cached in BFCache after navigation, causing an assertion failure at
line 849 (IsDestroyed() returns true) followed by a null pointer dereference.
Previously only disabled on Linux; now also observed on Windows x64 ASAN
nightly.

Resolves brave/brave-browser#52660.
2026-02-08 08:20:12 -05:00
Netzenbot 707e40f59a Disable flaky InstallableManagerBrowserTest.CheckFavicon and add ASAN filter support (#33777)
Add InstallableManagerBrowserTest.CheckFavicon to browser_tests.filter
to disable this flaky upstream test. The test intermittently fails due
to favicon fetch timing issues. Already disabled on Mac upstream
(crbug.com/333331507).

Also add ASAN filter support to getApplicableFilters() in testUtils.js,
which was missing (only UBSAN and MSAN were supported).

Resolves https://github.com/brave/brave-browser/issues/52659
2026-02-08 08:17:50 -05:00
brave-builds cf1ab2b8a3 1.89.10 2026-02-08 04:37:17 +00:00
brave-builds 74d7111eec 1.89.9 2026-02-08 04:23:53 +00:00
Terry Mancey 0703baa657 [ads] Use Chromium ui::PageTransition instead of local clone (#33753)
Use Chromium’s `ui::PageTransition` instead of a local clone to reduce
duplication and maintenance.
2026-02-08 00:49:12 +00:00
Szilard Szaloki b9f269ea9e Account: fix Esc key not closing Brave Account dialog on macOS (#33759) 2026-02-07 01:21:03 +00:00
Kyle Hickinson d62634a1e4 [iOS] Move Brave Sync NetworkTimeHelper setup to PreMainMessageLoopRun (#33756)
This fixes a crash where sync setup is started and accesses `brave_sync::NetworkTimeHelper` before it has set a task runner.
2026-02-06 23:06:35 +00:00
Terry Mancey ee1134eb5b [ads] Rename network client to http client (#33742) 2026-02-06 22:15:52 +00:00
Netzenbot 565a31d0f2 Move Linux-only kPromptForDownload test filters to browser_tests-linux (#33757)
Move Linux-only kPromptForDownload test filters to browser_tests-linux.filter

These tests only fail on Linux where the GTK file chooser dialog triggered
by kPromptForDownload=true causes g_malloc leaks (detected by LSan on
ASAN builds) and timeouts. They don't fail on macOS or Windows.

Move ChromeMojoProxyResolverFactoryBrowserTest, PDFPluginDisabledTest,
and PluginResponseInterceptorURLLoaderThrottleBrowserTest.DownloadPdf
from the global browser_tests.filter to browser_tests-linux.filter.
Also remove the now-redundant entries from browser_tests-linux-msan.filter
since browser_tests-linux.filter is applied to all Linux builds including
MSAN.

Resolves https://github.com/brave/brave-browser/issues/52649
2026-02-06 17:05:10 -05:00
NetzenbotandBrian R. Bondy ba188eff5e Disable Chromium test ChromeMojoProxyResolverFactoryBrowserTest (#33751)
Disable ChromeMojoProxyResolverFactoryBrowserTest due to kPromptForDownload

Same root cause as PDFPluginDisabledTest and DownloadPdf filters: Brave
defaults kPromptForDownload to true, which triggers the GTK file chooser
dialog during browser startup. Under ASAN this causes enough overhead to
timeout the test.

Co-authored-by: Brian R. Bondy <netzen@gmail.com>
2026-02-06 16:46:44 -05:00
Nuo Xu 7ebfe5c2b4 [iOS][Wallet] Move wallet webui feature flag into components (#33674)
* move wallet webui and debug flags to components

* conditionally compile webui feature flag with iOS BUILDFLAG
2026-02-06 21:35:51 +00:00
Netzenbot 11202ae89e Fix crash in AIChatUIPageHandler when chat_ui_ is unbound (#33745)
Guard all chat_ui_ method calls with is_bound() checks to prevent
null dereference crashes when navigation events trigger
OnRequestArchive before the WebUI frontend has called SetChatUI().

Resolves brave/brave-browser#51824
2026-02-06 16:18:56 -05:00
Netzenbot 40fd7ef707 Disable download tests that fail due to kPromptForDownload override (#33750)
Brave defaults kPromptForDownload to true, which causes the GTK file
chooser dialog to appear during PDF download tests. The dialog tries
to navigate to a scoped temp directory that may no longer exist,
causing test failures (and g_malloc leaks detected by LSan on ASAN
builds).

Add PluginResponseInterceptorURLLoaderThrottleBrowserTest.DownloadPdf
and All/PDFPluginDisabledTest.DirectNavigationToPDF/* to the existing
kPromptForDownload filter section in browser_tests.filter.
2026-02-06 16:15:47 -05:00
cdesouza-chromium 2b7a2d29ff [CodeHealth] Use base::DictValue/base::ListValue - Part XI (#33718)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Resolves https://github.com/brave/brave-browser/issues/52435
2026-02-06 18:11:53 -03:00
Nuo Xu 80521370d1 [iOS][Wallet] Start compiling full Zcash library for iOS build. (#33625)
* remove enable_orchard and ENABLE_ORCHARD flags that block zcash library from compiling for iOS target

* fix unit test compiling error

* include ZCashWalletServiceUnitTest.ShieldFunds_FailsOnNetworkError for iOS target
2026-02-06 15:37:37 -05:00
Aleksei Khoroshilov 51911abab0 Add EnvConfig getPath helper. (#33613)
* Add EnvConfig getPath helper.

* Remove slashes replacement on win32.

* Use getPath for RBE cert filepaths.
2026-02-07 03:35:06 +07:00
Terry Mancey 92cc95752e [CodeHealth] Test cleanup and coverage improvements for SERP metrics (#33737) 2026-02-06 19:39:37 +00:00
Mikhail af9d6d7ac6 Backport https://crrev.com/c/7256610 to fix crash (#33741) 2026-02-06 19:21:33 +00:00
Netzenbot 3555dcb6d8 Disable Chromium test ViewportIntersection_OutOfView for all params (#33747)
This is an upstream Chromium test
(chrome/browser/performance_manager/frame_node_impl_browsertest.cc) that
checks viewport intersection state immediately after navigation without
waiting for the async viewport intersection update from the renderer. The
/1 parameter variant was already disabled; this extends the filter to
cover /0 as well, matching Chromium's own filter in
ozone-linux.browser_tests_mutter.filter which disables all variants
with a wildcard.

Resolves brave/brave-browser#52605
2026-02-06 14:11:24 -05:00
Netzenbot a801ff6ed6 Disable Chromium test ExtensionBackForwardCacheBrowserTest.ChromeRuntimeConnectUsageInIframeWithoutIframeNavigation (#33748)
This is an upstream Chromium test that intermittently fails when
the RenderFrameHost is destroyed instead of entering BFCache.
The test was already disabled on Linux; this extends the disable
to all platforms after the test also failed on Windows x64 ASAN
nightly (issue brave/brave-browser#52578).

Also removes now-redundant Linux-specific filter entries that are
covered by the platform-agnostic browser_tests.filter.
2026-02-06 14:10:32 -05:00
Jocelyn Liu 450a41df6a [AI Chat] [Conversation API V2] Add WebSourcesContentBlock and parsing functions for server-side search tool results (#33651)
* [AI Chat] [Conversation API V2] Add WebSourcesContentBlock and parsing

Add infrastructure for parsing server-side search tool results:

- Add kBraveNewsSearchToolName and kBraveWebSearchToolName mojom
  constants for server-side tools
- Add WebSourcesContentBlock to ContentBlock union for parsed web
  sources from search tool results
- Add IsBraveSearchTool() utility in utils.h/cc using mojom constants
- Add parsing functions in oai_parsing:
  - ParseToolCallRequest() for tool requests with function
  - ParseToolCallResult() for tool results with output_content
  - ParseContentBlockFromDict() for text and webSources blocks
- Refactor ToolUseEventFromToolCallsResponse to use ParseToolCallRequest
- Add WebSourcesContentBlock serialization in conversation_api_v2_client

* [AI Chat] [Conversation API V2] Add unit tests for parsing functions

Add ParseToolCallRequest, ParseToolCallResult, and ParseContentBlockFromDict
tests to oai_parsing_unittest.cc. Add WebSourcesContentBlock serialization
test to conversation_api_v2_client_unittest.cc.

* Add serialization/deserialization to persist WebSourcesContentBlock in ToolUseEvent
2026-02-06 10:22:47 -08:00
Netzenbot c4510b1541 Update stale filter for BrowserFeaturePromoController2x string substitution tests (#33740)
Upstream Chromium renamed the test class from
BrowserFeaturePromoController2xViewsTest to
BrowserFeaturePromoController2xStringSubstitutionTest, causing the
existing filter entries to stop matching. These tests fail on Windows
due to dead-code elimination stripping IDS_CONCAT_THREE_STRINGS_WITH_COMMA
from the resource bundle in branded builds (crbug.com/434261108).
2026-02-06 13:04:35 -05:00
cdesouza-chromium 164ed33c3d [CodeHealth] Use base::DictValue/base::ListValue - Part XII (#33721)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Issue: https://github.com/brave/brave-browser/issues/52435
2026-02-06 15:03:15 -03:00
dependabot[bot] 04fb225da4 Bump webpack from 5.97.1 to 5.105.0 (#33728)
Bumps [webpack](https://github.com/webpack/webpack) from 5.97.1 to 5.105.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack/compare/v5.97.1...v5.105.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.105.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Update WDP to latest

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 17:54:04 +00:00
Netzenbot 57a66d163f Fix test: AIChatConversationTaskBrowserTest.TaskUI (#33702)
Wait for kPaused state after clicking pause button before sending
tool use event. The race condition occurred because the tool use
event could be processed before the pause click took effect.

Resolves brave/brave-browser#51759.
2026-02-06 11:57:55 -05:00
Netzenbot ee8c328c28 Disable flaky Chromium test StaticRoutingAPISubresourceHistogramTest (#33714)
Disable Chromium test: ChromeServiceWorkerTest.StaticRoutingAPISubresourceHistogramTest

This upstream Chromium test is already disabled on Mac and Linux
(crbug.com/355104619) due to flakiness. It also fails intermittently
on Windows when the histogram
ServiceWorker.RouterEvaluator.SubresourceTotalEvaluationTime is not
recorded because subresource loading timing is non-deterministic.
Brave has no modifications to service worker router evaluator code.

Resolves https://github.com/brave/brave-browser/issues/52472
2026-02-06 11:54:35 -05:00
brave-builds de39cca008 1.89.8 2026-02-06 16:03:16 +00:00
cdesouza-chromium c69126a894 [CodeHealth] Use base::DictValue/base::ListValue - Part X (#33715)
These classes were hoisted and renamed. This has been replaced in
Chromium as well. This is a mechanical change for Brave, done with the
following script.

```
git grep -lw 'Value::List' | xargs sed -i 's/\bValue::List\b/ListValue/g'
git grep -lw 'Value::Dict' | xargs sed -i 's/\bValue::Dict\b/DictValue/g'
git cl format
```

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6bc468d481835992696083e99e556516fb7f5f80

```
commit 6bc468d481835992696083e99e556516fb7f5f80
Author: Avi Drissman <avi@chromium.org>
Date:   Thu Jan 29 22:14:50 2026 -0800

    Remove aliases for base::DictValue and base::ListValue

    This removes a few last stragglers as well.

    Fixed: 478100525
    Cq-Include-Trybots: luci.chromium.try:win-official,mac-official,linux-official,android-official,android-desktop-x64-official
    Change-Id: If92142b8ab0562a82c609b71c6b2a7665cea6ec6
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7513889
    Auto-Submit: Avi Drissman <avi@chromium.org>
    Commit-Queue: Daniel Cheng <dcheng@chromium.org>
    Owners-Override: Daniel Cheng <dcheng@chromium.org>
    Reviewed-by: Daniel Cheng <dcheng@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1577038}
```

Issue: https://github.com/brave/brave-browser/issues/52435
2026-02-06 12:16:42 -03:00
Alex f698e8de7d [VPN] Remove storage of regions in preferences (#33706)
Removing the obsolete code since we don't cache regions in preferences anymore.
2026-02-06 09:02:53 -05:00
Netzenbot f4e17c8d9a Disable Chromium test PrintBrowserTest.NoResizeEvent on Windows (#33710)
This is an upstream Chromium test that verifies no window resize events
fire during print preview. Chromium has also disabled this test on
Linux/Ozone (ozone-linux.browser_tests_mutter.filter). The test is
already disabled on Linux in Brave via PrintBrowserTest.* wildcard.

The test fails intermittently because Brave's additional UI elements
(sidebar, vertical tabs, side panel) can trigger resize events during
print preview initialization. Brave has no modifications to the
printing code itself.

Resolves https://github.com/brave/brave-browser/issues/52475
2026-02-06 08:57:59 -05:00
Netzenbot af073b515c Disable Chromium test PumaBrowserTest.VerifyRcCoarseSystemProfile (#33704)
This test expects CHANNEL_UNKNOWN in test environments but Brave's
channel detection returns CHANNEL_STABLE due to the channel_info_win.cc
override that enables GOOGLE_CHROME_BRANDING behavior for OFFICIAL_BUILD.

The test at puma_browsertest.cc:228-230 asserts:
  EXPECT_EQ(rc_profile.channel(), RcCoarseSystemProfile::CHANNEL_UNKNOWN);

But Brave's channel detection returns 4 (CHANNEL_STABLE) instead of
0 (CHANNEL_UNKNOWN) because the override in chromium_src/chrome/common/
channel_info_win.cc sets GOOGLE_CHROME_BRANDING to 1 for official builds,
which causes install_static::GetChromeChannel() to return a valid channel
rather than UNKNOWN.

This is the same root cause as other channel-detection test failures where
Brave's channel determination differs from Chrome's test environment.

Resolves brave/brave-browser#52477
2026-02-06 07:50:00 -05:00