Включение темного режима в Chromium с помощью C++C++

Программы на C++. Форум разработчиков
Anonymous
Включение темного режима в Chromium с помощью C++

Сообщение Anonymous »

Я модифицирую браузер Chromium, используя C++. Версия моего Chromium — 126.0.6478.114. Что я конкретно хочу сделать, так это изменить код C++ в нужных местах, чтобы читался файл JSON, в котором есть логический параметр, указывающий, следует ли включать темный режим или нет. Затем логический параметр чтения должен быть установлен соответствующим образом в коде Chromium C++, чтобы этот параметр сохранялся при закрытии и перезапуске браузера.
Я нашел флаг времени выполнения --force -dark-mode, но это переводит браузер в темный режим только при следующем запуске браузера. В исходном коде я нашел функцию bool NativeTheme::IsForcedDarkMode() в файле ui/native_theme/native_theme.cc. Кажется, это считывает параметр темного режима из командной строки:

Код: Выделить всё

bool NativeTheme::IsForcedDarkMode() {
static bool kIsForcedDarkMode =
base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kForceDarkMode);
return kIsForcedDarkMode;
}

Видимо, также нужен флаг --enable-features=WebContentsForceDark, чтобы изменить цвет страниц на темную тему. Я думаю, что соответствующая часть кода C++ - это вот эта

Код: Выделить всё

  bool force_dark_mode_enabled =
base::FeatureList::IsEnabled(blink::features::kForceWebContentsDarkMode)
? true
: pref_defaults.force_dark_mode_enabled;
registry->RegisterBooleanPref(prefs::kWebKitForceDarkModeEnabled,
force_dark_mode_enabled);

в функции void PrefsTabHelper::RegisterProfilePrefs в файле chrome/browser/ui/prefs/prefs_tab_helper.cc
Как я могу изменить базу кода C++ так, чтобы флаги, которые необходимо установить, вместо этого считывались из файла JSON (например). Я предполагаю, что чтение обязательно должно выполняться асинхронно в другом потоке.
По сути, я хочу иметь настройки, такие как файл, где я могу указать, должен ли браузер запускаться в темном режиме или нет. .
Я очень ценю любую помощь, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ium-with-c

Вернуться в «C++»