diff --git a/android/BUILD.gn b/android/BUILD.gn index 117250e02569..f9e2a20b3064 100644 --- a/android/BUILD.gn +++ b/android/BUILD.gn @@ -3,6 +3,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at https://mozilla.org/MPL/2.0/. +import("//brave/browser/brave_stats/buildflags.gni") import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/p3a/buildflags.gni") import("//brave/components/webcompat_reporter/buildflags/buildflags.gni") @@ -26,5 +27,6 @@ java_cpp_template("brave_config_java") { "BRAVE_ANDROID_P3A_ENABLED=$brave_p3a_enabled", "BRAVE_ANDROID_WEBCOMPAT_REPORT_ENDPOINT=\"$webcompat_report_api_endpoint\"", "BRAVE_ANDROID_AI_CHAT_ENABLED=$enable_ai_chat", + "BRAVE_ANDROID_FEEDBACK_REPORT_ENDPOINT=\"$android_feedback_report_api_endpoint\"", ] } diff --git a/android/java/org/chromium/chrome/browser/rate/RateFeedbackUtils.java b/android/java/org/chromium/chrome/browser/rate/RateFeedbackUtils.java index 4f672c48b848..10ecfc4d3de4 100644 --- a/android/java/org/chromium/chrome/browser/rate/RateFeedbackUtils.java +++ b/android/java/org/chromium/chrome/browser/rate/RateFeedbackUtils.java @@ -16,6 +16,7 @@ import org.chromium.base.Log; import org.chromium.base.ThreadUtils; import org.chromium.base.task.AsyncTask; +import org.chromium.chrome.browser.BraveConfig; import org.chromium.chrome.browser.about_settings.AboutChromeSettings; import org.chromium.chrome.browser.about_settings.AboutSettingsBridge; import org.chromium.chrome.browser.ntp_background_images.NTPBackgroundImagesBridge; @@ -35,7 +36,6 @@ public class RateFeedbackUtils { private static final String TAG = "Rate_Brave"; - private static final String RATE_URL = "https://laptop-updates.brave.com/1/feedback"; public interface RateFeedbackCallback { void rateFeedbackSubmitted(); @@ -68,9 +68,13 @@ protected void onPostExecute(Void result) { } private static void sendRateFeedback(String userSelection, String userFeedback) { + assert BraveConfig.FEEDBACK_REPORT_ENDPOINT != null + && !BraveConfig.FEEDBACK_REPORT_ENDPOINT.isEmpty(); + Context context = ContextUtils.getApplicationContext(); - String appVersion = AboutChromeSettings.getApplicationVersion( - context, AboutSettingsBridge.getApplicationVersion()); + String appVersion = + AboutChromeSettings.getApplicationVersion( + context, AboutSettingsBridge.getApplicationVersion()); StringBuilder sb = new StringBuilder(); Profile mProfile = ProfileManager.getLastUsedRegularProfile(); @@ -79,9 +83,11 @@ private static void sendRateFeedback(String userSelection, String userFeedback) HttpURLConnection urlConnection = null; try { - URL url = new URL(RATE_URL); - urlConnection = (HttpURLConnection) ChromiumNetworkAdapter.openConnection( - url, NetworkTrafficAnnotationTag.MISSING_TRAFFIC_ANNOTATION); + URL url = new URL(BraveConfig.FEEDBACK_REPORT_ENDPOINT); + urlConnection = + (HttpURLConnection) + ChromiumNetworkAdapter.openConnection( + url, NetworkTrafficAnnotationTag.MISSING_TRAFFIC_ANNOTATION); urlConnection.setDoOutput(true); urlConnection.setRequestMethod("POST"); urlConnection.setUseCaches(false); diff --git a/browser/brave_stats/BUILD.gn b/browser/brave_stats/BUILD.gn index af6bfdf296ab..80a6a55d5ec8 100644 --- a/browser/brave_stats/BUILD.gn +++ b/browser/brave_stats/BUILD.gn @@ -3,16 +3,9 @@ # 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/. */ +import("//brave/browser/brave_stats/buildflags.gni") import("//build/buildflag_header.gni") -declare_args() { - brave_stats_updater_url = "" -} - -if (is_official_build) { - assert(brave_stats_updater_url != "") -} - buildflag_header("buildflags") { header = "buildflags.h" flags = [ "BRAVE_USAGE_SERVER=\"$brave_stats_updater_url\"" ] diff --git a/browser/brave_stats/buildflags.gni b/browser/brave_stats/buildflags.gni new file mode 100644 index 000000000000..db28d42acecf --- /dev/null +++ b/browser/brave_stats/buildflags.gni @@ -0,0 +1,14 @@ +# Copyright (c) 2024 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 https://mozilla.org/MPL/2.0/. + +declare_args() { + brave_stats_updater_url = "" + android_feedback_report_api_endpoint = "" +} + +if (is_official_build) { + assert(brave_stats_updater_url != "") + assert(android_feedback_report_api_endpoint != "") +} diff --git a/browser/net/brave_network_audit_allowed_lists.h b/browser/net/brave_network_audit_allowed_lists.h index 8c8d0dfd73cc..38011d189a3b 100644 --- a/browser/net/brave_network_audit_allowed_lists.h +++ b/browser/net/brave_network_audit_allowed_lists.h @@ -23,8 +23,8 @@ inline constexpr const char* kAllowedUrlPrefixes[] = { "https://updates.bravesoftware.com/", // stats/referrals - "https://laptop-updates.brave.com/", - "https://laptop-updates-staging.brave.com/", + "https://usage-ping.brave.com/", + "https://feedback.brave.com/", // needed for DoH on Mac build machines "https://dns.google/dns-query", diff --git a/build/android/java/templates/BraveConfig.template b/build/android/java/templates/BraveConfig.template index 025d376ef274..c62790f4b1aa 100644 --- a/build/android/java/templates/BraveConfig.template +++ b/build/android/java/templates/BraveConfig.template @@ -13,4 +13,5 @@ public class BraveConfig { public static final boolean P3A_ENABLED = BRAVE_ANDROID_P3A_ENABLED; public static final boolean AI_CHAT_ENABLED = BRAVE_ANDROID_AI_CHAT_ENABLED; public static final String WEBCOMPAT_REPORT_ENDPOINT = BRAVE_ANDROID_WEBCOMPAT_REPORT_ENDPOINT; + public static final String FEEDBACK_REPORT_ENDPOINT = BRAVE_ANDROID_FEEDBACK_REPORT_ENDPOINT; } diff --git a/chromium_src/chrome/browser/net/profile_network_context_service.cc b/chromium_src/chrome/browser/net/profile_network_context_service.cc index db48ebc2d07d..7461bd41fa90 100644 --- a/chromium_src/chrome/browser/net/profile_network_context_service.cc +++ b/chromium_src/chrome/browser/net/profile_network_context_service.cc @@ -4,7 +4,7 @@ * You can obtain one at https://mozilla.org/MPL/2.0/. */ static const char* kBraveCTExcludedHosts[] = { // Critical endpoints that shouldn't require SCTs so they always work - "laptop-updates.brave.com", + "usage-ping.brave.com", "updates.bravesoftware.com", "updates-cdn.bravesoftware.com", // Test host for manual testing diff --git a/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc b/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc index c98f26030364..a9b5f3fa2748 100644 --- a/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc +++ b/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc @@ -39,7 +39,6 @@ constexpr std::string_view kBravePinsJson = R"brave_pins_json({ // Brave { "name": "adblock-data.s3.brave.com", "pins": "brave"}, { "name": "ai-chat.bsg.brave.com", "pins": "brave"}, - { "name": "feedback.brave.com", "pins": "brave"}, { "name": "brave-core-ext.s3.brave.com", "pins": "brave"}, { "name": "brave-today-cdn.brave.com", "pins": "brave"}, { "name": "clients4.brave.com", "pins": "brave"}, @@ -137,7 +136,7 @@ constexpr std::string_view kBraveHstsJson = R"brave_hsts_json({ // Critical endpoints that should remain unpinned so that they // always work. { - "name": "laptop-updates.brave.com", + "name": "usage-ping.brave.com", "mode": "force-https", "policy": "custom" }, diff --git a/components/brave_referrals/browser/BUILD.gn b/components/brave_referrals/browser/BUILD.gn index 4900d2964713..c34e184927f1 100644 --- a/components/brave_referrals/browser/BUILD.gn +++ b/components/brave_referrals/browser/BUILD.gn @@ -3,6 +3,9 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at https://mozilla.org/MPL/2.0/. +import("//brave/components/brave_referrals/browser/buildflags.gni") +import("//build/buildflag_header.gni") + if (is_android) { import("//build/config/android/rules.gni") import("//third_party/jni_zero/jni_zero.gni") @@ -20,6 +23,7 @@ static_library("browser") { deps = [ "//base", + "//brave/components/brave_referrals/browser:buildflags", "//brave/components/brave_stats/browser", "//brave/components/constants", "//brave/vendor/brave_base", @@ -71,3 +75,8 @@ source_set("unit_tests") { ] } } + +buildflag_header("buildflags") { + header = "buildflags.h" + flags = [ "BRAVE_REFERRALS_SERVER=\"$brave_referrals_server\"" ] +} diff --git a/components/brave_referrals/browser/brave_referrals_service.cc b/components/brave_referrals/browser/brave_referrals_service.cc index 04511a889824..e857345971d4 100644 --- a/components/brave_referrals/browser/brave_referrals_service.cc +++ b/components/brave_referrals/browser/brave_referrals_service.cc @@ -19,6 +19,7 @@ #include "base/strings/stringprintf.h" #include "base/task/thread_pool.h" #include "base/values.h" +#include "brave/components/brave_referrals/browser/buildflags.h" #include "brave/components/brave_referrals/common/pref_names.h" #include "brave/components/constants/network_constants.h" #include "brave/components/constants/pref_names.h" @@ -132,7 +133,7 @@ std::string BuildReferralEndpoint(const std::string& path) { std::string proto = "https"; env->GetVar("BRAVE_REFERRALS_SERVER", &referral_server); if (referral_server.empty()) - referral_server = kBraveReferralsServer; + referral_server = BUILDFLAG(BRAVE_REFERRALS_SERVER); if (env->HasVar("BRAVE_REFERRALS_LOCAL")) proto = "http"; diff --git a/components/brave_referrals/browser/buildflags.gni b/components/brave_referrals/browser/buildflags.gni new file mode 100644 index 000000000000..348565b62bf2 --- /dev/null +++ b/components/brave_referrals/browser/buildflags.gni @@ -0,0 +1,12 @@ +# Copyright (c) 2024 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 https://mozilla.org/MPL/2.0/. + +declare_args() { + brave_referrals_server = "" +} + +if (is_official_build) { + assert(brave_referrals_server != "") +} diff --git a/components/constants/network_constants.h b/components/constants/network_constants.h index 87b1260f2794..4ed589545cbc 100644 --- a/components/constants/network_constants.h +++ b/components/constants/network_constants.h @@ -14,7 +14,6 @@ inline constexpr char kBraveSoftwareProxyPattern[] = inline constexpr char kBraveUsageStandardPath[] = "/1/usage/brave-core"; -inline constexpr char kBraveReferralsServer[] = "laptop-updates.brave.com"; inline constexpr char kBraveReferralsInitPath[] = "/promo/initialize/nonua"; inline constexpr char kBraveReferralsActivityPath[] = "/promo/activity"; diff --git a/ios/brave-ios/Sources/Growth/DAU.swift b/ios/brave-ios/Sources/Growth/DAU.swift index f2db248b1579..c0a782eff959 100644 --- a/ios/brave-ios/Sources/Growth/DAU.swift +++ b/ios/brave-ios/Sources/Growth/DAU.swift @@ -20,8 +20,8 @@ public class DAU { // TODO: Handle via brave-stats-updater-server switch and get URL from brave_stats_updater_url let domain = AppConstants.isOfficialBuild - ? "https://laptop-updates.brave.com/" - : "https://laptop-updates.bravesoftware.com/" + ? "https://usage-ping.brave.com/" + : "https://usage-ping.bravesoftware.com/" return "\(domain)\(apiVersion)/usage/ios?platform=ios" } diff --git a/ios/brave-ios/Sources/Growth/URP/UserReferralProgram.swift b/ios/brave-ios/Sources/Growth/URP/UserReferralProgram.swift index 6368df3467bb..9a0b22bf50b9 100644 --- a/ios/brave-ios/Sources/Growth/URP/UserReferralProgram.swift +++ b/ios/brave-ios/Sources/Growth/URP/UserReferralProgram.swift @@ -18,8 +18,8 @@ public class UserReferralProgram { public static let shared = UserReferralProgram() struct HostUrl { - static let staging = "https://laptop-updates.bravesoftware.com" - static let prod = "https://laptop-updates.brave.com" + static let staging = "https://usage-ping.bravesoftware.com" + static let prod = "https://usage-ping.brave.com" } let adServicesURLString = "https://api-adservices.apple.com/api/v1/"