diff --git a/browser/ui/webui/brave_vpn/vpn_panel_handler.cc b/browser/ui/webui/brave_vpn/vpn_panel_handler.cc index 0ed0e4d63010..7c1fe5a474a4 100644 --- a/browser/ui/webui/brave_vpn/vpn_panel_handler.cc +++ b/browser/ui/webui/brave_vpn/vpn_panel_handler.cc @@ -7,18 +7,26 @@ #include +#include "brave/browser/brave_vpn/brave_vpn_service_factory.h" +#include "brave/components/brave_vpn/brave_vpn_service.h" + VPNPanelHandler::VPNPanelHandler( mojo::PendingReceiver receiver, - ui::MojoBubbleWebUIController* webui_controller) + ui::MojoBubbleWebUIController* webui_controller, + Profile* profile) : receiver_(this, std::move(receiver)), - webui_controller_(webui_controller) {} + webui_controller_(webui_controller), + profile_(profile) {} VPNPanelHandler::~VPNPanelHandler() = default; void VPNPanelHandler::ShowUI() { auto embedder = webui_controller_->embedder(); + BraveVpnService* vpn_service_desktop = + BraveVpnServiceFactory::GetForProfile(profile_); if (embedder) { embedder->ShowUI(); + vpn_service_desktop->OnPanelVisible(); } } diff --git a/browser/ui/webui/brave_vpn/vpn_panel_handler.h b/browser/ui/webui/brave_vpn/vpn_panel_handler.h index 2b6dc95e6b53..d6d1bc7c4a76 100644 --- a/browser/ui/webui/brave_vpn/vpn_panel_handler.h +++ b/browser/ui/webui/brave_vpn/vpn_panel_handler.h @@ -10,6 +10,7 @@ #include #include "brave/components/brave_vpn/brave_vpn.mojom.h" +#include "chrome/browser/profiles/profile.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h" #include "ui/webui/mojo_bubble_web_ui_controller.h" @@ -25,7 +26,8 @@ class VPNPanelHandler : public brave_vpn::mojom::PanelHandler { VPNPanelHandler( mojo::PendingReceiver receiver, - ui::MojoBubbleWebUIController* webui_controller); + ui::MojoBubbleWebUIController* webui_controller, + Profile* profile); VPNPanelHandler(const VPNPanelHandler&) = delete; VPNPanelHandler& operator=(const VPNPanelHandler&) = delete; @@ -38,6 +40,7 @@ class VPNPanelHandler : public brave_vpn::mojom::PanelHandler { private: mojo::Receiver receiver_; ui::MojoBubbleWebUIController* const webui_controller_; + Profile* profile_; }; #endif // BRAVE_BROWSER_UI_WEBUI_BRAVE_VPN_VPN_PANEL_HANDLER_H_ diff --git a/browser/ui/webui/brave_vpn/vpn_panel_ui.cc b/browser/ui/webui/brave_vpn/vpn_panel_ui.cc index 143ce9b78e19..daa927714316 100644 --- a/browser/ui/webui/brave_vpn/vpn_panel_ui.cc +++ b/browser/ui/webui/brave_vpn/vpn_panel_ui.cc @@ -64,8 +64,8 @@ void VPNPanelUI::CreatePanelHandler( auto* profile = Profile::FromWebUI(web_ui()); DCHECK(profile); - panel_handler_ = - std::make_unique(std::move(panel_receiver), this); + panel_handler_ = std::make_unique(std::move(panel_receiver), + this, profile); BraveVpnService* vpn_service_desktop = BraveVpnServiceFactory::GetForProfile(profile); diff --git a/components/brave_vpn/brave_vpn_service.cc b/components/brave_vpn/brave_vpn_service.cc index 3ba9568e7e19..f9068ff61500 100644 --- a/components/brave_vpn/brave_vpn_service.cc +++ b/components/brave_vpn/brave_vpn_service.cc @@ -442,6 +442,11 @@ void BraveVpnService::BindInterface( receivers_.Add(this, std::move(receiver)); } +void BraveVpnService::OnPanelVisible() { + // TODO(bsclifton): clean this up + LoadPurchasedState(); +} + void BraveVpnService::GetConnectionState( GetConnectionStateCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); diff --git a/components/brave_vpn/brave_vpn_service.h b/components/brave_vpn/brave_vpn_service.h index f1e97d6b2ba7..f11f0777f096 100644 --- a/components/brave_vpn/brave_vpn_service.h +++ b/components/brave_vpn/brave_vpn_service.h @@ -90,6 +90,7 @@ class BraveVpnService : void BindInterface( mojo::PendingReceiver receiver); + void OnPanelVisible(); // mojom::vpn::ServiceHandler void GetConnectionState(GetConnectionStateCallback callback) override;