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

Unified Diff: chrome/browser/autocomplete/search_provider.cc

Issue 160378: Make TOOLKIT_VIEWS port use views-based Autocomplete popup.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autocomplete/search_provider.cc
===================================================================
--- chrome/browser/autocomplete/search_provider.cc (revision 21913)
+++ chrome/browser/autocomplete/search_provider.cc (working copy)
@@ -5,7 +5,6 @@
#include "chrome/browser/autocomplete/search_provider.h"
#include "app/l10n_util.h"
-#include "base/command_line.h"
#include "base/message_loop.h"
#include "base/string_util.h"
#include "chrome/browser/autocomplete/keyword_provider.h"
@@ -15,7 +14,6 @@
#include "chrome/browser/net/url_fixer_upper.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/search_engines/template_url_model.h"
-#include "chrome/common/chrome_switches.h"
#include "chrome/common/json_value_serializer.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/pref_service.h"
@@ -670,75 +668,50 @@
std::vector<size_t> content_param_offsets;
const TemplateURL& provider = is_keyword ? providers_.keyword_provider() :
providers_.default_provider();
- if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableOmnibox2)) {
- match.contents.assign(l10n_util::GetStringF(
- IDS_AUTOCOMPLETE_SEARCH_CONTENTS,
- provider.short_name(),
- query_string,
- &content_param_offsets));
- if (content_param_offsets.size() == 2) {
- AutocompleteMatch::ClassifyLocationInString(content_param_offsets[1],
- query_string.length(),
- match.contents.length(),
- ACMatchClassification::NONE,
- &match.contents_class);
+ // We do intra-string highlighting for suggestions - the suggested segment
+ // will be highlighted, e.g. for input_text = "you" the suggestion may be
+ // "youtube", so we'll bold the "tube" section: you*tube*.
+ if (input_text != query_string) {
+ match.contents.assign(query_string);
+ size_t input_position = match.contents.find(input_text);
+ if (input_position == std::wstring::npos) {
+ // The input text is not a substring of the query string, e.g. input
+ // text is "slasdot" and the query string is "slashdot", so we bold the
+ // whole thing.
+ match.contents_class.push_back(
+ ACMatchClassification(0, ACMatchClassification::MATCH));
} else {
- // |content_param_offsets| should only not be 2 if:
- // (a) A translator screws up
- // (b) The strings have been changed and we haven't been rebuilt properly
- // (c) Some sort of crazy installer error/DLL version mismatch problem
- // that gets the wrong data out of the locale DLL?
- // While none of these are supposed to happen, we've seen this get hit in
- // the wild, so avoid the vector access in the conditional arm above,
- // which will crash.
- NOTREACHED();
- }
- } else {
- // We do intra-string highlighting for suggestions - the suggested segment
- // will be highlighted, e.g. for input_text = "you" the suggestion may be
- // "youtube", so we'll bold the "tube" section: you*tube*.
- if (input_text != query_string) {
- match.contents.assign(query_string);
- size_t input_position = match.contents.find(input_text);
- if (input_position == std::wstring::npos) {
- // The input text is not a substring of the query string, e.g. input
- // text is "slasdot" and the query string is "slashdot", so we bold the
- // whole thing.
+ // TODO(beng): ACMatchClassification::MATCH now seems to just mean
+ // "bold" this. Consider modifying the terminology.
+ // We don't iterate over the string here annotating all matches because
+ // it looks odd to have every occurrence of a substring that may be as
+ // short as a single character highlighted in a query suggestion result,
+ // e.g. for input text "s" and query string "southwest airlines", it
+ // looks odd if both the first and last s are highlighted.
+ if (input_position != 0) {
match.contents_class.push_back(
- ACMatchClassification(0, ACMatchClassification::MATCH));
- } else {
- // TODO(beng): ACMatchClassification::MATCH now seems to just mean
- // "bold" this. Consider modifying the terminology.
- // We don't iterate over the string here annotating all matches because
- // it looks odd to have every occurrence of a substring that may be as
- // short as a single character highlighted in a query suggestion result,
- // e.g. for input text "s" and query string "southwest airlines", it
- // looks odd if both the first and last s are highlighted.
- if (input_position != 0) {
- match.contents_class.push_back(
- ACMatchClassification(0, ACMatchClassification::NONE));
- }
- match.contents_class.push_back(
- ACMatchClassification(input_position, ACMatchClassification::DIM));
- size_t next_fragment_position = input_position + input_text.length();
- if (next_fragment_position < query_string.length()) {
- match.contents_class.push_back(
- ACMatchClassification(next_fragment_position,
- ACMatchClassification::NONE));
- }
+ ACMatchClassification(0, ACMatchClassification::NONE));
}
- } else {
- // Otherwise, we're dealing with the "default search" result which has no
- // completion, but has the search provider name as the description.
- match.contents.assign(query_string);
match.contents_class.push_back(
- ACMatchClassification(0, ACMatchClassification::NONE));
- match.description.assign(l10n_util::GetStringF(
- IDS_AUTOCOMPLETE_SEARCH_DESCRIPTION,
- provider.short_name()));
- match.description_class.push_back(
- ACMatchClassification(0, ACMatchClassification::DIM));
+ ACMatchClassification(input_position, ACMatchClassification::DIM));
+ size_t next_fragment_position = input_position + input_text.length();
+ if (next_fragment_position < query_string.length()) {
+ match.contents_class.push_back(
+ ACMatchClassification(next_fragment_position,
+ ACMatchClassification::NONE));
+ }
}
+ } else {
+ // Otherwise, we're dealing with the "default search" result which has no
+ // completion, but has the search provider name as the description.
+ match.contents.assign(query_string);
+ match.contents_class.push_back(
+ ACMatchClassification(0, ACMatchClassification::NONE));
+ match.description.assign(l10n_util::GetStringF(
+ IDS_AUTOCOMPLETE_SEARCH_DESCRIPTION,
+ provider.short_name()));
+ match.description_class.push_back(
+ ACMatchClassification(0, ACMatchClassification::DIM));
}
// When the user forced a query, we need to make sure all the fill_into_edit

Powered by Google App Engine
This is Rietveld 408576698