| Index: chrome/browser/autocomplete/search_provider.cc
|
| ===================================================================
|
| --- chrome/browser/autocomplete/search_provider.cc (revision 72138)
|
| +++ chrome/browser/autocomplete/search_provider.cc (working copy)
|
| @@ -63,8 +63,8 @@
|
| instant_finalized_(false) {
|
| }
|
|
|
| -void SearchProvider::FinalizeInstantQuery(const std::wstring& input_text,
|
| - const std::wstring& suggest_text) {
|
| +void SearchProvider::FinalizeInstantQuery(const string16& input_text,
|
| + const string16& suggest_text) {
|
| if (done_ || instant_finalized_)
|
| return;
|
|
|
| @@ -80,11 +80,11 @@
|
|
|
| default_provider_suggest_text_ = suggest_text;
|
|
|
| - std::wstring adjusted_input_text(input_text);
|
| + string16 adjusted_input_text(input_text);
|
| AutocompleteInput::RemoveForcedQueryStringIfNecessary(input_.type(),
|
| &adjusted_input_text);
|
|
|
| - const std::wstring text = adjusted_input_text + suggest_text;
|
| + const string16 text = adjusted_input_text + suggest_text;
|
| // Remove any matches that are identical to |text|. We don't use the
|
| // destination_url for comparison as it varies depending upon the index passed
|
| // to TemplateURL::ReplaceSearchTerms.
|
| @@ -180,8 +180,7 @@
|
| if (default_provider) {
|
| AutocompleteMatch match;
|
| match.provider = this;
|
| - match.contents.assign(UTF16ToWideHack(
|
| - l10n_util::GetStringUTF16(IDS_EMPTY_KEYWORD_VALUE)));
|
| + match.contents.assign(l10n_util::GetStringUTF16(IDS_EMPTY_KEYWORD_VALUE));
|
| match.contents_class.push_back(
|
| ACMatchClassification(0, ACMatchClassification::NONE));
|
| matches_.push_back(match);
|
| @@ -244,12 +243,12 @@
|
| if (response_headers) {
|
| std::string charset;
|
| if (response_headers->GetCharset(&charset)) {
|
| - std::wstring wide_data;
|
| + string16 data_16;
|
| // TODO(jungshik): Switch to CodePageToUTF8 after it's added.
|
| - if (base::CodepageToWide(data, charset.c_str(),
|
| - base::OnStringConversionError::FAIL,
|
| - &wide_data))
|
| - json_data = WideToUTF8(wide_data);
|
| + if (base::CodepageToUTF16(data, charset.c_str(),
|
| + base::OnStringConversionError::FAIL,
|
| + &data_16))
|
| + json_data = UTF16ToUTF8(data_16);
|
| }
|
| }
|
|
|
| @@ -261,7 +260,7 @@
|
| JSONStringValueSerializer deserializer(json_data);
|
| deserializer.set_allow_trailing_comma(true);
|
| scoped_ptr<Value> root_val(deserializer.Deserialize(NULL, NULL));
|
| - const std::wstring& input_text =
|
| + const string16& input_text =
|
| is_keyword_results ? keyword_input_text_ : input_.text();
|
| have_suggest_results_ =
|
| root_val.get() &&
|
| @@ -296,14 +295,14 @@
|
| if (providers_.valid_keyword_provider()) {
|
| url_db->GetMostRecentKeywordSearchTerms(
|
| providers_.keyword_provider().id(),
|
| - WideToUTF16(keyword_input_text_),
|
| + keyword_input_text_,
|
| static_cast<int>(kMaxMatches),
|
| &keyword_history_results_);
|
| }
|
| if (providers_.valid_default_provider()) {
|
| url_db->GetMostRecentKeywordSearchTerms(
|
| providers_.default_provider().id(),
|
| - WideToUTF16(input_.text()),
|
| + input_.text(),
|
| static_cast<int>(kMaxMatches),
|
| &default_history_results_);
|
| }
|
| @@ -373,8 +372,9 @@
|
| // probably a URL that's being entered and happens to currently be invalid --
|
| // in which case we again want to run our checks below. Other QUERY cases are
|
| // less likely to be URLs and thus we assume we're OK.
|
| - if ((input_.scheme() != L"http") && (input_.scheme() != L"https") &&
|
| - (input_.scheme() != L"ftp"))
|
| + if (!LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpScheme) &&
|
| + !LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsScheme) &&
|
| + !LowerCaseEqualsASCII(input_.scheme(), chrome::kFtpScheme))
|
| return (input_.type() == AutocompleteInput::QUERY);
|
|
|
| // Don't send URLs with usernames, queries or refs. Some of these are
|
| @@ -391,7 +391,8 @@
|
| // Don't send anything for https except the hostname. Hostnames are OK
|
| // because they are visible when the TCP connection is established, but the
|
| // specific path may reveal private information.
|
| - if ((input_.scheme() == L"https") && parts.path.is_nonempty())
|
| + if (LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsScheme) &&
|
| + parts.path.is_nonempty())
|
| return false;
|
|
|
| return true;
|
| @@ -412,12 +413,12 @@
|
|
|
| URLFetcher* SearchProvider::CreateSuggestFetcher(int id,
|
| const TemplateURL& provider,
|
| - const std::wstring& text) {
|
| + const string16& text) {
|
| const TemplateURLRef* const suggestions_url = provider.suggestions_url();
|
| DCHECK(suggestions_url->SupportsReplacement());
|
| URLFetcher* fetcher = URLFetcher::Create(id,
|
| GURL(suggestions_url->ReplaceSearchTerms(
|
| - provider, WideToUTF16Hack(text),
|
| + provider, text,
|
| TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())),
|
| URLFetcher::GET, this);
|
| fetcher->set_request_context(profile_->GetRequestContext());
|
| @@ -427,7 +428,7 @@
|
|
|
| bool SearchProvider::ParseSuggestResults(Value* root_val,
|
| bool is_keyword,
|
| - const std::wstring& input_text,
|
| + const string16& input_text,
|
| SuggestResults* suggest_results) {
|
| if (!root_val->IsType(Value::TYPE_LIST))
|
| return false;
|
| @@ -438,7 +439,7 @@
|
| Value* result_val;
|
| if ((root_list->GetSize() < 2) || !root_list->Get(0, &query_val) ||
|
| !query_val->GetAsString(&query_str) ||
|
| - (query_str != WideToUTF16Hack(input_text)) ||
|
| + (query_str != input_text) ||
|
| !root_list->Get(1, &result_val) || !result_val->IsType(Value::TYPE_LIST))
|
| return false;
|
|
|
| @@ -503,15 +504,14 @@
|
| GURL result_url(URLFixerUpper::FixupURL(UTF16ToUTF8(suggestion_str),
|
| std::string()));
|
| if (result_url.is_valid()) {
|
| - navigation_results.push_back(NavigationResult(result_url,
|
| - UTF16ToWideHack(site_name)));
|
| + navigation_results.push_back(NavigationResult(result_url, site_name));
|
| }
|
| }
|
| } else {
|
| // TODO(kochi): Currently we treat a calculator result as a query, but it
|
| // is better to have better presentation for caluculator results.
|
| if (suggest_results->size() < kMaxMatches)
|
| - suggest_results->push_back(UTF16ToWideHack(suggestion_str));
|
| + suggest_results->push_back(suggestion_str);
|
| }
|
| }
|
|
|
| @@ -612,7 +612,7 @@
|
| if (i != results.begin() && relevance >= last_relevance)
|
| relevance = last_relevance - 1;
|
| last_relevance = relevance;
|
| - AddMatchToMap(UTF16ToWide(i->term),
|
| + AddMatchToMap(i->term,
|
| is_keyword ? keyword_input_text_ : input_.text(),
|
| relevance,
|
| AutocompleteMatch::SEARCH_HISTORY, did_not_accept_suggestion,
|
| @@ -717,8 +717,8 @@
|
| static_cast<int>(num_results - 1 - result_number);
|
| }
|
|
|
| -void SearchProvider::AddMatchToMap(const std::wstring& query_string,
|
| - const std::wstring& input_text,
|
| +void SearchProvider::AddMatchToMap(const string16& query_string,
|
| + const string16& input_text,
|
| int relevance,
|
| AutocompleteMatch::Type type,
|
| int accepted_suggestion,
|
| @@ -735,7 +735,7 @@
|
| // "youtube", so we'll bold the "tube" section: you*tube*.
|
| if (input_text != query_string) {
|
| size_t input_position = match.contents.find(input_text);
|
| - if (input_position == std::wstring::npos) {
|
| + if (input_position == string16::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.
|
| @@ -774,12 +774,12 @@
|
| // suggestion, non-Search results will suddenly appear.
|
| size_t search_start = 0;
|
| if (input_.type() == AutocompleteInput::FORCED_QUERY) {
|
| - match.fill_into_edit.assign(L"?");
|
| + match.fill_into_edit.assign(ASCIIToUTF16("?"));
|
| ++search_start;
|
| }
|
| if (is_keyword) {
|
| - match.fill_into_edit.append(UTF16ToWideHack(
|
| - providers_.keyword_provider().keyword() + char16(' ')));
|
| + match.fill_into_edit.append(
|
| + providers_.keyword_provider().keyword() + char16(' '));
|
| match.template_url = &providers_.keyword_provider();
|
| }
|
| match.fill_into_edit.append(query_string);
|
| @@ -793,9 +793,9 @@
|
| DCHECK(search_url->SupportsReplacement());
|
| match.destination_url =
|
| GURL(search_url->ReplaceSearchTerms(provider,
|
| - WideToUTF16Hack(query_string),
|
| + query_string,
|
| accepted_suggestion,
|
| - WideToUTF16Hack(input_text)));
|
| + input_text));
|
|
|
| // Search results don't look like URLs.
|
| match.transition =
|
| @@ -805,8 +805,8 @@
|
| // |map|, replace it if |match| is more relevant.
|
| // NOTE: Keep this ToLower() call in sync with url_database.cc.
|
| const std::pair<MatchMap::iterator, bool> i = map->insert(
|
| - std::pair<std::wstring, AutocompleteMatch>(
|
| - UTF16ToWide(l10n_util::ToLower(WideToUTF16(query_string))), match));
|
| + std::pair<string16, AutocompleteMatch>(
|
| + l10n_util::ToLower(query_string), match));
|
| // NOTE: We purposefully do a direct relevance comparison here instead of
|
| // using AutocompleteMatch::MoreRelevant(), so that we'll prefer "items added
|
| // first" rather than "items alphabetically first" when the scores are equal.
|
| @@ -823,7 +823,7 @@
|
| const NavigationResult& navigation,
|
| int relevance,
|
| bool is_keyword) {
|
| - const std::wstring& input_text =
|
| + const string16& input_text =
|
| is_keyword ? keyword_input_text_ : input_.text();
|
| AutocompleteMatch match(this, relevance, false,
|
| AutocompleteMatch::NAVSUGGEST);
|
| @@ -843,7 +843,7 @@
|
| // values preserve that property. Otherwise, if the user starts editing a
|
| // suggestion, non-Search results will suddenly appear.
|
| if (input_.type() == AutocompleteInput::FORCED_QUERY)
|
| - match.fill_into_edit.assign(L"?");
|
| + match.fill_into_edit.assign(ASCIIToUTF16("?"));
|
| match.fill_into_edit.append(
|
| AutocompleteInput::FormattedStringWithEquivalentMeaning(navigation.url,
|
| match.contents));
|
| @@ -870,11 +870,10 @@
|
| case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED:
|
| case AutocompleteMatch::SEARCH_HISTORY:
|
| case AutocompleteMatch::SEARCH_SUGGEST:
|
| - match.description.assign(
|
| - UTF16ToWideHack(l10n_util::GetStringFUTF16(
|
| - IDS_AUTOCOMPLETE_SEARCH_DESCRIPTION,
|
| - providers_.default_provider().
|
| - AdjustedShortNameForLocaleDirection())));
|
| + match.description.assign(l10n_util::GetStringFUTF16(
|
| + IDS_AUTOCOMPLETE_SEARCH_DESCRIPTION,
|
| + providers_.default_provider().
|
| + AdjustedShortNameForLocaleDirection()));
|
| match.description_class.push_back(
|
| ACMatchClassification(0, ACMatchClassification::DIM));
|
| // Only the first search match gets a description.
|
|
|