Index: components/ntp_snippets/breaking_news/subscription_manager.cc |
diff --git a/components/ntp_snippets/breaking_news/subscription_manager.cc b/components/ntp_snippets/breaking_news/subscription_manager.cc |
index 42495e8181b082f2b88a13207ba4d710b7cf589e..5588bf91e71b4d63724db0b5f9a4b5ab1db5cbc8 100644 |
--- a/components/ntp_snippets/breaking_news/subscription_manager.cc |
+++ b/components/ntp_snippets/breaking_news/subscription_manager.cc |
@@ -4,7 +4,10 @@ |
#include "components/ntp_snippets/breaking_news/subscription_manager.h" |
#include "base/bind.h" |
+#include "base/metrics/field_trial_params.h" |
#include "components/ntp_snippets/breaking_news/subscription_json_request.h" |
+#include "components/ntp_snippets/features.h" |
+#include "components/ntp_snippets/ntp_snippets_constants.h" |
#include "components/ntp_snippets/pref_names.h" |
#include "components/prefs/pref_service.h" |
@@ -12,6 +15,15 @@ namespace ntp_snippets { |
using internal::SubscriptionJsonRequest; |
+namespace { |
+ |
+// Variation parameter for chrome-push-subscription backend. |
+const char kPushSubscriptionBackendParam[] = "push_subscription_backend"; |
+ |
+// Variation parameter for chrome-push-unsubscription backend. |
+const char kPushUnsubscriptionBackendParam[] = "push_unsubscription_backend"; |
+} |
+ |
SubscriptionManager::SubscriptionManager( |
scoped_refptr<net::URLRequestContextGetter> url_request_context_getter, |
PrefService* pref_service, |
@@ -109,4 +121,48 @@ void SubscriptionManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { |
registry->RegisterStringPref(prefs::kContentSuggestionsSubscriptionDataToken, |
std::string()); |
} |
+ |
+GURL GetPushUpdatesSubscriptionEndpoint(version_info::Channel channel) { |
+ std::string endpoint = base::GetFieldTrialParamValueByFeature( |
+ ntp_snippets::kContentSuggestionsPushFeature, |
+ kPushSubscriptionBackendParam); |
+ if (!endpoint.empty()) { |
+ return GURL{endpoint}; |
+ } |
+ |
+ switch (channel) { |
+ case version_info::Channel::STABLE: |
+ case version_info::Channel::BETA: |
+ return GURL{kPushUpdatesSubscriptionServer}; |
+ |
+ case version_info::Channel::DEV: |
+ case version_info::Channel::CANARY: |
+ case version_info::Channel::UNKNOWN: |
+ return GURL{kPushUpdatesSubscriptionStagingServer}; |
+ } |
+ NOTREACHED(); |
+ return GURL{kPushUpdatesSubscriptionStagingServer}; |
+} |
+ |
+GURL GetPushUpdatesUnsubscriptionEndpoint(version_info::Channel channel) { |
+ std::string endpoint = base::GetFieldTrialParamValueByFeature( |
+ ntp_snippets::kContentSuggestionsPushFeature, |
+ kPushUnsubscriptionBackendParam); |
+ if (!endpoint.empty()) { |
+ return GURL{endpoint}; |
+ } |
+ |
+ switch (channel) { |
+ case version_info::Channel::STABLE: |
+ case version_info::Channel::BETA: |
+ return GURL{kPushUpdatesUnsubscriptionServer}; |
+ |
+ case version_info::Channel::DEV: |
+ case version_info::Channel::CANARY: |
+ case version_info::Channel::UNKNOWN: |
+ return GURL{kPushUpdatesUnsubscriptionStagingServer}; |
+ } |
+ NOTREACHED(); |
+ return GURL{kPushUpdatesUnsubscriptionStagingServer}; |
+} |
} // namespace ntp_snippets |