| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/autocomplete/zero_suggest_provider.h" | 5 #include "chrome/browser/autocomplete/zero_suggest_provider.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/i18n/case_conversion.h" | 8 #include "base/i18n/case_conversion.h" |
| 9 #include "base/json/json_string_value_serializer.h" | 9 #include "base/json/json_string_value_serializer.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 } | 92 } |
| 93 | 93 |
| 94 void ZeroSuggestProvider::Start(const AutocompleteInput& input, | 94 void ZeroSuggestProvider::Start(const AutocompleteInput& input, |
| 95 bool minimal_changes, | 95 bool minimal_changes, |
| 96 bool called_due_to_focus) { | 96 bool called_due_to_focus) { |
| 97 matches_.clear(); | 97 matches_.clear(); |
| 98 if (!called_due_to_focus || | 98 if (!called_due_to_focus || |
| 99 input.type() == metrics::OmniboxInputType::INVALID) | 99 input.type() == metrics::OmniboxInputType::INVALID) |
| 100 return; | 100 return; |
| 101 | 101 |
| 102 Stop(true); | 102 Stop(true, false); |
| 103 field_trial_triggered_ = false; | 103 field_trial_triggered_ = false; |
| 104 field_trial_triggered_in_session_ = false; | 104 field_trial_triggered_in_session_ = false; |
| 105 results_from_cache_ = false; | 105 results_from_cache_ = false; |
| 106 permanent_text_ = input.text(); | 106 permanent_text_ = input.text(); |
| 107 current_query_ = input.current_url().spec(); | 107 current_query_ = input.current_url().spec(); |
| 108 current_page_classification_ = input.current_page_classification(); | 108 current_page_classification_ = input.current_page_classification(); |
| 109 current_url_match_ = MatchForCurrentURL(); | 109 current_url_match_ = MatchForCurrentURL(); |
| 110 | 110 |
| 111 const TemplateURL* default_provider = | 111 const TemplateURL* default_provider = |
| 112 template_url_service_->GetDefaultSearchProvider(); | 112 template_url_service_->GetDefaultSearchProvider(); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 139 } | 139 } |
| 140 | 140 |
| 141 done_ = false; | 141 done_ = false; |
| 142 // TODO(jered): Consider adding locally-sourced zero-suggestions here too. | 142 // TODO(jered): Consider adding locally-sourced zero-suggestions here too. |
| 143 // These may be useful on the NTP or more relevant to the user than server | 143 // These may be useful on the NTP or more relevant to the user than server |
| 144 // suggestions, if based on local browsing history. | 144 // suggestions, if based on local browsing history. |
| 145 MaybeUseCachedSuggestions(); | 145 MaybeUseCachedSuggestions(); |
| 146 Run(suggest_url); | 146 Run(suggest_url); |
| 147 } | 147 } |
| 148 | 148 |
| 149 void ZeroSuggestProvider::Stop(bool clear_cached_results) { | 149 void ZeroSuggestProvider::Stop(bool clear_cached_results, |
| 150 bool user_inactivity_timer) { |
| 150 if (fetcher_) | 151 if (fetcher_) |
| 151 LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_INVALIDATED); | 152 LogOmniboxZeroSuggestRequest(ZERO_SUGGEST_REQUEST_INVALIDATED); |
| 152 fetcher_.reset(); | 153 fetcher_.reset(); |
| 153 waiting_for_most_visited_urls_request_ = false; | 154 waiting_for_most_visited_urls_request_ = false; |
| 154 done_ = true; | 155 done_ = true; |
| 155 | 156 |
| 156 if (clear_cached_results) { | 157 if (clear_cached_results) { |
| 157 // We do not call Clear() on |results_| to retain |verbatim_relevance| | 158 // We do not call Clear() on |results_| to retain |verbatim_relevance| |
| 158 // value in the |results_| object. |verbatim_relevance| is used at the | 159 // value in the |results_| object. |verbatim_relevance| is used at the |
| 159 // beginning of the next OnOmniboxFocused() call to determine the current | 160 // beginning of the next OnOmniboxFocused() call to determine the current |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 482 if (!json_data.empty()) { | 483 if (!json_data.empty()) { |
| 483 scoped_ptr<base::Value> data( | 484 scoped_ptr<base::Value> data( |
| 484 SearchSuggestionParser::DeserializeJsonData(json_data)); | 485 SearchSuggestionParser::DeserializeJsonData(json_data)); |
| 485 if (data && ParseSuggestResults( | 486 if (data && ParseSuggestResults( |
| 486 *data, kDefaultZeroSuggestRelevance, false, &results_)) { | 487 *data, kDefaultZeroSuggestRelevance, false, &results_)) { |
| 487 ConvertResultsToAutocompleteMatches(); | 488 ConvertResultsToAutocompleteMatches(); |
| 488 results_from_cache_ = !matches_.empty(); | 489 results_from_cache_ = !matches_.empty(); |
| 489 } | 490 } |
| 490 } | 491 } |
| 491 } | 492 } |
| OLD | NEW |