| Index: components/ntp_snippets/ntp_snippets_fetcher.cc
 | 
| diff --git a/components/ntp_snippets/ntp_snippets_fetcher.cc b/components/ntp_snippets/ntp_snippets_fetcher.cc
 | 
| index 5869644f963492b331dfbcc2dc5eb70accf87db8..8e888abf50f507f447aac0215d3906ed9a0deb9f 100644
 | 
| --- a/components/ntp_snippets/ntp_snippets_fetcher.cc
 | 
| +++ b/components/ntp_snippets/ntp_snippets_fetcher.cc
 | 
| @@ -158,6 +158,7 @@ NTPSnippetsFetcher::NTPSnippetsFetcher(
 | 
|      SigninManagerBase* signin_manager,
 | 
|      OAuth2TokenService* token_service,
 | 
|      scoped_refptr<URLRequestContextGetter> url_request_context_getter,
 | 
| +    PrefService* pref_service,
 | 
|      const ParseJSONCallback& parse_json_callback,
 | 
|      bool is_stable_channel)
 | 
|      : OAuth2TokenService::Consumer("ntp_snippets"),
 | 
| @@ -172,6 +173,9 @@ NTPSnippetsFetcher::NTPSnippetsFetcher(
 | 
|                       : CHROME_READER_API),
 | 
|        is_stable_channel_(is_stable_channel),
 | 
|        tick_clock_(new base::DefaultTickClock()),
 | 
| +      request_throttler_(
 | 
| +          pref_service,
 | 
| +          RequestThrottler::RequestType::CONTENT_SUGGESTION_FETCHER),
 | 
|        weak_ptr_factory_(this) {
 | 
|    // Parse the variation parameters and set the defaults if missing.
 | 
|    std::string personalization = variations::GetVariationParamValue(
 | 
| @@ -214,7 +218,11 @@ void NTPSnippetsFetcher::SetCallback(
 | 
|  void NTPSnippetsFetcher::FetchSnippetsFromHosts(
 | 
|      const std::set<std::string>& hosts,
 | 
|      const std::string& language_code,
 | 
| -    int count) {
 | 
| +    int count,
 | 
| +    bool force_request) {
 | 
| +  if (!request_throttler_.DemandQuotaForRequest(force_request))
 | 
| +    return;
 | 
| +
 | 
|    hosts_ = hosts;
 | 
|    fetch_start_time_ = tick_clock_->NowTicks();
 | 
|  
 | 
| 
 |