| Index: chrome/browser/search/suggestions/suggestions_service.cc
|
| diff --git a/chrome/browser/search/suggestions/suggestions_service.cc b/chrome/browser/search/suggestions/suggestions_service.cc
|
| index 3565994173b48609e995049056d42a89acff2281..6d7650bce18c2d783ac4284ac0bb186e81f0a4dc 100644
|
| --- a/chrome/browser/search/suggestions/suggestions_service.cc
|
| +++ b/chrome/browser/search/suggestions/suggestions_service.cc
|
| @@ -48,18 +48,6 @@
|
| key);
|
| }
|
|
|
| -// Runs each callback in |requestors| on |suggestions|, then deallocates
|
| -// |requestors|.
|
| -void DispatchRequestsAndClear(
|
| - const SuggestionsProfile& suggestions,
|
| - std::vector<SuggestionsService::ResponseCallback>* requestors) {
|
| - std::vector<SuggestionsService::ResponseCallback>::iterator it;
|
| - for (it = requestors->begin(); it != requestors->end(); ++it) {
|
| - it->Run(suggestions);
|
| - }
|
| - std::vector<SuggestionsService::ResponseCallback>().swap(*requestors);
|
| -}
|
| -
|
| } // namespace
|
|
|
| const char kSuggestionsFieldTrialName[] = "ChromeSuggestions";
|
| @@ -82,19 +70,8 @@
|
| kSuggestionsFieldTrialStateEnabled;
|
| }
|
|
|
| -void SuggestionsService::FetchSuggestionsData(
|
| - SuggestionsService::ResponseCallback callback) {
|
| +void SuggestionsService::FetchSuggestionsData() {
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| -
|
| - if (pending_request_.get()) {
|
| - // Request already exists, so just add requestor to queue.
|
| - waiting_requestors_.push_back(callback);
|
| - return;
|
| - }
|
| -
|
| - // Form new request.
|
| - DCHECK(waiting_requestors_.empty());
|
| - waiting_requestors_.push_back(callback);
|
|
|
| pending_request_.reset(net::URLFetcher::Create(
|
| 0, suggestions_url_, net::URLFetcher::GET, this));
|
| @@ -102,9 +79,9 @@
|
| pending_request_->SetRequestContext(profile_->GetRequestContext());
|
| // Add Chrome experiment state to the request headers.
|
| net::HttpRequestHeaders headers;
|
| - chrome_variations::VariationsHttpHeaderProvider::GetInstance()->
|
| - AppendHeaders(pending_request_->GetOriginalURL(),
|
| - profile_->IsOffTheRecord(), false, &headers);
|
| + chrome_variations::VariationsHttpHeaderProvider::GetInstance()->AppendHeaders(
|
| + pending_request_->GetOriginalURL(), profile_->IsOffTheRecord(), false,
|
| + &headers);
|
| pending_request_->SetExtraRequestHeaders(headers.ToString());
|
| pending_request_->Start();
|
|
|
| @@ -112,7 +89,6 @@
|
| }
|
|
|
| void SuggestionsService::OnURLFetchComplete(const net::URLFetcher* source) {
|
| - DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| DCHECK_EQ(pending_request_.get(), source);
|
|
|
| // The fetcher will be deleted when the request is handled.
|
| @@ -138,28 +114,15 @@
|
|
|
| std::string suggestions_data;
|
| bool success = request->GetResponseAsString(&suggestions_data);
|
| +
|
| DCHECK(success);
|
| -
|
| - // Compute suggestions, and dispatch then to requestors. On error still
|
| - // dispatch empty suggestions.
|
| - SuggestionsProfile suggestions;
|
| if (suggestions_data.empty()) {
|
| LogResponseState(RESPONSE_EMPTY);
|
| - } else if (suggestions.ParseFromString(suggestions_data)) {
|
| + } else if (suggestions_.ParseFromString(suggestions_data)) {
|
| LogResponseState(RESPONSE_VALID);
|
| } else {
|
| LogResponseState(RESPONSE_INVALID);
|
| }
|
| -
|
| - DispatchRequestsAndClear(suggestions, &waiting_requestors_);
|
| -}
|
| -
|
| -void SuggestionsService::Shutdown() {
|
| - // Cancel pending request.
|
| - pending_request_.reset(NULL);
|
| -
|
| - // Dispatch empty suggestions to requestors.
|
| - DispatchRequestsAndClear(SuggestionsProfile(), &waiting_requestors_);
|
| }
|
|
|
| } // namespace suggestions
|
|
|