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

Side by Side Diff: components/ntp_snippets/ntp_snippets_fetcher.h

Issue 2274953002: Inform server of dismissed articles. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Rebase, fix. Created 4 years, 3 months 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
« no previous file with comments | « no previous file | components/ntp_snippets/ntp_snippets_fetcher.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #ifndef COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_FETCHER_H_ 5 #ifndef COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_FETCHER_H_
6 #define COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_FETCHER_H_ 6 #define COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_FETCHER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 CategoryFactory* category_factory, 83 CategoryFactory* category_factory,
84 const ParseJSONCallback& parse_json_callback, 84 const ParseJSONCallback& parse_json_callback,
85 bool is_stable_channel); 85 bool is_stable_channel);
86 ~NTPSnippetsFetcher() override; 86 ~NTPSnippetsFetcher() override;
87 87
88 // Set a callback that is called when a new set of snippets are downloaded, 88 // Set a callback that is called when a new set of snippets are downloaded,
89 // overriding any previously set callback. 89 // overriding any previously set callback.
90 void SetCallback(const SnippetsAvailableCallback& callback); 90 void SetCallback(const SnippetsAvailableCallback& callback);
91 91
92 // Fetches snippets from the server. |hosts| restricts the results to a set of 92 // Fetches snippets from the server. |hosts| restricts the results to a set of
93 // hosts, e.g. "www.google.com". An empty host set produces an error. 93 // hosts, e.g. "www.google.com". If host restrictions are enabled, an empty
94 // host set produces an error without issuing a fetch.
95 //
96 // |excluded_ids| will be reported to the server; the server should not return
97 // suggestions with those IDs.
94 // 98 //
95 // If an ongoing fetch exists, it will be cancelled and a new one started, 99 // If an ongoing fetch exists, it will be cancelled and a new one started,
96 // without triggering an additional callback (i.e. not noticeable by 100 // without triggering an additional callback (i.e. not noticeable by
97 // subscriber of SetCallback()). 101 // subscriber of SetCallback()).
98 // 102 //
99 // Fetches snippets only if the daily quota not exceeded, unless 103 // Fetches snippets only if the daily quota not exceeded, unless
100 // |interactive_request| is set to true (use only for user-initiated fetches). 104 // |interactive_request| is set to true (use only for user-initiated fetches).
101 void FetchSnippetsFromHosts(const std::set<std::string>& hosts, 105 void FetchSnippetsFromHosts(const std::set<std::string>& hosts,
102 const std::string& language_code, 106 const std::string& language_code,
107 const std::set<std::string>& excluded_ids,
103 int count, 108 int count,
104 bool interactive_request); 109 bool interactive_request);
105 110
106 // Debug string representing the status/result of the last fetch attempt. 111 // Debug string representing the status/result of the last fetch attempt.
107 const std::string& last_status() const { return last_status_; } 112 const std::string& last_status() const { return last_status_; }
108 113
109 // Returns the last JSON fetched from the server. 114 // Returns the last JSON fetched from the server.
110 const std::string& last_json() const { 115 const std::string& last_json() const {
111 return last_fetch_json_; 116 return last_fetch_json_;
112 } 117 }
(...skipping 14 matching lines...) Expand all
127 tick_clock_ = std::move(tick_clock); 132 tick_clock_ = std::move(tick_clock);
128 } 133 }
129 134
130 void SetPersonalizationForTesting(Personalization personalization) { 135 void SetPersonalizationForTesting(Personalization personalization) {
131 personalization_ = personalization; 136 personalization_ = personalization;
132 } 137 }
133 138
134 private: 139 private:
135 FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestAuthenticated); 140 FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestAuthenticated);
136 FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestUnauthenticated); 141 FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestUnauthenticated);
142 FRIEND_TEST_ALL_PREFIXES(NTPSnippetsFetcherTest, BuildRequestExcludedIds);
137 143
138 enum FetchAPI { 144 enum FetchAPI {
139 CHROME_READER_API, 145 CHROME_READER_API,
140 CHROME_CONTENT_SUGGESTIONS_API, 146 CHROME_CONTENT_SUGGESTIONS_API,
141 }; 147 };
142 148
143 struct RequestParams { 149 struct RequestParams {
144 FetchAPI fetch_api; 150 FetchAPI fetch_api;
145 std::string obfuscated_gaia_id; 151 std::string obfuscated_gaia_id;
146 bool only_return_personalized_results; 152 bool only_return_personalized_results;
147 std::string user_locale; 153 std::string user_locale;
148 std::set<std::string> host_restricts; 154 std::set<std::string> host_restricts;
155 std::set<std::string> excluded_ids;
149 int count_to_fetch; 156 int count_to_fetch;
150 157
151 RequestParams(); 158 RequestParams();
152 ~RequestParams(); 159 ~RequestParams();
153 160
154 std::string BuildRequest(); 161 std::string BuildRequest();
155 }; 162 };
156 163
157 void FetchSnippetsImpl(const GURL& url, 164 void FetchSnippetsImpl(const GURL& url,
158 const std::string& auth_header, 165 const std::string& auth_header,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 201
195 CategoryFactory* const category_factory_; 202 CategoryFactory* const category_factory_;
196 const ParseJSONCallback parse_json_callback_; 203 const ParseJSONCallback parse_json_callback_;
197 base::TimeTicks fetch_start_time_; 204 base::TimeTicks fetch_start_time_;
198 std::string last_status_; 205 std::string last_status_;
199 std::string last_fetch_json_; 206 std::string last_fetch_json_;
200 207
201 // Hosts to restrict the snippets to. 208 // Hosts to restrict the snippets to.
202 std::set<std::string> hosts_; 209 std::set<std::string> hosts_;
203 210
211 // Snippets to exclude from the results.
212 std::set<std::string> excluded_ids_;
213
204 // Count of snippets to fetch. 214 // Count of snippets to fetch.
205 int count_to_fetch_; 215 int count_to_fetch_;
206 216
207 // Language code to restrict to for personalized results. 217 // Language code to restrict to for personalized results.
208 std::string locale_; 218 std::string locale_;
209 219
210 // API endpoint for fetching snippets. 220 // API endpoint for fetching snippets.
211 const GURL fetch_url_; 221 const GURL fetch_url_;
212 // Which API to use 222 // Which API to use
213 const FetchAPI fetch_api_; 223 const FetchAPI fetch_api_;
(...skipping 21 matching lines...) Expand all
235 // When a token request gets canceled, we want to retry once. 245 // When a token request gets canceled, we want to retry once.
236 bool oauth_token_retried_; 246 bool oauth_token_retried_;
237 247
238 base::WeakPtrFactory<NTPSnippetsFetcher> weak_ptr_factory_; 248 base::WeakPtrFactory<NTPSnippetsFetcher> weak_ptr_factory_;
239 249
240 DISALLOW_COPY_AND_ASSIGN(NTPSnippetsFetcher); 250 DISALLOW_COPY_AND_ASSIGN(NTPSnippetsFetcher);
241 }; 251 };
242 } // namespace ntp_snippets 252 } // namespace ntp_snippets
243 253
244 #endif // COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_FETCHER_H_ 254 #endif // COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_FETCHER_H_
OLDNEW
« no previous file with comments | « no previous file | components/ntp_snippets/ntp_snippets_fetcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698