| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/omnibox/keyword_provider.h" | 5 #include "components/omnibox/keyword_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 const base::string16& text, | 192 const base::string16& text, |
| 193 const base::string16& keyword, | 193 const base::string16& keyword, |
| 194 const AutocompleteInput& input) { | 194 const AutocompleteInput& input) { |
| 195 // A verbatim match is allowed to be the default match. | 195 // A verbatim match is allowed to be the default match. |
| 196 return CreateAutocompleteMatch( | 196 return CreateAutocompleteMatch( |
| 197 GetTemplateURLService()->GetTemplateURLForKeyword(keyword), input, | 197 GetTemplateURLService()->GetTemplateURLForKeyword(keyword), input, |
| 198 keyword.length(), SplitReplacementStringFromInput(text, true), true, 0); | 198 keyword.length(), SplitReplacementStringFromInput(text, true), true, 0); |
| 199 } | 199 } |
| 200 | 200 |
| 201 void KeywordProvider::Start(const AutocompleteInput& input, | 201 void KeywordProvider::Start(const AutocompleteInput& input, |
| 202 bool minimal_changes) { | 202 bool minimal_changes, |
| 203 bool called_due_to_focus) { |
| 203 // This object ensures we end keyword mode if we exit the function without | 204 // This object ensures we end keyword mode if we exit the function without |
| 204 // toggling keyword mode to on. | 205 // toggling keyword mode to on. |
| 205 ScopedEndExtensionKeywordMode keyword_mode_toggle(extensions_delegate_.get()); | 206 ScopedEndExtensionKeywordMode keyword_mode_toggle(extensions_delegate_.get()); |
| 206 | 207 |
| 207 matches_.clear(); | 208 matches_.clear(); |
| 208 | 209 |
| 209 if (!minimal_changes) { | 210 if (!minimal_changes) { |
| 210 done_ = true; | 211 done_ = true; |
| 211 | 212 |
| 212 // Input has changed. Increment the input ID so that we can discard any | 213 // Input has changed. Increment the input ID so that we can discard any |
| 213 // stale extension suggestions that may be incoming. | 214 // stale extension suggestions that may be incoming. |
| 214 if (extensions_delegate_) | 215 if (extensions_delegate_) |
| 215 extensions_delegate_->IncrementInputId(); | 216 extensions_delegate_->IncrementInputId(); |
| 216 } | 217 } |
| 217 | 218 |
| 219 if (called_due_to_focus) |
| 220 return; |
| 221 |
| 218 // Split user input into a keyword and some query input. | 222 // Split user input into a keyword and some query input. |
| 219 // | 223 // |
| 220 // We want to suggest keywords even when users have started typing URLs, on | 224 // We want to suggest keywords even when users have started typing URLs, on |
| 221 // the assumption that they might not realize they no longer need to go to a | 225 // the assumption that they might not realize they no longer need to go to a |
| 222 // site to be able to search it. So we call CleanUserInputKeyword() to strip | 226 // site to be able to search it. So we call CleanUserInputKeyword() to strip |
| 223 // any initial scheme and/or "www.". NOTE: Any heuristics or UI used to | 227 // any initial scheme and/or "www.". NOTE: Any heuristics or UI used to |
| 224 // automatically/manually create keywords will need to be in sync with | 228 // automatically/manually create keywords will need to be in sync with |
| 225 // whatever we do here! | 229 // whatever we do here! |
| 226 // | 230 // |
| 227 // TODO(pkasting): http://crbug/347744 If someday we remember usage frequency | 231 // TODO(pkasting): http://crbug/347744 If someday we remember usage frequency |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 ACMatchClassification::NONE, &match->contents_class); | 466 ACMatchClassification::NONE, &match->contents_class); |
| 463 } | 467 } |
| 464 } | 468 } |
| 465 | 469 |
| 466 TemplateURLService* KeywordProvider::GetTemplateURLService() const { | 470 TemplateURLService* KeywordProvider::GetTemplateURLService() const { |
| 467 // Make sure the model is loaded. This is cheap and quickly bails out if | 471 // Make sure the model is loaded. This is cheap and quickly bails out if |
| 468 // the model is already loaded. | 472 // the model is already loaded. |
| 469 model_->Load(); | 473 model_->Load(); |
| 470 return model_; | 474 return model_; |
| 471 } | 475 } |
| OLD | NEW |