diff --git a/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java b/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java index 5452b518d90..fc075cbf79d 100644 --- a/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java +++ b/android/java/org/chromium/chrome/browser/vpn/BraveVpnNativeWorker.java @@ -127,8 +127,9 @@ public class BraveVpnNativeWorker { BraveVpnNativeWorkerJni.get().getTimezonesForRegions(mNativeBraveVpnNativeWorker); } - public void getHostnamesForRegion(String region) { - BraveVpnNativeWorkerJni.get().getHostnamesForRegion(mNativeBraveVpnNativeWorker, region); + public void getHostnamesForRegion(String region, String regionPrecision) { + BraveVpnNativeWorkerJni.get() + .getHostnamesForRegion(mNativeBraveVpnNativeWorker, region, regionPrecision); } public void getWireguardProfileCredentials( @@ -191,7 +192,8 @@ public class BraveVpnNativeWorker { void getTimezonesForRegions(long nativeBraveVpnNativeWorker); - void getHostnamesForRegion(long nativeBraveVpnNativeWorker, String region); + void getHostnamesForRegion( + long nativeBraveVpnNativeWorker, String region, String regionPrecision); void getWireguardProfileCredentials( long nativeBraveVpnNativeWorker, diff --git a/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java b/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java index d614ec1415c..5587a8d9d7f 100644 --- a/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/activities/BraveVpnParentActivity.java @@ -185,7 +185,6 @@ public abstract class BraveVpnParentActivity @Override public void onGetHostnamesForRegion(String jsonHostNames, boolean isSuccess) { - Log.e("brave_vpn", "jsonHostNames : " + jsonHostNames); KeyPair keyPair = new KeyPair(); mBraveVpnPrefModel.setClientPrivateKey(keyPair.getPrivateKey().toBase64()); mBraveVpnPrefModel.setClientPublicKey(keyPair.getPublicKey().toBase64()); diff --git a/android/java/org/chromium/chrome/browser/vpn/activities/VpnPaywallActivity.java b/android/java/org/chromium/chrome/browser/vpn/activities/VpnPaywallActivity.java index ede81a54255..f05d26f7726 100644 --- a/android/java/org/chromium/chrome/browser/vpn/activities/VpnPaywallActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/activities/VpnPaywallActivity.java @@ -60,6 +60,12 @@ public class VpnPaywallActivity extends BraveVpnParentActivity { private SelectedPlanType mSelectedPlanType = SelectedPlanType.YEARLY; private ProductDetails mProductDetails; + @Override + public void onResumeWithNative() { + super.onResumeWithNative(); + BraveVpnUtils.dismissProgressDialog(); + } + private void initializeViews() { setContentView(R.layout.activity_vpn_paywall); diff --git a/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerActivity.java b/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerActivity.java index 93a50ee346d..24475c4fc40 100644 --- a/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerActivity.java @@ -17,6 +17,7 @@ import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import org.chromium.brave_vpn.mojom.BraveVpnConstants; import org.chromium.brave_vpn.mojom.Region; import org.chromium.chrome.R; import org.chromium.chrome.browser.vpn.adapters.VpnServerAdapter; @@ -37,7 +38,7 @@ public class VpnServerActivity extends BraveVpnParentActivity { private RecyclerView mServerRegionList; public interface OnCitySelection { - void onCityClick(Region city); + void onCityClick(Region city, int position); } private void initializeViews() { @@ -99,11 +100,12 @@ public class VpnServerActivity extends BraveVpnParentActivity { mVpnServerAdapter = new VpnServerAdapter(VpnServerActivity.this); mVpnServerAdapter.setCities(cities); + mVpnServerAdapter.setRegion(region); mVpnServerAdapter.setOnCitySelection( new OnCitySelection() { @Override - public void onCityClick(Region city) { - if (BraveVpnPrefUtils.getServerRegion().equals(city.name)) { + public void onCityClick(Region city, int position) { + if (BraveVpnPrefUtils.getRegionName().equals(city.name)) { Toast.makeText( VpnServerActivity.this, R.string.already_selected_the_server, @@ -115,7 +117,11 @@ public class VpnServerActivity extends BraveVpnParentActivity { region.countryIsoCode, region.name, region.namePretty, - city.namePretty); + city.name, + city.namePretty, + position == 0 + ? BraveVpnConstants.REGION_PRECISION_COUNTRY + : BraveVpnConstants.REGION_PRECISION_CITY); changeServerRegion(); } } diff --git a/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerSelectionActivity.java b/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerSelectionActivity.java index 931398178b4..2af8e124ec0 100644 --- a/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerSelectionActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/activities/VpnServerSelectionActivity.java @@ -25,6 +25,7 @@ import org.chromium.brave_vpn.mojom.ServiceHandler; import org.chromium.chrome.R; import org.chromium.chrome.browser.vpn.BraveVpnServiceFactoryAndroid; import org.chromium.chrome.browser.vpn.adapters.BraveVpnServerSelectionAdapter; +import org.chromium.chrome.browser.vpn.models.BraveVpnServerRegion; import org.chromium.chrome.browser.vpn.utils.BraveVpnPrefUtils; import org.chromium.chrome.browser.vpn.utils.BraveVpnUtils; import org.chromium.mojo.bindings.ConnectionErrorHandler; @@ -89,14 +90,21 @@ public class VpnServerSelectionActivity extends BraveVpnParentActivity MaterialSwitch automaticSwitch = (MaterialSwitch) findViewById(R.id.automatic_server_switch); boolean isAutomatic = - BraveVpnPrefUtils.getServerRegion() + BraveVpnPrefUtils.getRegionName() .equals(BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC); mServerRegionList.setVisibility(isAutomatic ? View.GONE : View.VISIBLE); automaticSwitch.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { - BraveVpnUtils.selectedServerRegion = null; + BraveVpnUtils.selectedServerRegion = + new BraveVpnServerRegion( + "", + BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC, + "", + "", + BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC, + BraveVpnConstants.REGION_PRECISION_COUNTRY); changeServerRegion(); } }); diff --git a/android/java/org/chromium/chrome/browser/vpn/adapters/BraveVpnServerSelectionAdapter.java b/android/java/org/chromium/chrome/browser/vpn/adapters/BraveVpnServerSelectionAdapter.java index 72b671bbb6b..c5b6f54ab46 100644 --- a/android/java/org/chromium/chrome/browser/vpn/adapters/BraveVpnServerSelectionAdapter.java +++ b/android/java/org/chromium/chrome/browser/vpn/adapters/BraveVpnServerSelectionAdapter.java @@ -63,7 +63,7 @@ public class BraveVpnServerSelectionAdapter R.plurals.server_text, region.serverCount, region.serverCount); holder.cityServerText.setText(cityText.concat(serverText)); holder.serverRadioButton.setChecked( - BraveVpnPrefUtils.getServerRegion().equals(region.name)); + BraveVpnPrefUtils.getRegionName().equals(region.name)); holder.serverSelectionItemLayout.setOnClickListener( new View.OnClickListener() { @Override diff --git a/android/java/org/chromium/chrome/browser/vpn/adapters/VpnServerAdapter.java b/android/java/org/chromium/chrome/browser/vpn/adapters/VpnServerAdapter.java index c1eeebc69b1..c5ca603b08f 100644 --- a/android/java/org/chromium/chrome/browser/vpn/adapters/VpnServerAdapter.java +++ b/android/java/org/chromium/chrome/browser/vpn/adapters/VpnServerAdapter.java @@ -17,7 +17,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.radiobutton.MaterialRadioButton; -import org.chromium.base.Log; import org.chromium.brave_vpn.mojom.Region; import org.chromium.chrome.R; import org.chromium.chrome.browser.vpn.activities.VpnServerActivity.OnCitySelection; @@ -30,6 +29,7 @@ public class VpnServerAdapter extends RecyclerView.Adapter mCities = new ArrayList<>(); private OnCitySelection mOnCitySelection; + private Region mRegion; public VpnServerAdapter(Context context) { this.mContext = context; @@ -53,14 +53,15 @@ public class VpnServerAdapter extends RecyclerView.Adapter cities) { this.mCities = cities; } diff --git a/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnServerRegion.java b/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnServerRegion.java index a927cbb9740..d86f13321cc 100644 --- a/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnServerRegion.java +++ b/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnServerRegion.java @@ -11,17 +11,23 @@ public class BraveVpnServerRegion { private String mCountryIsoCode; private String mRegionName; private String mRegionNamePretty; + private String mRegionCityName; private String mRegionCityNamePretty; + private String mRegionPrecision; public BraveVpnServerRegion( String countryIsoCode, String regionName, String regionNamePretty, - String regionCityNamePretty) { + String regionCityName, + String regionCityNamePretty, + String regionPrecision) { this.mCountryIsoCode = countryIsoCode; this.mRegionName = regionName; this.mRegionNamePretty = regionNamePretty; + this.mRegionCityName = regionCityName; this.mRegionCityNamePretty = regionCityNamePretty; + this.mRegionPrecision = regionPrecision; } public String getCountryIsoCode() { @@ -36,10 +42,18 @@ public class BraveVpnServerRegion { return mRegionNamePretty; } + public String getRegionCityName() { + return mRegionCityName; + } + public String getRegionCityNamePretty() { return mRegionCityNamePretty; } + public String getRegionPrecision() { + return mRegionPrecision; + } + @NonNull @Override public String toString() { @@ -53,9 +67,16 @@ public class BraveVpnServerRegion { + ", mRegionNamePretty='" + mRegionNamePretty + '\'' + + ", mRegionCityName='" + + mRegionCityName + + '\'' + ", mRegionCityNamePretty='" + mRegionCityNamePretty + '\'' + + '\'' + + ", mRegionPrecision='" + + mRegionPrecision + + '\'' + '}'; } } diff --git a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java index 7b5aa35a312..c27f1d6c9c7 100644 --- a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java +++ b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnApiResponseUtils.java @@ -15,6 +15,7 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import org.chromium.base.Log; +import org.chromium.brave_vpn.mojom.BraveVpnConstants; import org.chromium.chrome.R; import org.chromium.chrome.browser.billing.InAppPurchaseWrapper; import org.chromium.chrome.browser.billing.PurchaseModel; @@ -75,10 +76,6 @@ public class BraveVpnApiResponseUtils { TimeZone.getDefault().getID())); return; } - Log.e( - "brave_vpn", - "BraveVpnUtils.selectedServerRegion : " - + BraveVpnUtils.selectedServerRegion.toString()); if (BraveVpnUtils.selectedServerRegion != null) { if (!BraveVpnUtils.selectedServerRegion .getRegionName() @@ -86,9 +83,9 @@ public class BraveVpnApiResponseUtils { region = BraveVpnUtils.selectedServerRegion.getRegionName(); braveVpnServerRegion = BraveVpnUtils.selectedServerRegion; } - BraveVpnUtils.selectedServerRegion = null; + // BraveVpnUtils.selectedServerRegion = null; } else { - String serverRegion = BraveVpnPrefUtils.getServerRegion(); + String serverRegion = BraveVpnPrefUtils.getRegionName(); region = serverRegion.equals(BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC) ? region @@ -96,7 +93,18 @@ public class BraveVpnApiResponseUtils { } Log.e("brave_vpn", "handleOnGetTimezonesForRegions : region :" + region); - BraveVpnNativeWorker.getInstance().getHostnamesForRegion(region); + Log.e( + "brave_vpn", + "handleOnGetTimezonesForRegions : braveVpnServerRegion.getRegionPrecision() :" + + braveVpnServerRegion.getRegionPrecision()); + region = + (braveVpnServerRegion + .getRegionPrecision() + .equals(BraveVpnConstants.REGION_PRECISION_CITY) + ? braveVpnServerRegion.getRegionCityName() + : region); + BraveVpnNativeWorker.getInstance() + .getHostnamesForRegion(region, braveVpnServerRegion.getRegionPrecision()); braveVpnPrefModel.setServerRegion(braveVpnServerRegion); } else { BraveVpnUtils.showToast( diff --git a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnPrefUtils.java b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnPrefUtils.java index 74a05ab4eb7..c905e6daefa 100644 --- a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnPrefUtils.java +++ b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnPrefUtils.java @@ -32,7 +32,9 @@ public class BraveVpnPrefUtils { private static final String PREF_BRAVE_VPN_SERVER_CHANGE_LOCATION = "server_change_location"; private static final String PREF_BRAVE_VPN_SERVER_ISO_CODE = "server_iso_code"; private static final String PREF_BRAVE_VPN_SERVER_NAME_PRETTY = "server_name_pretty"; + private static final String PREF_BRAVE_VPN_SERVER_CITY_NAME = "server_city_name"; private static final String PREF_BRAVE_VPN_SERVER_CITY_NAME_PRETTY = "server_city_name_pretty"; + private static final String PREF_BRAVE_VPN_SERVER_PRECISION = "server_precision"; private static final String PREF_BRAVE_VPN_RESET_CONFIGURATION = "brave_vpn_reset_configuration"; @@ -155,7 +157,7 @@ public class BraveVpnPrefUtils { return ChromeSharedPreferences.getInstance().readLong(PREF_BRAVE_VPN_PURCHASE_EXPIRY, 0); } - public static String getServerRegion() { + public static String getRegionName() { return ChromeSharedPreferences.getInstance() .readString(PREF_BRAVE_VPN_SERVER_CHANGE_LOCATION, PREF_BRAVE_VPN_AUTOMATIC); } @@ -186,6 +188,16 @@ public class BraveVpnPrefUtils { .writeString(PREF_BRAVE_VPN_SERVER_NAME_PRETTY, newValue); } + public static String getRegionCityName() { + return ChromeSharedPreferences.getInstance() + .readString(PREF_BRAVE_VPN_SERVER_CITY_NAME, ""); + } + + public static void setRegionCityName(String newValue) { + ChromeSharedPreferences.getInstance() + .writeString(PREF_BRAVE_VPN_SERVER_CITY_NAME, newValue); + } + public static String getRegionCityNamePretty() { return ChromeSharedPreferences.getInstance() .readString(PREF_BRAVE_VPN_SERVER_CITY_NAME_PRETTY, ""); @@ -196,6 +208,16 @@ public class BraveVpnPrefUtils { .writeString(PREF_BRAVE_VPN_SERVER_CITY_NAME_PRETTY, newValue); } + public static String getRegionPrecision() { + return ChromeSharedPreferences.getInstance() + .readString(PREF_BRAVE_VPN_SERVER_PRECISION, ""); + } + + public static void setRegionPrecision(String newValue) { + ChromeSharedPreferences.getInstance() + .writeString(PREF_BRAVE_VPN_SERVER_PRECISION, newValue); + } + public static void setApiAuthToken(String value) { ChromeSharedPreferences.getInstance().writeString(PREF_BRAVE_VPN_API_AUTH_TOKEN, value); } @@ -254,7 +276,9 @@ public class BraveVpnPrefUtils { setRegionIsoCode(braveVpnPrefModel.getServerRegion().getCountryIsoCode()); setRegionName(braveVpnPrefModel.getServerRegion().getRegionName()); setRegionNamePretty(braveVpnPrefModel.getServerRegion().getRegionNamePretty()); + setRegionCityName(braveVpnPrefModel.getServerRegion().getRegionCityName()); setRegionCityNamePretty(braveVpnPrefModel.getServerRegion().getRegionCityNamePretty()); + setRegionPrecision(braveVpnPrefModel.getServerRegion().getRegionPrecision()); setPurchaseToken(braveVpnPrefModel.getPurchaseToken()); setProductId(braveVpnPrefModel.getProductId()); setSubscriberCredential(braveVpnPrefModel.getSubscriberCredential()); diff --git a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java index 38bc202e6f9..54c99e202ef 100644 --- a/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java +++ b/android/java/org/chromium/chrome/browser/vpn/utils/BraveVpnUtils.java @@ -24,6 +24,7 @@ import org.json.JSONObject; import org.chromium.base.ContextUtils; import org.chromium.base.Log; +import org.chromium.brave_vpn.mojom.BraveVpnConstants; import org.chromium.brave_vpn.mojom.Region; import org.chromium.chrome.browser.BraveRewardsNativeWorker; import org.chromium.chrome.browser.vpn.BraveVpnNativeWorker; @@ -161,7 +162,9 @@ public class BraveVpnUtils { region.getString("country-iso-code"), region.getString("name"), region.getString("name-pretty"), - BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC); + "", + BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC, + BraveVpnConstants.REGION_PRECISION_COUNTRY); return braveVpnServerRegion; } } @@ -261,7 +264,9 @@ public class BraveVpnUtils { server.getString("country-iso-code"), server.getString("name"), server.getString("name-pretty"), - BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC); + "", + BraveVpnPrefUtils.PREF_BRAVE_VPN_AUTOMATIC, + BraveVpnConstants.REGION_PRECISION_COUNTRY); vpnServerRegions.add(vpnServerRegion); } } catch (JSONException e) { diff --git a/browser/brave_vpn/android/brave_vpn_native_worker.cc b/browser/brave_vpn/android/brave_vpn_native_worker.cc index 7ab13296c51..15ab266fc05 100644 --- a/browser/brave_vpn/android/brave_vpn_native_worker.cc +++ b/browser/brave_vpn/android/brave_vpn_native_worker.cc @@ -67,13 +67,15 @@ void BraveVpnNativeWorker::OnGetTimezonesForRegions( void BraveVpnNativeWorker::GetHostnamesForRegion( JNIEnv* env, - const base::android::JavaParamRef& region) { + const base::android::JavaParamRef& region, + const base::android::JavaParamRef& region_precision) { BraveVpnService* brave_vpn_service = GetBraveVpnService(); if (brave_vpn_service) { brave_vpn_service->GetHostnamesForRegion( base::BindOnce(&BraveVpnNativeWorker::OnGetHostnamesForRegion, weak_factory_.GetWeakPtr()), - base::android::ConvertJavaStringToUTF8(env, region)); + base::android::ConvertJavaStringToUTF8(env, region), + base::android::ConvertJavaStringToUTF8(env, region_precision)); } } diff --git a/browser/brave_vpn/android/brave_vpn_native_worker.h b/browser/brave_vpn/android/brave_vpn_native_worker.h index ce11fc34692..b2538033c0a 100644 --- a/browser/brave_vpn/android/brave_vpn_native_worker.h +++ b/browser/brave_vpn/android/brave_vpn_native_worker.h @@ -32,7 +32,8 @@ class BraveVpnNativeWorker { void GetHostnamesForRegion( JNIEnv* env, - const base::android::JavaParamRef& region); + const base::android::JavaParamRef& region, + const base::android::JavaParamRef& region_precision); void OnGetHostnamesForRegion(const std::string& hostname_json, bool success); diff --git a/components/brave_vpn/browser/api/brave_vpn_api_request.cc b/components/brave_vpn/browser/api/brave_vpn_api_request.cc index 43504071577..15572942d9a 100644 --- a/components/brave_vpn/browser/api/brave_vpn_api_request.cc +++ b/components/brave_vpn/browser/api/brave_vpn_api_request.cc @@ -99,6 +99,28 @@ void BraveVpnAPIRequest::GetHostnamesForRegion(ResponseCallback callback, OAuthRequest(base_url, "POST", request_body, std::move(internal_callback)); } +void BraveVpnAPIRequest::GetHostnamesForRegion( + ResponseCallback callback, + const std::string& region, + const std::string& region_precision) { + DCHECK(!region.empty()); + static bool dump_sent = false; + if (!dump_sent && region.empty()) { + base::debug::DumpWithoutCrashing(); + dump_sent = true; + } + + auto internal_callback = + base::BindOnce(&BraveVpnAPIRequest::OnGetResponse, + weak_ptr_factory_.GetWeakPtr(), std::move(callback)); + GURL base_url = GetURLWithPath(kVpnHost, kHostnameForRegionNew); + base::Value::Dict dict; + dict.Set("region", region); + dict.Set("region-precision", region_precision); + std::string request_body = CreateJSONRequestBody(dict); + OAuthRequest(base_url, "POST", request_body, std::move(internal_callback)); +} + void BraveVpnAPIRequest::GetProfileCredentials( ResponseCallback callback, const std::string& subscriber_credential, diff --git a/components/brave_vpn/browser/api/brave_vpn_api_request.h b/components/brave_vpn/browser/api/brave_vpn_api_request.h index e0001775826..a8d6e440743 100644 --- a/components/brave_vpn/browser/api/brave_vpn_api_request.h +++ b/components/brave_vpn/browser/api/brave_vpn_api_request.h @@ -38,6 +38,9 @@ class BraveVpnAPIRequest { void GetTimezonesForRegions(ResponseCallback callback); void GetHostnamesForRegion(ResponseCallback callback, const std::string& region); + void GetHostnamesForRegion(ResponseCallback callback, + const std::string& region, + const std::string& region_precision); void GetProfileCredentials(ResponseCallback callback, const std::string& subscriber_credential, const std::string& hostname); diff --git a/components/brave_vpn/browser/brave_vpn_service.cc b/components/brave_vpn/browser/brave_vpn_service.cc index 335f429a48e..3574d487011 100644 --- a/components/brave_vpn/browser/brave_vpn_service.cc +++ b/components/brave_vpn/browser/brave_vpn_service.cc @@ -899,6 +899,14 @@ void BraveVpnService::GetHostnamesForRegion(ResponseCallback callback, api_request_->GetHostnamesForRegion(std::move(callback), region); } +void BraveVpnService::GetHostnamesForRegion( + ResponseCallback callback, + const std::string& region, + const std::string& region_precision) { + api_request_->GetHostnamesForRegion(std::move(callback), region, + region_precision); +} + void BraveVpnService::GetProfileCredentials( ResponseCallback callback, const std::string& subscriber_credential, diff --git a/components/brave_vpn/browser/brave_vpn_service.h b/components/brave_vpn/browser/brave_vpn_service.h index db127eeaae1..f88d9556208 100644 --- a/components/brave_vpn/browser/brave_vpn_service.h +++ b/components/brave_vpn/browser/brave_vpn_service.h @@ -133,6 +133,9 @@ class BraveVpnService : void GetTimezonesForRegions(ResponseCallback callback); void GetHostnamesForRegion(ResponseCallback callback, const std::string& region); + void GetHostnamesForRegion(ResponseCallback callback, + const std::string& region, + const std::string& region_precision); void GetProfileCredentials(ResponseCallback callback, const std::string& subscriber_credential, const std::string& hostname); diff --git a/components/brave_vpn/browser/connection/ikev2/system_vpn_connection_api_unittest.cc b/components/brave_vpn/browser/connection/ikev2/system_vpn_connection_api_unittest.cc index 212b1a57fe8..c2385c5dc3b 100644 --- a/components/brave_vpn/browser/connection/ikev2/system_vpn_connection_api_unittest.cc +++ b/components/brave_vpn/browser/connection/ikev2/system_vpn_connection_api_unittest.cc @@ -11,6 +11,7 @@ #include "base/run_loop.h" #include "brave/components/brave_vpn/browser/brave_vpn_service_helper.h" #include "brave/components/brave_vpn/browser/connection/brave_vpn_connection_manager.h" +#include "brave/components/brave_vpn/browser/connection/brave_vpn_region_data_helper.h" #include "brave/components/brave_vpn/browser/connection/brave_vpn_region_data_manager.h" #include "brave/components/brave_vpn/browser/connection/ikev2/connection_api_impl_sim.h" #include "brave/components/brave_vpn/common/brave_vpn_data_types.h" diff --git a/components/brave_vpn/common/brave_vpn_constants.h b/components/brave_vpn/common/brave_vpn_constants.h index 64e9f2299b9..48ac33bf06d 100644 --- a/components/brave_vpn/common/brave_vpn_constants.h +++ b/components/brave_vpn/common/brave_vpn_constants.h @@ -46,6 +46,8 @@ inline constexpr char kTimezonesForRegions[] = "api/v1.1/servers/timezones-for-regions"; inline constexpr char kHostnameForRegion[] = "api/v1.2/servers/hostnames-for-region"; +inline constexpr char kHostnameForRegionNew[] = + "api/v1.3/servers/hostnames-for-region"; inline constexpr char kProfileCredential[] = "api/v1.1/register-and-create"; inline constexpr char kCredential[] = "api/v1.3/device/"; inline constexpr char kVerifyPurchaseToken[] = "api/v1.1/verify-purchase-token";