Files
brave-core/browser/extensions/api/brave_theme_api.cc
T
Simon Hong da6981ee11 Migrated to chromium's browser color scheme handling (#32113)
Resolves brave/brave-browser#40863

With this PR, we use chromium's browser theme instead of ours.
Removed all our dark mode handling code.
Only left dark mode value in local state for migration.

BraveCustomzieColorSchemeModeHandler was introduced to set user's theme choice
to our local state prefs instead of chromium's profile color scheme. Removed.

All our changes to NativeTheme are removed.

Migrated current dark theme mode to per-profile browser color scheme.
ThemeService migrates only once.
After it's migrated, browser will have per-profile theme mode like chromium does.

TEST=BraveThemeServiceTest.BraveDarkModeMigrationTest
2025-11-13 11:39:18 +09:00

53 lines
1.7 KiB
C++

/* Copyright (c) 2019 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "brave/browser/extensions/api/brave_theme_api.h"
#include <optional>
#include "base/notreached.h"
#include "brave/common/extensions/api/brave_theme.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
namespace {
ThemeService::BrowserColorScheme ConvertToBrowserColorScheme(
const std::string scheme) {
if (scheme == "System") {
return ThemeService::BrowserColorScheme::kSystem;
} else if (scheme == "Light") {
return ThemeService::BrowserColorScheme::kLight;
} else if (scheme == "Dark") {
return ThemeService::BrowserColorScheme::kDark;
}
NOTREACHED();
}
} // namespace
namespace extensions::api {
// TODO(https://github.com/brave/brave-browser/issues/50556): Remove this. Only
// Welcome UI uses this api. Welcome UI can use CustomizeColorSchemeModeHandler
// instead.
ExtensionFunction::ResponseAction BraveThemeSetBraveThemeTypeFunction::Run() {
std::optional<brave_theme::SetBraveThemeType::Params> params =
brave_theme::SetBraveThemeType::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
auto* theme_service = ThemeServiceFactory::GetForProfile(
Profile::FromBrowserContext(browser_context()));
CHECK(theme_service);
theme_service->SetBrowserColorScheme(
ConvertToBrowserColorScheme(params->type));
return RespondNow(NoArguments());
}
} // namespace extensions::api