/* Copyright (c) 2021 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/. */ #ifndef BRAVE_BROWSER_PROFILES_BRAVE_RENDERER_UPDATER_H_ #define BRAVE_BROWSER_PROFILES_BRAVE_RENDERER_UPDATER_H_ #include #include "base/memory/raw_ptr.h" #include "brave/common/brave_renderer_configuration.mojom-forward.h" #include "brave/components/brave_wallet/common/buildflags/buildflags.h" #include "brave/components/tor/buildflags/buildflags.h" #include "components/keyed_service/core/keyed_service.h" #include "components/prefs/pref_change_registrar.h" #include "components/prefs/pref_member.h" #include "mojo/public/cpp/bindings/associated_remote.h" class Profile; #if BUILDFLAG(ENABLE_BRAVE_WALLET) namespace brave_wallet { class KeyringService; } #endif // BUILDFLAG(ENABLE_BRAVE_WALLET) namespace content { class RenderProcessHost; } class BraveRendererUpdater : public KeyedService { public: BraveRendererUpdater(Profile* profile, #if BUILDFLAG(ENABLE_BRAVE_WALLET) brave_wallet::KeyringService* keyring_service, #endif PrefService* local_state); BraveRendererUpdater(const BraveRendererUpdater&) = delete; BraveRendererUpdater& operator=(const BraveRendererUpdater&) = delete; ~BraveRendererUpdater() override; // Initialize a newly-started renderer process. void InitializeRenderer(content::RenderProcessHost* render_process_host); private: std::vector> GetRendererConfigurations(); mojo::AssociatedRemote GetRendererConfiguration(content::RenderProcessHost* render_process_host); #if BUILDFLAG(ENABLE_BRAVE_WALLET) // Update renderers if wallet keyring has been initialized void CheckActiveWalletAndMaybeUpdateRenderers(); // Update active wallet bool, returns true if status has changed bool CheckActiveWallet(); #endif // BUILDFLAG(ENABLE_BRAVE_WALLET) // Update all renderers due to a configuration change. void UpdateAllRenderers(); // Update the given renderer due to a configuration change. void UpdateRenderer( mojo::AssociatedRemote* renderer_configuration); raw_ptr profile_ = nullptr; #if BUILDFLAG(ENABLE_BRAVE_WALLET) raw_ptr keyring_service_ = nullptr; #endif raw_ptr local_state_ = nullptr; PrefChangeRegistrar pref_change_registrar_; PrefChangeRegistrar local_state_change_registrar_; // Prefs that we sync to the renderers. #if BUILDFLAG(ENABLE_BRAVE_WALLET) IntegerPrefMember brave_wallet_ethereum_provider_; IntegerPrefMember brave_wallet_solana_provider_; IntegerPrefMember brave_wallet_cardano_provider_; #endif BooleanPrefMember de_amp_enabled_; #if BUILDFLAG(ENABLE_TOR) BooleanPrefMember onion_only_in_tor_windows_; #endif BooleanPrefMember widevine_enabled_; #if BUILDFLAG(ENABLE_BRAVE_WALLET) bool is_wallet_allowed_for_context_ = false; bool is_wallet_created_ = false; #endif }; #endif // BRAVE_BROWSER_PROFILES_BRAVE_RENDERER_UPDATER_H_