From 504edd531bc974b028a6e180ccbb5719493abaec Mon Sep 17 00:00:00 2001 From: Simon Hong Date: Wed, 6 Oct 2021 10:51:38 +0900 Subject: [PATCH] Load vpn urls from post-purchased app menu fix https://github.com/brave/brave-browser/issues/18573 also some files that are not used by android are moved to mac/win specific source list. --- browser/about_flags.cc | 6 ++--- browser/brave_prefs_browsertest.cc | 4 +-- browser/brave_profile_prefs.cc | 2 +- .../brave_vpn/brave_vpn_service_factory.cc | 2 +- .../ui/brave_browser_command_controller.cc | 2 +- browser/ui/browser_commands.cc | 27 +++++++++++++++++++ browser/ui/browser_commands.h | 1 + components/brave_vpn/BUILD.gn | 14 +++++----- .../brave_vpn/brave_vpn_service_desktop.cc | 20 +------------- components/brave_vpn/brave_vpn_utils.cc | 26 ++++++++++++++++++ components/brave_vpn/brave_vpn_utils.h | 3 +++ 11 files changed, 73 insertions(+), 34 deletions(-) diff --git a/browser/about_flags.cc b/browser/about_flags.cc index 8e86bdc8331..b3bde28a7db 100644 --- a/browser/about_flags.cc +++ b/browser/about_flags.cc @@ -24,7 +24,7 @@ #include "brave/components/speedreader/buildflags.h" #include "net/base/features.h" -#if BUILDFLAG(ENABLE_BRAVE_VPN) +#if BUILDFLAG(ENABLE_BRAVE_VPN) && !defined(OS_ANDROID) #include "brave/components/brave_vpn/features.h" #endif @@ -219,12 +219,12 @@ constexpr char kUseDevUpdaterUrlDescription[] = // file so we turn it off for the macro sections. // clang-format off -#if BUILDFLAG(ENABLE_BRAVE_VPN) +#if BUILDFLAG(ENABLE_BRAVE_VPN) && !defined(OS_ANDROID) #define BRAVE_VPN_FEATURE_ENTRIES \ {kBraveVPNFeatureInternalName, \ flag_descriptions::kBraveVPNName, \ flag_descriptions::kBraveVPNDescription, \ - kOsMac | kOsWin | kOsAndroid, \ + kOsMac | kOsWin, \ FEATURE_VALUE_TYPE(brave_vpn::features::kBraveVPN)}, #else #define BRAVE_VPN_FEATURE_ENTRIES diff --git a/browser/brave_prefs_browsertest.cc b/browser/brave_prefs_browsertest.cc index 989b246e7ce..42aca1fcae8 100644 --- a/browser/brave_prefs_browsertest.cc +++ b/browser/brave_prefs_browsertest.cc @@ -44,7 +44,7 @@ #include "brave/components/brave_wayback_machine/pref_names.h" #endif -#if BUILDFLAG(ENABLE_BRAVE_VPN) +#if BUILDFLAG(ENABLE_BRAVE_VPN) && !defined(OS_ANDROID) #include "brave/components/brave_vpn/pref_names.h" #endif @@ -127,7 +127,7 @@ IN_PROC_BROWSER_TEST_F(BraveProfilePrefsBrowserTest, MiscBravePrefs) { kBraveGCMChannelStatus)); #endif -#if BUILDFLAG(ENABLE_BRAVE_VPN) +#if BUILDFLAG(ENABLE_BRAVE_VPN) && !defined(OS_ANDROID) EXPECT_TRUE(chrome_test_utils::GetProfile(this)->GetPrefs()->GetBoolean( brave_vpn::prefs::kBraveVPNShowButton)); #endif diff --git a/browser/brave_profile_prefs.cc b/browser/brave_profile_prefs.cc index 5771e9bc5c6..84d127945db 100644 --- a/browser/brave_profile_prefs.cc +++ b/browser/brave_profile_prefs.cc @@ -178,7 +178,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { brave_sync::Prefs::RegisterProfilePrefs(registry); -#if BUILDFLAG(ENABLE_BRAVE_VPN) +#if BUILDFLAG(ENABLE_BRAVE_VPN) && !defined(OS_ANDROID) brave_vpn::prefs::RegisterProfilePrefs(registry); #endif diff --git a/browser/brave_vpn/brave_vpn_service_factory.cc b/browser/brave_vpn/brave_vpn_service_factory.cc index 6d307a6c35d..9869b67d7dc 100644 --- a/browser/brave_vpn/brave_vpn_service_factory.cc +++ b/browser/brave_vpn/brave_vpn_service_factory.cc @@ -5,7 +5,6 @@ #include "brave/browser/brave_vpn/brave_vpn_service_factory.h" -#include "brave/components/brave_vpn/brave_vpn_utils.h" #include "chrome/browser/profiles/incognito_helpers.h" #include "chrome/browser/profiles/profile.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" @@ -15,6 +14,7 @@ #if defined(OS_WIN) || defined(OS_MAC) #include "brave/components/brave_vpn/brave_vpn_service_desktop.h" +#include "brave/components/brave_vpn/brave_vpn_utils.h" #endif #if defined(OS_ANDROID) diff --git a/browser/ui/brave_browser_command_controller.cc b/browser/ui/brave_browser_command_controller.cc index 595ff70d355..e5775e77b89 100644 --- a/browser/ui/brave_browser_command_controller.cc +++ b/browser/ui/brave_browser_command_controller.cc @@ -304,7 +304,7 @@ bool BraveBrowserCommandController::ExecuteBraveCommandWithDisposition( case IDC_SEND_BRAVE_VPN_FEEDBACK: case IDC_ABOUT_BRAVE_VPN: case IDC_MANAGE_BRAVE_VPN_PLAN: - NOTIMPLEMENTED(); + brave::OpenBraveVPNUrls(browser_, id); break; default: LOG(WARNING) << "Received Unimplemented Command: " << id; diff --git a/browser/ui/browser_commands.cc b/browser/ui/browser_commands.cc index 90fd1d5e4cc..e6afab8f40d 100644 --- a/browser/ui/browser_commands.cc +++ b/browser/ui/browser_commands.cc @@ -5,7 +5,10 @@ #include "brave/browser/ui/browser_commands.h" +#include + #include "base/files/file_path.h" +#include "brave/app/brave_command_ids.h" #include "brave/common/pref_names.h" #include "brave/components/brave_vpn/buildflags/buildflags.h" #include "brave/components/brave_wallet/common/buildflags/buildflags.h" @@ -18,6 +21,7 @@ #include "chrome/browser/profiles/profile_window.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" +#include "chrome/browser/ui/browser_tabstrip.h" #include "chrome/browser/ui/profile_picker.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/pref_names.h" @@ -41,7 +45,9 @@ #endif #if BUILDFLAG(ENABLE_BRAVE_VPN) +#include "brave/components/brave_vpn/brave_vpn_utils.h" #include "brave/components/brave_vpn/pref_names.h" +#include "brave/components/brave_vpn/url_constants.h" #endif using content::WebContents; @@ -130,6 +136,27 @@ void ToggleBraveVPNButton(Browser* browser) { #endif } +void OpenBraveVPNUrls(Browser* browser, int command_id) { +#if BUILDFLAG(ENABLE_BRAVE_VPN) + std::string target_url; + switch (command_id) { + case IDC_SEND_BRAVE_VPN_FEEDBACK: + target_url = brave_vpn::kFeedbackUrl; + break; + case IDC_ABOUT_BRAVE_VPN: + target_url = brave_vpn::kAboutUrl; + break; + case IDC_MANAGE_BRAVE_VPN_PLAN: + target_url = brave_vpn::GetManageUrl(); + break; + default: + NOTREACHED(); + } + + chrome::AddTabAt(browser, GURL(target_url), -1, true); +#endif +} + void ShowWalletBubble(Browser* browser) { #if BUILDFLAG(BRAVE_WALLET_ENABLED) && defined(TOOLKIT_VIEWS) static_cast(browser->window())->CreateWalletBubble(); diff --git a/browser/ui/browser_commands.h b/browser/ui/browser_commands.h index 83d5930f2c9..3322ed9a140 100644 --- a/browser/ui/browser_commands.h +++ b/browser/ui/browser_commands.h @@ -20,6 +20,7 @@ void CloseWalletBubble(Browser* browser); void MaybeDistillAndShowSpeedreaderBubble(Browser* browser); void ShowBraveVPNBubble(Browser* browser); void ToggleBraveVPNButton(Browser* browser); +void OpenBraveVPNUrls(Browser* browser, int command_id); } // namespace brave diff --git a/components/brave_vpn/BUILD.gn b/components/brave_vpn/BUILD.gn index 1f4eafd5181..533ffb4dcd1 100644 --- a/components/brave_vpn/BUILD.gn +++ b/components/brave_vpn/BUILD.gn @@ -15,19 +15,12 @@ static_library("brave_vpn") { sources = [ "brave_vpn_service.cc", "brave_vpn_service.h", - "brave_vpn_utils.cc", - "brave_vpn_utils.h", - "features.cc", - "features.h", - "pref_names.cc", - "pref_names.h", ] deps = [ "//base", "//brave/components/api_request_helper:api_request_helper", "//components/keyed_service/core", - "//components/prefs", "//services/network/public/cpp", "//third_party/abseil-cpp:absl", "//url", @@ -48,6 +41,12 @@ static_library("brave_vpn") { "brave_vpn_service_desktop.h", "brave_vpn_service_observer.cc", "brave_vpn_service_observer.h", + "brave_vpn_utils.cc", + "brave_vpn_utils.h", + "features.cc", + "features.h", + "pref_names.cc", + "pref_names.h", "switches.h", "url_constants.h", ] @@ -74,6 +73,7 @@ static_library("brave_vpn") { deps += [ ":brave_vpn_internal", ":mojom", + "//components/prefs", "//third_party/icu", ] } diff --git a/components/brave_vpn/brave_vpn_service_desktop.cc b/components/brave_vpn/brave_vpn_service_desktop.cc index e52a2f81b80..407718401ff 100644 --- a/components/brave_vpn/brave_vpn_service_desktop.cc +++ b/components/brave_vpn/brave_vpn_service_desktop.cc @@ -32,24 +32,6 @@ constexpr char kRegionContinentKey[] = "continent"; constexpr char kRegionNameKey[] = "name"; constexpr char kRegionNamePrettyKey[] = "name-pretty"; -std::string GetManageUrl() { - auto* cmd = base::CommandLine::ForCurrentProcess(); - if (!cmd->HasSwitch(brave_vpn::switches::kBraveVPNAccountHost)) - return brave_vpn::kManageUrlProd; - - const std::string value = - cmd->GetSwitchValueASCII(brave_vpn::switches::kBraveVPNAccountHost); - if (value == "prod") - return brave_vpn::kManageUrlProd; - if (value == "staging") - return brave_vpn::kManageUrlStaging; - if (value == "dev") - return brave_vpn::kManageUrlDev; - - NOTREACHED(); - return brave_vpn::kManageUrlProd; -} - bool GetVPNCredentialsFromSwitch(brave_vpn::BraveVPNConnectionInfo* info) { DCHECK(info); auto* cmd = base::CommandLine::ForCurrentProcess(); @@ -477,7 +459,7 @@ void BraveVpnServiceDesktop::GetProductUrls(GetProductUrlsCallback callback) { brave_vpn::mojom::ProductUrls urls; urls.feedback = brave_vpn::kFeedbackUrl; urls.about = brave_vpn::kAboutUrl; - urls.manage = GetManageUrl(); + urls.manage = brave_vpn::GetManageUrl(); std::move(callback).Run(urls.Clone()); } diff --git a/components/brave_vpn/brave_vpn_utils.cc b/components/brave_vpn/brave_vpn_utils.cc index 4af20da1ef2..8106c75dc7c 100644 --- a/components/brave_vpn/brave_vpn_utils.cc +++ b/components/brave_vpn/brave_vpn_utils.cc @@ -5,8 +5,11 @@ #include "brave/components/brave_vpn/brave_vpn_utils.h" +#include "base/command_line.h" #include "base/feature_list.h" #include "brave/components/brave_vpn/features.h" +#include "brave/components/brave_vpn/switches.h" +#include "brave/components/brave_vpn/url_constants.h" namespace brave_vpn { @@ -14,4 +17,27 @@ bool IsBraveVPNEnabled() { return base::FeatureList::IsEnabled(brave_vpn::features::kBraveVPN); } +std::string GetManageUrl() { + auto* cmd = base::CommandLine::ForCurrentProcess(); + if (!cmd->HasSwitch(brave_vpn::switches::kBraveVPNAccountHost)) { +#if defined(OFFICIAL_BUILD) + return brave_vpn::kManageUrlProd; +#else + return brave_vpn::kManageUrlDev; +#endif + } + + const std::string value = + cmd->GetSwitchValueASCII(brave_vpn::switches::kBraveVPNAccountHost); + if (value == "prod") + return brave_vpn::kManageUrlProd; + if (value == "staging") + return brave_vpn::kManageUrlStaging; + if (value == "dev") + return brave_vpn::kManageUrlDev; + + NOTREACHED(); + return brave_vpn::kManageUrlProd; +} + } // namespace brave_vpn diff --git a/components/brave_vpn/brave_vpn_utils.h b/components/brave_vpn/brave_vpn_utils.h index 5d91528bae2..c703a04242f 100644 --- a/components/brave_vpn/brave_vpn_utils.h +++ b/components/brave_vpn/brave_vpn_utils.h @@ -6,9 +6,12 @@ #ifndef BRAVE_COMPONENTS_BRAVE_VPN_BRAVE_VPN_UTILS_H_ #define BRAVE_COMPONENTS_BRAVE_VPN_BRAVE_VPN_UTILS_H_ +#include + namespace brave_vpn { bool IsBraveVPNEnabled(); +std::string GetManageUrl(); } // namespace brave_vpn