Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Side by Side Diff: components/ntp_snippets/remote/ntp_snippets_fetcher.cc

Issue 2548343002: NTPSnippets: Set MaxRetriesOn5xx only for interactive requests. (Closed)
Patch Set: Document missing functionality inline. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/ntp_snippets/remote/ntp_snippets_fetcher.h" 5 #include "components/ntp_snippets/remote/ntp_snippets_fetcher.h"
6 6
7 #include <algorithm>
7 #include <cstdlib> 8 #include <cstdlib>
8 #include <utility> 9 #include <utility>
9 10
10 #include "base/command_line.h" 11 #include "base/command_line.h"
11 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
12 #include "base/files/file_util.h" 13 #include "base/files/file_util.h"
13 #include "base/json/json_writer.h" 14 #include "base/json/json_writer.h"
14 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
15 #include "base/metrics/histogram_macros.h" 16 #include "base/metrics/histogram_macros.h"
16 #include "base/metrics/sparse_histogram.h" 17 #include "base/metrics/sparse_histogram.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 const char kChromeReaderApiScope[] = 55 const char kChromeReaderApiScope[] =
55 "https://www.googleapis.com/auth/webhistory"; 56 "https://www.googleapis.com/auth/webhistory";
56 const char kContentSuggestionsApiScope[] = 57 const char kContentSuggestionsApiScope[] =
57 "https://www.googleapis.com/auth/chrome-content-suggestions"; 58 "https://www.googleapis.com/auth/chrome-content-suggestions";
58 const char kSnippetsServerNonAuthorizedFormat[] = "%s?key=%s"; 59 const char kSnippetsServerNonAuthorizedFormat[] = "%s?key=%s";
59 const char kAuthorizationRequestHeaderFormat[] = "Bearer %s"; 60 const char kAuthorizationRequestHeaderFormat[] = "Bearer %s";
60 61
61 // Variation parameter for personalizing fetching of snippets. 62 // Variation parameter for personalizing fetching of snippets.
62 const char kPersonalizationName[] = "fetching_personalization"; 63 const char kPersonalizationName[] = "fetching_personalization";
63 64
65 // Variation parameter for disabling the retry.
66 const char kBackground5xxRetriesName[] = "background_5xx_retries_count";
67
64 // Variation parameter for chrome-content-suggestions backend. 68 // Variation parameter for chrome-content-suggestions backend.
65 const char kContentSuggestionsBackend[] = "content_suggestions_backend"; 69 const char kContentSuggestionsBackend[] = "content_suggestions_backend";
66 70
67 // Constants for possible values of the "fetching_personalization" parameter. 71 // Constants for possible values of the "fetching_personalization" parameter.
68 const char kPersonalizationPersonalString[] = "personal"; 72 const char kPersonalizationPersonalString[] = "personal";
69 const char kPersonalizationNonPersonalString[] = "non_personal"; 73 const char kPersonalizationNonPersonalString[] = "non_personal";
70 const char kPersonalizationBothString[] = "both"; // the default value 74 const char kPersonalizationBothString[] = "both"; // the default value
71 75
72 const int kMaxExcludedIds = 100; 76 const int kMaxExcludedIds = 100;
73 77
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 if (param_value == kBooleanParameterDisabled) { 129 if (param_value == kBooleanParameterDisabled) {
126 return false; 130 return false;
127 } 131 }
128 if (!param_value.empty()) { 132 if (!param_value.empty()) {
129 LOG(WARNING) << "Invalid value \"" << param_value 133 LOG(WARNING) << "Invalid value \"" << param_value
130 << "\" for variation parameter " << param_name; 134 << "\" for variation parameter " << param_name;
131 } 135 }
132 return default_value; 136 return default_value;
133 } 137 }
134 138
139 int Get5xxRetryCount(bool interactive_request) {
140 if (interactive_request) {
141 return 2;
142 }
143 return std::max(0, variations::GetVariationParamByFeatureAsInt(
144 ntp_snippets::kArticleSuggestionsFeature,
145 kBackground5xxRetriesName, 0));
146 }
147
135 bool UsesChromeContentSuggestionsAPI(const GURL& endpoint) { 148 bool UsesChromeContentSuggestionsAPI(const GURL& endpoint) {
136 if (endpoint == kChromeReaderServer) { 149 if (endpoint == kChromeReaderServer) {
137 return false; 150 return false;
138 } 151 }
139 152
140 if (endpoint != kContentSuggestionsServer && 153 if (endpoint != kContentSuggestionsServer &&
141 endpoint != kContentSuggestionsStagingServer && 154 endpoint != kContentSuggestionsStagingServer &&
142 endpoint != kContentSuggestionsAlphaServer) { 155 endpoint != kContentSuggestionsAlphaServer) {
143 LOG(WARNING) << "Unknown value for " << kContentSuggestionsBackend << ": " 156 LOG(WARNING) << "Unknown value for " << kContentSuggestionsBackend << ": "
144 << "assuming chromecontentsuggestions-style API"; 157 << "assuming chromecontentsuggestions-style API";
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 url_fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | 818 url_fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
806 net::LOAD_DO_NOT_SAVE_COOKIES); 819 net::LOAD_DO_NOT_SAVE_COOKIES);
807 data_use_measurement::DataUseUserData::AttachToFetcher( 820 data_use_measurement::DataUseUserData::AttachToFetcher(
808 url_fetcher.get(), data_use_measurement::DataUseUserData::NTP_SNIPPETS); 821 url_fetcher.get(), data_use_measurement::DataUseUserData::NTP_SNIPPETS);
809 822
810 url_fetcher->SetExtraRequestHeaders(headers); 823 url_fetcher->SetExtraRequestHeaders(headers);
811 url_fetcher->SetUploadData("application/json", body); 824 url_fetcher->SetUploadData("application/json", body);
812 825
813 // Fetchers are sometimes cancelled because a network change was detected. 826 // Fetchers are sometimes cancelled because a network change was detected.
814 url_fetcher->SetAutomaticallyRetryOnNetworkChanges(3); 827 url_fetcher->SetAutomaticallyRetryOnNetworkChanges(3);
815 // Try to make fetching the files bit more robust even with poor connection. 828 url_fetcher->SetMaxRetriesOn5xx(
816 url_fetcher->SetMaxRetriesOn5xx(3); 829 Get5xxRetryCount(params_.interactive_request));
817 return url_fetcher; 830 return url_fetcher;
818 } 831 }
819 832
820 void NTPSnippetsFetcher::RequestBuilder::PrepareLanguages( 833 void NTPSnippetsFetcher::RequestBuilder::PrepareLanguages(
821 translate::LanguageModel::LanguageInfo* ui_language, 834 translate::LanguageModel::LanguageInfo* ui_language,
822 translate::LanguageModel::LanguageInfo* other_top_language) const { 835 translate::LanguageModel::LanguageInfo* other_top_language) const {
823 // TODO(jkrcal): Add language model factory for iOS and add fakes to tests so 836 // TODO(jkrcal): Add language model factory for iOS and add fakes to tests so
824 // that |language_model| is never nullptr. Remove this check and add a DCHECK 837 // that |language_model| is never nullptr. Remove this check and add a DCHECK
825 // into the constructor. 838 // into the constructor.
826 if (!language_model_ || !IsSendingTopLanguagesEnabled()) { 839 if (!language_model_ || !IsSendingTopLanguagesEnabled()) {
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 NOTREACHED(); 1110 NOTREACHED();
1098 return false; 1111 return false;
1099 } 1112 }
1100 1113
1101 bool NTPSnippetsFetcher::NeedsAuthentication() const { 1114 bool NTPSnippetsFetcher::NeedsAuthentication() const {
1102 return (personalization_ == Personalization::kPersonal || 1115 return (personalization_ == Personalization::kPersonal ||
1103 personalization_ == Personalization::kBoth); 1116 personalization_ == Personalization::kBoth);
1104 } 1117 }
1105 1118
1106 } // namespace ntp_snippets 1119 } // namespace ntp_snippets
OLDNEW
« no previous file with comments | « components/ntp_snippets/remote/ntp_snippets_fetcher.h ('k') | components/ntp_snippets/remote/ntp_snippets_fetcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698