diff --git a/patches/build-android-pylib-gtest-gtest_test_instance.py.patch b/patches/build-android-pylib-gtest-gtest_test_instance.py.patch
index 837f551d833..1029dddfd2f 100644
--- a/patches/build-android-pylib-gtest-gtest_test_instance.py.patch
+++ b/patches/build-android-pylib-gtest-gtest_test_instance.py.patch
@@ -1,9 +1,9 @@
diff --git a/build/android/pylib/gtest/gtest_test_instance.py b/build/android/pylib/gtest/gtest_test_instance.py
-index c90ea50f284f243bad6defc31d33f674478f257a..85ec6b75b2ecd240987d87eca372a8c98879dc30 100644
+index 97d323b886662e51a6d30104772ee17aab94a5cd..f82e230e268595536db9ccc9c000b10aa7212c04 100644
--- a/build/android/pylib/gtest/gtest_test_instance.py
+++ b/build/android/pylib/gtest/gtest_test_instance.py
-@@ -706,3 +706,4 @@ class GtestTestInstance(test_instance.TestInstance):
- #override
- def TearDown(self):
- """Do nothing."""
+@@ -721,3 +721,4 @@ class GtestTestInstance(test_instance.TestInstance):
+ if self._deobfuscator:
+ self._deobfuscator.Close()
+ self._deobfuscator = None
+from brave_chromium_utils import inline_chromium_src_override; inline_chromium_src_override(globals(), locals())
diff --git a/patches/chrome-android-java-res-layout-radio_button_group_homepage_preference.xml.patch b/patches/chrome-android-java-res-layout-radio_button_group_homepage_preference.xml.patch
index 2a45d2e7874..4daf77c9bd8 100644
--- a/patches/chrome-android-java-res-layout-radio_button_group_homepage_preference.xml.patch
+++ b/patches/chrome-android-java-res-layout-radio_button_group_homepage_preference.xml.patch
@@ -1,11 +1,11 @@
diff --git a/chrome/android/java/res/layout/radio_button_group_homepage_preference.xml b/chrome/android/java/res/layout/radio_button_group_homepage_preference.xml
-index 39a8f247be532924f560e73133fe217e1f1ce27e..00464dfedbea501f23669ce4f15831297b10e3ef 100644
+index 763a1c681f813a7cd67fe64532f2763d4583f25b..cb84d2b0a88642fb2dc192683a29c70b7267eaaf 100644
--- a/chrome/android/java/res/layout/radio_button_group_homepage_preference.xml
+++ b/chrome/android/java/res/layout/radio_button_group_homepage_preference.xml
-@@ -36,6 +36,7 @@ found in the LICENSE file.
- android:layout_width="match_parent"
+@@ -37,6 +37,7 @@ found in the LICENSE file.
android:layout_height="wrap_content"
- app:primaryText="@string/options_homepage_chrome_homepage" />
+ app:primaryText="@string/options_homepage_chrome_homepage"
+ app:backgroundStyle="none" />
+
RegisterListPref(policy::policy_prefs::kIncognitoModeBlocklist);
+ registry->RegisterListPref(policy::policy_prefs::kIncognitoModeAllowlist);
+ brave::RegisterProfilePrefs(registry);
}
diff --git a/patches/chrome-browser-resources-pdf-manifest.json.patch b/patches/chrome-browser-resources-pdf-manifest.json.patch
index 1a0a1061392..2d5f370a559 100644
--- a/patches/chrome-browser-resources-pdf-manifest.json.patch
+++ b/patches/chrome-browser-resources-pdf-manifest.json.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/pdf/manifest.json b/chrome/browser/resources/pdf/manifest.json
-index 814bec7dfaa7b73377586aec05df7c4707f85513..941a09e2772754502e22fe03a560babf946a40de 100644
+index 04e1e8868ef79c343da291711aab5cfce7aafdd8..598af3db866268c036cfac23c5eced6824ba0f79 100644
--- a/chrome/browser/resources/pdf/manifest.json
+++ b/chrome/browser/resources/pdf/manifest.json
@@ -8,6 +8,7 @@
@@ -14,8 +14,8 @@ index 814bec7dfaa7b73377586aec05df7c4707f85513..941a09e2772754502e22fe03a560babf
"mime_types": [
"application/pdf"
],
-- "content_security_policy": "script-src 'self' 'wasm-eval' blob: filesystem: chrome://resources chrome://webui-test; object-src * blob: externalfile: file: filesystem: data:",
-+ "content_security_policy": "script-src 'self' 'wasm-eval' blob: filesystem: chrome://brave-resources chrome://resources chrome://webui-test; object-src * blob: externalfile: file: filesystem: data:",
+- "content_security_policy": "script-src 'self' blob: filesystem: chrome://resources chrome://webui-test; object-src * blob: externalfile: file: filesystem: data:",
++ "content_security_policy": "script-src 'self' blob: filesystem: chrome://brave-resources chrome://resources chrome://webui-test; object-src * blob: externalfile: file: filesystem: data:",
"mime_types_handler": "index.html",
"web_accessible_resources": [
"pdf_embedder.css"
diff --git a/patches/chrome-browser-resources-settings-clear_browsing_data_dialog-clear_browsing_data_dialog_v2.ts.patch b/patches/chrome-browser-resources-settings-clear_browsing_data_dialog-clear_browsing_data_dialog_v2.ts.patch
index 7b7bfdd5f7d..52b2e0fe23a 100644
--- a/patches/chrome-browser-resources-settings-clear_browsing_data_dialog-clear_browsing_data_dialog_v2.ts.patch
+++ b/patches/chrome-browser-resources-settings-clear_browsing_data_dialog-clear_browsing_data_dialog_v2.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts
-index 8e65f4fbd0b431b8f531e239f5133f49763a6cc5..f32797bc48a8426c7010288c1d47b4e0b0130d60 100644
+index 90cfb385672191664f759a8472495162b6b61f83..ed5a403b1f3fb211f5fa434a7cb27f79bb5298ff 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog_v2.ts
@@ -117,6 +117,7 @@ function getDataTypeLabel(datatypes: BrowsingDataType) {
@@ -7,14 +7,14 @@ index 8e65f4fbd0b431b8f531e239f5133f49763a6cc5..f32797bc48a8426c7010288c1d47b4e0
case BrowsingDataType.HOSTED_APPS_DATA:
return loadTimeData.getString('clearHostedAppData');
+ case BrowsingDataType.BRAVE_AI_CHAT: return loadTimeData.getString('clearBraveAIChat');
+ default:
+ assertNotReachedCase(datatypes);
}
- }
-
-@@ -136,6 +137,7 @@ export function getDataTypePrefName(datatypes: BrowsingDataType) {
+@@ -138,6 +139,7 @@ export function getDataTypePrefName(datatypes: BrowsingDataType) {
return 'browser.clear_data.download_history';
case BrowsingDataType.HOSTED_APPS_DATA:
return 'browser.clear_data.hosted_apps_data';
+ case BrowsingDataType.BRAVE_AI_CHAT: return 'browser.clear_data.brave_leo';
+ default:
+ assertNotReachedCase(datatypes);
}
- }
-
diff --git a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch
index 2c808010bc3..86f373717dd 100644
--- a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch
+++ b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
-index ad81cf875bbbaea556b2c5a0e7dc3af7d27f7377..edb32c6ef9a07f1298c03cf16a30d26b8642410f 100644
+index d7c4d4ca6f950ba64a09e7cd58086205384be934..7b9661a0b71fc56ff451afc8f6c328331e43b4cf 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -34,6 +34,7 @@
@@ -10,7 +10,7 @@ index ad81cf875bbbaea556b2c5a0e7dc3af7d27f7377..edb32c6ef9a07f1298c03cf16a30d26b
@@ -18,8 +18,8 @@ index ad81cf875bbbaea556b2c5a0e7dc3af7d27f7377..edb32c6ef9a07f1298c03cf16a30d26b
+@@ -157,6 +159,7 @@
+
+
diff --git a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.ts.patch b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.ts.patch
index e62ec2a5e4f..5fd108f4671 100644
--- a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.ts.patch
+++ b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.ts.patch
@@ -1,11 +1,11 @@
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
-index b45a26e61192b28cddb4f9a964f9397e6c332809..81075c6b8c5488e72a02e92693155550e32013dd 100644
+index 90c45d13bd12ec54ab90943662af20cf97200d4f..71324bb5aabc63c7bd5d27bfefd6023b69ff0bcc 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
-@@ -24,6 +24,7 @@ import '../settings_shared.css.js';
- import '../site_settings/protected_content_page.js';
- import '../site_settings/settings_category_default_radio_group.js';
- import '../site_settings/smart_card_readers_page.js';
+@@ -16,6 +16,7 @@ import '../icons.html.js';
+ import '../privacy_icons.html.js';
+ import '../settings_page/settings_section.js';
+ import '../settings_shared.css.js';
+import './personalization_options.js';
import './privacy_guide/privacy_guide_dialog.js';
diff --git a/patches/chrome-browser-resources-settings-route.ts.patch b/patches/chrome-browser-resources-settings-route.ts.patch
index bec970e2e1a..e1ac56f5301 100644
--- a/patches/chrome-browser-resources-settings-route.ts.patch
+++ b/patches/chrome-browser-resources-settings-route.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
-index 41b2a7bf2cb7926893f3369eb0c9fc5c092d5807..b7cf2f842ea80c106a7b26cd92c9bc7a26a26078 100644
+index 5fe5f12ab1f15c62c1bad84c8b94f6ff9e1a38e2..95352cde9d3555dda4e0b78d215e663d03935f24 100644
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -9,6 +9,7 @@ import {pageVisibility} from './page_visibility.js';
@@ -10,15 +10,15 @@ index 41b2a7bf2cb7926893f3369eb0c9fc5c092d5807..b7cf2f842ea80c106a7b26cd92c9bc7a
/**
* Add all of the child routes that originate from the privacy route,
* regardless of whether the privacy section under basic or advanced.
-@@ -367,6 +368,7 @@ function createRoutes(): SettingsRoutes {
- r.PERFORMANCE.hasMigratedToPlugin = true;
+@@ -309,6 +310,7 @@ function createRoutes(): SettingsRoutes {
+ loadTimeData.getString('performancePageTitle'));
}
+ addBraveRoutes(r);
return r as unknown as SettingsRoutes;
}
-@@ -400,7 +402,7 @@ export let routes: SettingsRoutes = Router.getInstance().getRoutes();
+@@ -342,7 +344,7 @@ export let routes: SettingsRoutes = Router.getInstance().getRoutes();
// Returns the "effective" route when at chrome://settings/.
export function getTopLevelRoute(): Route {
if (!loadTimeData.getBoolean('isGuest')) {
diff --git a/patches/chrome-browser-signin-signin_promo_util.cc.patch b/patches/chrome-browser-signin-signin_promo_util.cc.patch
index c2eb6bfce2f..5754860d112 100644
--- a/patches/chrome-browser-signin-signin_promo_util.cc.patch
+++ b/patches/chrome-browser-signin-signin_promo_util.cc.patch
@@ -1,12 +1,12 @@
diff --git a/chrome/browser/signin/signin_promo_util.cc b/chrome/browser/signin/signin_promo_util.cc
-index 3ccd46d02de49210f4cdabf24fb4edd60a63017e..b433c61edb7dad65918ede3a2e3060e489da508a 100644
+index d63b9b837fcfe25db97f294b521c1ce0433fa9e4..1d832674f761e5a2da13a37abbbeaf817d30525e 100644
--- a/chrome/browser/signin/signin_promo_util.cc
+++ b/chrome/browser/signin/signin_promo_util.cc
-@@ -120,6 +120,7 @@ bool ShouldShowPromoBasedOnImpressionOrDismissalCount(Profile& profile,
+@@ -122,6 +122,7 @@ bool ShouldShowPromoBasedOnImpressionOrDismissalCount(Profile& profile,
// `ShouldShowAddressSignInPromo` and `ShouldShowPasswordSignInPromo`).
// `profile` is the profile of the tab the promo would be shown on.
bool ShouldShowSignInPromoCommon(Profile& profile, SignInPromoType type) {
+ SHOULD_SHOW_SIGNIN_PROMO_COMMON
- // Don't show the promo if it does not pass the sync base checks.
- if (!signin::ShouldShowSyncPromo(profile)) {
+ if (profile.IsOffTheRecord()) {
return false;
+ }
diff --git a/patches/chrome-browser-ui-android-toolbar-java-res-xml-adaptive_toolbar_preference.xml.patch b/patches/chrome-browser-ui-android-toolbar-java-res-xml-adaptive_toolbar_preference.xml.patch
index 7da2f484634..3d49352ed9b 100644
--- a/patches/chrome-browser-ui-android-toolbar-java-res-xml-adaptive_toolbar_preference.xml.patch
+++ b/patches/chrome-browser-ui-android-toolbar-java-res-xml-adaptive_toolbar_preference.xml.patch
@@ -1,10 +1,10 @@
diff --git a/chrome/browser/ui/android/toolbar/java/res/xml/adaptive_toolbar_preference.xml b/chrome/browser/ui/android/toolbar/java/res/xml/adaptive_toolbar_preference.xml
-index b9f7ada321d81c935787c4db75e5c2addcdbdd52..9417e14b9fa1dbe578f969aa11351fffe22bface 100644
+index 56ed451cbf7e305a1e49adb2d3e284abc0d89480..7383a6deca6679a7e735b4e736de54c1074c321b 100644
--- a/chrome/browser/ui/android/toolbar/java/res/xml/adaptive_toolbar_preference.xml
+++ b/chrome/browser/ui/android/toolbar/java/res/xml/adaptive_toolbar_preference.xml
-@@ -17,7 +17,7 @@ found in the LICENSE file.
- android:key="toolbar_shortcut_switch"
- android:title="@string/toolbar_shortcut" />
+@@ -18,7 +18,7 @@ found in the LICENSE file.
+ android:title="@string/toolbar_shortcut"
+ app:backgroundStyle="card" />
- tab_strip_model()->GetWebContentsAt(selected_index));
+@@ -514,6 +514,7 @@ void ReloadInternal(BrowserWindowInterface* browser,
+ tab_strip_model->GetWebContentsAt(selected_index));
}
}
+ BRAVE_RELOAD_INTERNAL
diff --git a/patches/chrome-browser-ui-views-frame-multi_contents_view.cc.patch b/patches/chrome-browser-ui-views-frame-multi_contents_view.cc.patch
index afbc4b0e79c..816dcf68ae1 100644
--- a/patches/chrome-browser-ui-views-frame-multi_contents_view.cc.patch
+++ b/patches/chrome-browser-ui-views-frame-multi_contents_view.cc.patch
@@ -1,22 +1,22 @@
diff --git a/chrome/browser/ui/views/frame/multi_contents_view.cc b/chrome/browser/ui/views/frame/multi_contents_view.cc
-index 63faa99a5c9ffd6b7eb56e93480878e369cc9e08..da745a87e75081c8fd091ec1fe1072945ba8729e 100644
+index 1cd64709e0c950dd5b0f9f9d75e7a02a4ae9459c..9a96f40d0d4d4fc3b34e61176c5a1887e28f32be 100644
--- a/chrome/browser/ui/views/frame/multi_contents_view.cc
+++ b/chrome/browser/ui/views/frame/multi_contents_view.cc
-@@ -60,7 +60,7 @@ MultiContentsView::MultiContentsView(
- SetProperty(views::kElementIdentifierKey, kMultiContentsViewElementId);
-
+@@ -66,7 +66,7 @@ MultiContentsView::MultiContentsView(
+ AddChildView(std::make_unique(browser_view));
+
contents_container_views_.push_back(
- AddChildView(std::make_unique(browser_view_)));
+ AddChildView(std::make_unique(browser_view_)));
contents_container_views_[0]
->contents_view()
->set_is_primary_web_contents_for_window(true);
-@@ -69,7 +69,7 @@ MultiContentsView::MultiContentsView(
+@@ -75,7 +75,7 @@ MultiContentsView::MultiContentsView(
resize_area_->SetVisible(false);
-
+
contents_container_views_.push_back(
- AddChildView(std::make_unique(browser_view_)));
+ AddChildView(std::make_unique(browser_view_)));
contents_container_views_[1]->SetVisible(false);
-
+
drop_target_view_ =
diff --git a/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch b/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch
index 3f8e1c92b1d..eccd92e9976 100644
--- a/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch
+++ b/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch
@@ -1,9 +1,9 @@
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view.h b/chrome/browser/ui/views/profiles/profile_menu_view.h
-index 4c8c2a1693355c05449c57ac375ad3c204aa601a..3664d34aaee8e812a0767da9bddf3eabfcd1b1dd 100644
+index b56c73e9e934c6d3b702b9d60c207b90b33e9e88..3294758f5a3e2f71ea4ed623b1e7eff62da96a8f 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view.h
+++ b/chrome/browser/ui/views/profiles/profile_menu_view.h
-@@ -66,6 +66,7 @@ class ProfileMenuView : public ProfileMenuViewBase {
- void BuildMenu() override;
+@@ -70,6 +70,7 @@ class ProfileMenuView : public ProfileMenuViewBase {
+ }
private:
+ BRAVE_PROFILE_MENU_VIEW_H
diff --git a/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch b/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch
index d7e889b360f..94be4304c66 100644
--- a/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch
+++ b/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch
@@ -1,11 +1,11 @@
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
-index 0af2d02581c373571a8407c813d1f8716bf6a90f..48104430cfbd9904e9e073a48a20b99a49300d8c 100644
+index e50a46ae878bc5ea8bdef1c1a7764fa1ef65f4c9..1cb3e6cbf952464f0fea5e18e65d3f21d6c07461 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
-@@ -52,7 +52,7 @@ class View;
- // registry's active_entry() then global registry's. These values are reset when
- // the side panel is closed and |last_active_global_entry_id_| is used to
- // determine what entry is seen when the panel is reopened.
+@@ -50,7 +50,7 @@ class View;
+ // Existence and value of registries' active_entry() determines which entry is
+ // visible for a given tab where the order of precedence is contextual
+ // registry's active_entry() then global registry's.
-class SidePanelCoordinator final : public SidePanelUIBase,
+class SidePanelCoordinator : public SidePanelUIBase,
public views::ViewObserver,
diff --git a/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch b/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch
index 59819a7bbab..6fa7b440237 100644
--- a/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch
+++ b/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch
@@ -1,16 +1,16 @@
diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc
-index 582e28a95fcdbc06302a1d969ddd494b04b927b0..0a459086349b3542468ccad550d05c8bc006e4d9 100644
+index 11d7e631b6ef9405488306c713360ecefc2d751f..ca04da884da66e87734ee121e1ea53ce083e81d5 100644
--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc
-@@ -259,6 +259,7 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
- // TODO(crbug.com/430494524): Implement the WebUI
- {ContentSettingsType::GEOLOCATION_WITH_OPTIONS, nullptr},
+@@ -261,6 +261,7 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
{ContentSettingsType::DEVICE_ATTRIBUTES, nullptr},
+ {ContentSettingsType::PERMISSION_ACTIONS_HISTORY, nullptr},
+ {ContentSettingsType::SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, nullptr},
+ BRAVE_CONTENT_SETTINGS_TYPE_GROUP_NAMES_LIST
});
static_assert(
-@@ -533,6 +534,7 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
+@@ -535,6 +536,7 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
}
ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
@@ -18,7 +18,7 @@ index 582e28a95fcdbc06302a1d969ddd494b04b927b0..0a459086349b3542468ccad550d05c8b
for (const auto& entry : kContentSettingsTypeGroupNames) {
// Content setting types that aren't represented in the settings UI
// will have `nullptr` as their `name`. However, converting `nullptr`
-@@ -547,6 +549,7 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
+@@ -549,6 +551,7 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
}
std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) {
@@ -26,7 +26,7 @@ index 582e28a95fcdbc06302a1d969ddd494b04b927b0..0a459086349b3542468ccad550d05c8b
for (const auto& entry : kContentSettingsTypeGroupNames) {
if (type == entry.type) {
// Content setting types that aren't represented in the settings UI
-@@ -719,6 +722,7 @@ std::string SiteSettingSourceToString(const SiteSettingSource source) {
+@@ -721,6 +724,7 @@ std::string SiteSettingSourceToString(const SiteSettingSource source) {
SiteSettingSource ProviderTypeToSiteSettingsSource(
const ProviderType provider_type) {
switch (provider_type) {
@@ -34,7 +34,7 @@ index 582e28a95fcdbc06302a1d969ddd494b04b927b0..0a459086349b3542468ccad550d05c8b
case ProviderType::kWebuiAllowlistProvider:
case ProviderType::kComponentExtensionProvider:
return SiteSettingSource::kAllowlist;
-@@ -746,6 +750,7 @@ SiteSettingSource ProviderTypeToSiteSettingsSource(
+@@ -748,6 +752,7 @@ SiteSettingSource ProviderTypeToSiteSettingsSource(
std::string ProviderToDefaultSettingSourceString(const ProviderType provider) {
switch (provider) {
@@ -42,7 +42,7 @@ index 582e28a95fcdbc06302a1d969ddd494b04b927b0..0a459086349b3542468ccad550d05c8b
case ProviderType::kPolicyProvider:
return "policy";
case ProviderType::kSupervisedProvider:
-@@ -872,6 +877,7 @@ base::Value::Dict GetExceptionForPage(
+@@ -874,6 +879,7 @@ base::Value::Dict GetExceptionForPage(
exception.Set(kSource, SiteSettingSourceToString(source));
exception.Set(kIncognito, incognito);
exception.Set(kIsEmbargoed, is_embargoed);
diff --git a/patches/chrome-installer-mac-signing-pipeline.py.patch b/patches/chrome-installer-mac-signing-pipeline.py.patch
index 1caae41facf..7d2b3041185 100644
--- a/patches/chrome-installer-mac-signing-pipeline.py.patch
+++ b/patches/chrome-installer-mac-signing-pipeline.py.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/installer/mac/signing/pipeline.py b/chrome/installer/mac/signing/pipeline.py
-index ae2a57b11acbaf5077bd09217e20a110fc8a8e75..afd3a4c8d10eee3e432f05825c37b50ecf9e7d33 100644
+index 442930b31ca6d591ce20ffdc2cf99c87d5c771b3..bfc2b75e3e01fe24b08e2ed41e35fe9012ba3e64 100644
--- a/chrome/installer/mac/signing/pipeline.py
+++ b/chrome/installer/mac/signing/pipeline.py
-@@ -738,6 +738,9 @@ async def sign_all(orig_paths,
+@@ -687,6 +687,9 @@ async def sign_all(orig_paths,
_package_and_maybe_notarize_distributions(
config, distributions, notary_paths),
timeout=60 * 60 * 2)
@@ -10,9 +10,9 @@ index ae2a57b11acbaf5077bd09217e20a110fc8a8e75..afd3a4c8d10eee3e432f05825c37b50e
+ # Copy the notarized app to the orig_paths.output dir where the user expects it.
+ commands.copy_files(dest_dir, orig_paths.output)
- _package_installer_tools(orig_paths, config)
-@@ -874,3 +877,5 @@ async def _package_and_maybe_notarize_distributions(config, distributions,
+ async def _sign_and_maybe_notarize_distributions(config, distributions,
+@@ -821,3 +824,5 @@ async def _package_and_maybe_notarize_distributions(config, distributions,
if config.notarize.should_staple():
for path in staple_paths:
notarize.staple(path)
diff --git a/patches/chrome-renderer-BUILD.gn.patch b/patches/chrome-renderer-BUILD.gn.patch
index 0f9eb38dbaa..524f25ad680 100644
--- a/patches/chrome-renderer-BUILD.gn.patch
+++ b/patches/chrome-renderer-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
-index 283e1c70773a3403f8ca94cecda63a7018bdedac..58ebcc1b5ba35d35ecfd3337a47865222c819be0 100644
+index 231c1dd482ea165969b0eeff77897ed4ae80edd4..31a3e7e3ab4c4ca03c2ef18ee562d9c72825b33c 100644
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
-@@ -237,6 +237,7 @@ static_library("renderer") {
- "//v8",
- ]
+@@ -241,6 +241,7 @@ static_library("renderer") {
+ deps += [ "//components/webapps/isolated_web_apps:scheme" ]
+ }
+ import("//brave/renderer/sources.gni") sources += brave_chrome_renderer_sources deps += brave_chrome_renderer_deps public_deps += brave_chrome_renderer_public_deps
data_deps = [ "//tools/v8_context_snapshot" ]
diff --git a/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch b/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch
index 7de182ddcbb..77f6960ee18 100644
--- a/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch
+++ b/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch
@@ -1,12 +1,12 @@
diff --git a/components/content_settings/core/browser/content_settings_default_provider.cc b/components/content_settings/core/browser/content_settings_default_provider.cc
-index 2b4bbab440f91f0b61e50a70b5064fd4db486f6f..7bd4188e24a2368b10773ab04b850d0f9ba60d27 100644
+index 6898bffa23e3a9c0e3f9ed263a84fbc09b15cd97..8dcc4de84889890638389997b96538eeaf72ec97 100644
--- a/components/content_settings/core/browser/content_settings_default_provider.cc
+++ b/components/content_settings/core/browser/content_settings_default_provider.cc
-@@ -399,6 +399,7 @@ void DefaultProvider::DiscardOrMigrateObsoletePreferences() {
+@@ -410,6 +410,7 @@ void DefaultProvider::DiscardOrMigrateObsoletePreferences() {
// TODO(https://crbug.com/367181093): clean this up.
prefs_->ClearPref(kBug364820109AlreadyWorkedAroundPref);
#endif // !BUILDFLAG(IS_IOS)
+BRAVE_DISCARD_OR_MIGRATE_OBSOLETE_PREFERENCES
}
- void DefaultProvider::RecordHistogramMetrics() {
+ void DefaultProvider::MigrateGeolocationDefaultValue() {
diff --git a/patches/components-infobars-core-infobar_delegate.h.patch b/patches/components-infobars-core-infobar_delegate.h.patch
index 832cd53d5f6..68be9150b53 100644
--- a/patches/components-infobars-core-infobar_delegate.h.patch
+++ b/patches/components-infobars-core-infobar_delegate.h.patch
@@ -1,11 +1,11 @@
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h
-index 2798c4f5c6bd9fe518824fc75ef5c2a1579f537a..bfe015940579c966639fec8c692550f04efd8752 100644
+index 20a8371d17c74787a7f1307b76d986ecc35fc092..df77f37857aa5c85cea22230ffaa5e85b3408446 100644
--- a/components/infobars/core/infobar_delegate.h
+++ b/components/infobars/core/infobar_delegate.h
-@@ -193,6 +193,7 @@ class InfoBarDelegate {
- COLLABORATION_GROUP_UPDATE_INFOBAR_DELEGATE = 125,
- COLLABORATION_OUT_OF_DATE_INFOBAR_DELEGATE = 126,
+@@ -195,6 +195,7 @@ class InfoBarDelegate {
PIN_INFOBAR_DELEGATE = 127,
+ SESSION_RESTORE_INFOBAR_DELEGATE = 128,
+ ROLL_BACK_MODE_B_INFOBAR_DELEGATE = 129,
+ BRAVE_INFOBAR_DELEGATE_IDENTIFIERS
};
// LINT.ThenChange(//tools/metrics/histograms/metadata/browser/enums.xml:InfoBarIdentifier)
diff --git a/patches/components-omnibox-browser-BUILD.gn.patch b/patches/components-omnibox-browser-BUILD.gn.patch
index 5042cd844a5..a0a3a15eb14 100644
--- a/patches/components-omnibox-browser-BUILD.gn.patch
+++ b/patches/components-omnibox-browser-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/components/omnibox/browser/BUILD.gn b/components/omnibox/browser/BUILD.gn
-index 7fb1b972c44c880f24e847d64eedbaf05e8eb5d8..283d12552ce96a956ed9cf9909d1816863944258 100644
+index 1813a7b9ed6f8039a7aa959c41a5f0236da98a07..8d92a74dacb6ead21a9341f97ba5cd1f904cacee 100644
--- a/components/omnibox/browser/BUILD.gn
+++ b/components/omnibox/browser/BUILD.gn
@@ -408,6 +408,7 @@ static_library("browser") {
@@ -10,11 +10,11 @@ index 7fb1b972c44c880f24e847d64eedbaf05e8eb5d8..283d12552ce96a956ed9cf9909d18168
configs += [ "//build/config/compiler:wexit_time_destructors" ]
-@@ -1041,6 +1042,7 @@ fuzzer_test("search_suggestion_parser_fuzzer") {
+@@ -1039,6 +1040,7 @@ fuzzer_test("search_suggestion_parser_fuzzer") {
mojom("mojo_bindings") {
sources = [ "omnibox.mojom" ]
+ generate_legacy_js_bindings = true
- if (!is_android && !is_ios) {
- sources += [ "searchbox.mojom" ]
+ webui_module_path = "chrome://resources/mojo/components/omnibox/browser"
+
diff --git a/patches/components-sync-protocol-proto_visitors.h.patch b/patches/components-sync-protocol-proto_visitors.h.patch
index ff406ad0003..f502fb41264 100644
--- a/patches/components-sync-protocol-proto_visitors.h.patch
+++ b/patches/components-sync-protocol-proto_visitors.h.patch
@@ -1,5 +1,5 @@
diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h
-index dde604d78e36d36986dc9e774a8f6dce14b85a45..7a6918dbadcfe8c789b1ea32f22510fbdb698cd9 100644
+index ebb5ce778ae3571aec531c6158ccd47e808e6972..e5c26e27d47461116a9f76606754b4526c36e57e 100644
--- a/components/sync/protocol/proto_visitors.h
+++ b/components/sync/protocol/proto_visitors.h
@@ -641,6 +641,7 @@ VISIT_PROTO_FIELDS(const sync_pb::DeviceInfoSpecifics& proto) {
@@ -11,7 +11,7 @@ index dde604d78e36d36986dc9e774a8f6dce14b85a45..7a6918dbadcfe8c789b1ea32f22510fb
VISIT(invalidation_fields);
VISIT(paask_fields);
@@ -663,6 +664,7 @@ VISIT_PROTO_FIELDS(const sync_pb::FeatureSpecificFields& proto) {
- VISIT(floating_workspace_last_signin_time_windows_epoch_micros);
+ VISIT(auto_sign_out_last_signin_timestamp_windows_epoch_micros);
}
+BRAVE_VISIT_PROTO_FIELDS_BRAVE_SPECIFIC_FIELD
diff --git a/patches/content-browser-devtools-protocol_config.json.patch b/patches/content-browser-devtools-protocol_config.json.patch
index 39125adcd70..f46bdb8d410 100644
--- a/patches/content-browser-devtools-protocol_config.json.patch
+++ b/patches/content-browser-devtools-protocol_config.json.patch
@@ -1,10 +1,10 @@
diff --git a/content/browser/devtools/protocol_config.json b/content/browser/devtools/protocol_config.json
-index 7c240192b2066b03e040e89df5dcc653395dcb3c..3e77d9d3d1ff845491dd690d2c69ab86b2854089 100644
+index 1f74c6b75fab0bdaa67e89f4cc7d4f6046774526..9a856d189bc0e670766fd60290322178c65079a5 100644
--- a/content/browser/devtools/protocol_config.json
+++ b/content/browser/devtools/protocol_config.json
-@@ -130,7 +130,7 @@
- "setCookieControls",
- "getIPProtectionProxyStatus"
+@@ -131,7 +131,7 @@
+ "getIPProtectionProxyStatus",
+ "setIPProtectionProxyBypassEnabled"
],
- "include_events": ["requestWillBeSent", "responseReceived", "loadingFinished", "loadingFailed", "requestIntercepted", "signedExchangeReceived", "requestWillBeSentExtraInfo", "responseReceivedExtraInfo", "responseReceivedEarlyHints", "trustTokenOperationDone", "subresourceWebBundleMetadataReceived", "subresourceWebBundleMetadataError", "subresourceWebBundleInnerResponseParsed", "subresourceWebBundleInnerResponseError", "policyUpdated", "reportingApiReportAdded", "reportingApiReportUpdated", "reportingApiEndpointsChangedForOrigin"],
+ "include_events": ["requestAdblockInfoReceived", "requestWillBeSent", "responseReceived", "loadingFinished", "loadingFailed", "requestIntercepted", "signedExchangeReceived", "requestWillBeSentExtraInfo", "responseReceivedExtraInfo", "responseReceivedEarlyHints", "trustTokenOperationDone", "subresourceWebBundleMetadataReceived", "subresourceWebBundleMetadataError", "subresourceWebBundleInnerResponseParsed", "subresourceWebBundleInnerResponseError", "policyUpdated", "reportingApiReportAdded", "reportingApiReportUpdated", "reportingApiEndpointsChangedForOrigin"],
diff --git a/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch b/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch
index 68b8f7153ec..c658cf78ce6 100644
--- a/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch
+++ b/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch
@@ -1,19 +1,19 @@
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
-index 307d4ddd0e384fc0fc1e609eb7f23799c83ccd9f..fef38e7ad5f1f4f450786409be25a0e0340201fe 100644
+index 84d6fad79064a3e8892037a62688a918c78582e7..0f4d307e14234fd36d82485e90ba0b4c2b12b54f 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
-@@ -696,6 +696,7 @@ void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
- prefs::kNTPHomeCustomizationNewBadgeImpressionCount, 0);
+@@ -673,6 +673,7 @@ void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
- registry->RegisterBooleanPref(prefs::kWidgetsForMultiProfile, false);
+ // Deprecated 09/2025.
+ registry->RegisterBooleanPref(prefs::kBottomOmnibox, false);
+ BRAVE_REGISTER_LOCAL_STATE_PREFS
}
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
-@@ -1148,6 +1149,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
- registry->RegisterBooleanPref(kParcelTrackingDisabled, false);
- registry->RegisterBooleanPref(
- kHomeCustomizationMagicStackParcelTrackingEnabled, false);
+@@ -1106,6 +1107,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+ registry->RegisterInt64Pref(kNtpShownBookmarksFolder, 0);
+ registry->RegisterStringPref(kGaiaCookieLastListAccountsData, std::string());
+ registry->RegisterStringPref(kFRESourceTrial, std::string());
+ BRAVE_REGISTER_BROWSER_STATE_PREFS
}
diff --git a/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch b/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch
index ddf6b7f31e1..ddcc2ae0f66 100644
--- a/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch
+++ b/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch
@@ -1,13 +1,13 @@
diff --git a/ios/chrome/browser/sync/model/sync_service_factory.mm b/ios/chrome/browser/sync/model/sync_service_factory.mm
-index 9c95b06d0a4b6f2e7e1a83dd26bb3bb3ab610819..0ad8963b21d94ee6f951208ca0ff2481c35417d5 100644
+index fc65042c0c6b6fb9391772c76dc73844cbab6904..eb8da75841725399a96669ba5c002462ef51293c 100644
--- a/ios/chrome/browser/sync/model/sync_service_factory.mm
+++ b/ios/chrome/browser/sync/model/sync_service_factory.mm
-@@ -211,7 +211,7 @@ std::unique_ptr BuildSyncService(web::BrowserState* context) {
- init_params.debug_identifier = profile->GetProfileName();
-
+@@ -197,7 +197,7 @@ std::unique_ptr BuildSyncService(ProfileIOS* profile) {
+ init_params.os_crypt_async = GetApplicationContext()->GetOSCryptAsync();
+ }
auto sync_service =
- std::make_unique(std::move(init_params));
+ BRAVE_BUILD_SERVICE_INSTANCE_FOR
sync_service->Initialize(CreateControllers(profile, sync_service.get()));
- // TODO(crbug.com/40250371): Remove the workaround below once
+ password_manager::PasswordReceiverService* password_receiver_service =
diff --git a/patches/net-dns-host_resolver_manager_job.cc.patch b/patches/net-dns-host_resolver_manager_job.cc.patch
index 8d78678206d..6a847367878 100644
--- a/patches/net-dns-host_resolver_manager_job.cc.patch
+++ b/patches/net-dns-host_resolver_manager_job.cc.patch
@@ -1,12 +1,12 @@
diff --git a/net/dns/host_resolver_manager_job.cc b/net/dns/host_resolver_manager_job.cc
-index 49c5081a884ca943e32a478fc8acc7e5e637e67c..3d06a413f0f550c5c9c6c8bd7c9347584f8fd026 100644
+index 06fd2075938073335395518bf0c76985f8d6b4cd..7b311f25e3927b007c89f256cc8fc80c403ad5b8 100644
--- a/net/dns/host_resolver_manager_job.cc
+++ b/net/dns/host_resolver_manager_job.cc
-@@ -1084,6 +1084,7 @@ void HostResolverManager::Job::CompleteRequests(
+@@ -1096,6 +1096,7 @@ void HostResolverManager::Job::CompleteRequests(
}
RecordJobHistograms(results, task_type);
+ BRAVE_RECORD_DNS_COUNTS
-
- // Complete all of the requests that were attached to the job and
- // detach them.
+ if (results.error() == OK && had_non_speculative_request_ &&
+ key_.source == HostResolverSource::ANY) {
+ RecordJobHttpsHistograms();
diff --git a/patches/third_party-rust-serde-v1-BUILD.gn.patch b/patches/third_party-rust-serde-v1-BUILD.gn.patch
index 679e646a36b..358013ee521 100644
--- a/patches/third_party-rust-serde-v1-BUILD.gn.patch
+++ b/patches/third_party-rust-serde-v1-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/rust/serde/v1/BUILD.gn b/third_party/rust/serde/v1/BUILD.gn
-index 930cd001640c11192e86542487a7ea253bded82e..17865d28b58cb0a926aa24dd96ef8c61b850bb43 100644
+index 901adcc5d31bd511dc0db8eeaf8f536f9c973d34..79e7ce2e8f6fe849928ec090c6b561ec7c5de324 100644
--- a/third_party/rust/serde/v1/BUILD.gn
+++ b/third_party/rust/serde/v1/BUILD.gn
-@@ -55,7 +55,7 @@ cargo_crate("lib") {
+@@ -44,7 +44,7 @@ cargo_crate("lib") {
"serde_derive",
"std",
]
@@ -10,4 +10,4 @@ index 930cd001640c11192e86542487a7ea253bded82e..17865d28b58cb0a926aa24dd96ef8c61
+ features += [ "alloc", "rc" ]
build_sources =
[ "//third_party/rust/chromium_crates_io/vendor/serde-v1/build.rs" ]
-
+ build_script_outputs = [ "private.rs" ]
diff --git a/patches/third_party/search_engines_data/resources/definitions-prepopulated_engines.json.patch b/patches/third_party/search_engines_data/resources/definitions-prepopulated_engines.json.patch
index e2e1610cc14..77e768680a5 100644
--- a/patches/third_party/search_engines_data/resources/definitions-prepopulated_engines.json.patch
+++ b/patches/third_party/search_engines_data/resources/definitions-prepopulated_engines.json.patch
@@ -1,8 +1,8 @@
diff --git a/definitions/prepopulated_engines.json b/definitions/prepopulated_engines.json
-index c7a8cb293345ab6161323f5e822e923ef2a31849..4e49a5342af7c78b963e94089167af5040427e72 100644
+index 5c4f4d27ea15ea2037b2cf2930a3de101194c80e..1e0bcfb4ab935c8bffdaf85aef7e2bcaf2ca8858 100644
--- a/definitions/prepopulated_engines.json
+++ b/definitions/prepopulated_engines.json
-@@ -115,24 +115,6 @@
+@@ -117,25 +117,6 @@
"id": 68
},
@@ -11,6 +11,7 @@ index c7a8cb293345ab6161323f5e822e923ef2a31849..4e49a5342af7c78b963e94089167af50
- "keyword": "duckduckgo.com",
- "favicon_url": "https://duckduckgo.com/favicon.ico",
- "base_builtin_resource_id": "SEARCH_ENGINE_DUCKDUCKGO",
+- "logo_url": "https://staticcdn.duckduckgo.com/serp-fe/www/logos/dynamic/DuckDuckGoLogo.png",
- "search_url": "https://duckduckgo.com/?q={searchTerms}",
- "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list",
- "new_tab_url": "https://duckduckgo.com/chrome_newtab",
@@ -27,7 +28,7 @@ index c7a8cb293345ab6161323f5e822e923ef2a31849..4e49a5342af7c78b963e94089167af50
"ecosia": {
"name": "Ecosia",
"keyword": "ecosia.org",
-@@ -348,30 +330,6 @@
+@@ -351,30 +332,6 @@
"id": 108
},
diff --git a/patches/ui-native_theme-native_theme_win.cc.patch b/patches/ui-native_theme-native_theme_win.cc.patch
index 87794e95646..80d38ce639c 100644
--- a/patches/ui-native_theme-native_theme_win.cc.patch
+++ b/patches/ui-native_theme-native_theme_win.cc.patch
@@ -1,12 +1,12 @@
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc
-index 0ca923fb1b402ce7a5b112600b86e79b02d96168..ffaf11a489e2449192eb4ff6c2316fde979fde9b 100644
+index 7468404c730c68bc8ba7565bf613aa69f13e3095..544b547ef365ad2eb8dc8c40e943bbaa3ad696ba 100644
--- a/ui/native_theme/native_theme_win.cc
+++ b/ui/native_theme/native_theme_win.cc
-@@ -1671,6 +1671,7 @@ void NativeThemeWin::UpdateDarkModeStatus() {
+@@ -1669,6 +1669,7 @@ void NativeThemeWin::UpdateDarkModeStatus() {
&apps_use_light_theme);
- dark_mode_enabled = (apps_use_light_theme == 0);
+ in_dark_mode_ = (apps_use_light_theme == 0);
}
+ BRAVE_NATIVETHEMEWIN_UPDATEDARKMODESTATUS
- set_use_dark_colors(dark_mode_enabled);
set_preferred_color_scheme(CalculatePreferredColorScheme());
CloseHandlesInternal();
+ NotifyOnNativeThemeUpdated();
diff --git a/patches/ui-native_theme-native_theme_win.h.patch b/patches/ui-native_theme-native_theme_win.h.patch
index 65fd7418f2a..87d7689642f 100644
--- a/patches/ui-native_theme-native_theme_win.h.patch
+++ b/patches/ui-native_theme-native_theme_win.h.patch
@@ -1,12 +1,12 @@
diff --git a/ui/native_theme/native_theme_win.h b/ui/native_theme/native_theme_win.h
-index b080dfe519d00770ae6f6be93d06b1817f93ae0a..612a6bbdb8ad47955ef6714b84603cf5c1b08db4 100644
+index f65cbaf56c29c1348ff8df457c92399c246b01bf..5baefa1621653cf4152dab2eb6cf2a6275a96d66 100644
--- a/ui/native_theme/native_theme_win.h
+++ b/ui/native_theme/native_theme_win.h
-@@ -86,6 +86,7 @@ class COMPONENT_EXPORT(NATIVE_THEME) NativeThemeWin : public NativeTheme {
-
- PreferredContrast CalculatePreferredContrast() const override;
+@@ -27,6 +27,7 @@ class COMPONENT_EXPORT(NATIVE_THEME) NativeThemeWin : public NativeTheme {
+ State state,
+ const ExtraParams& extra_params) const override;
+ BRAVE_UI_NATIVE_THEME_NATIVE_THEME_WIN_H_
protected:
- friend class NativeTheme;
- friend class base::NoDestructor;
+ NativeThemeWin();
+ ~NativeThemeWin() override;