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

Side by Side Diff: chrome/browser/autocomplete/keyword_provider.cc

Issue 6051012: Revert 70271 - Remove wstring from l10n_util. Part 3.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/autocomplete/search_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/keyword_provider.h" 5 #include "chrome/browser/autocomplete/keyword_provider.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 DCHECK(element->url()->IsValid()); 311 DCHECK(element->url()->IsValid());
312 int message_id = element->IsExtensionKeyword() ? 312 int message_id = element->IsExtensionKeyword() ?
313 IDS_EXTENSION_KEYWORD_COMMAND : IDS_KEYWORD_SEARCH; 313 IDS_EXTENSION_KEYWORD_COMMAND : IDS_KEYWORD_SEARCH;
314 if (remaining_input.empty()) { 314 if (remaining_input.empty()) {
315 // Allow extension keyword providers to accept empty string input. This is 315 // Allow extension keyword providers to accept empty string input. This is
316 // useful to allow extensions to do something in the case where no input is 316 // useful to allow extensions to do something in the case where no input is
317 // entered. 317 // entered.
318 if (element->url()->SupportsReplacement() && 318 if (element->url()->SupportsReplacement() &&
319 !element->IsExtensionKeyword()) { 319 !element->IsExtensionKeyword()) {
320 // No query input; return a generic, no-destination placeholder. 320 // No query input; return a generic, no-destination placeholder.
321 match->contents.assign(UTF16ToWideHack( 321 match->contents.assign(l10n_util::GetStringF(message_id,
322 l10n_util::GetStringFUTF16(message_id, 322 element->AdjustedShortNameForLocaleDirection(),
323 WideToUTF16Hack(element->AdjustedShortNameForLocaleDirection()), 323 l10n_util::GetString(IDS_EMPTY_KEYWORD_VALUE)));
324 l10n_util::GetStringUTF16(IDS_EMPTY_KEYWORD_VALUE))));
325 match->contents_class.push_back( 324 match->contents_class.push_back(
326 ACMatchClassification(0, ACMatchClassification::DIM)); 325 ACMatchClassification(0, ACMatchClassification::DIM));
327 } else { 326 } else {
328 // Keyword that has no replacement text (aka a shorthand for a URL). 327 // Keyword that has no replacement text (aka a shorthand for a URL).
329 match->destination_url = GURL(element->url()->url()); 328 match->destination_url = GURL(element->url()->url());
330 match->contents.assign(element->short_name()); 329 match->contents.assign(element->short_name());
331 AutocompleteMatch::ClassifyLocationInString(0, match->contents.length(), 330 AutocompleteMatch::ClassifyLocationInString(0, match->contents.length(),
332 match->contents.length(), ACMatchClassification::NONE, 331 match->contents.length(), ACMatchClassification::NONE,
333 &match->contents_class); 332 &match->contents_class);
334 } 333 }
335 } else { 334 } else {
336 // Create destination URL by escaping user input and substituting into 335 // Create destination URL by escaping user input and substituting into
337 // keyword template URL. The escaping here handles whitespace in user 336 // keyword template URL. The escaping here handles whitespace in user
338 // input, but we rely on later canonicalization functions to do more 337 // input, but we rely on later canonicalization functions to do more
339 // fixup to make the URL valid if necessary. 338 // fixup to make the URL valid if necessary.
340 DCHECK(element->url()->SupportsReplacement()); 339 DCHECK(element->url()->SupportsReplacement());
341 match->destination_url = GURL(element->url()->ReplaceSearchTerms( 340 match->destination_url = GURL(element->url()->ReplaceSearchTerms(
342 *element, remaining_input, TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, 341 *element, remaining_input, TemplateURLRef::NO_SUGGESTIONS_AVAILABLE,
343 std::wstring())); 342 std::wstring()));
344 std::vector<size_t> content_param_offsets; 343 std::vector<size_t> content_param_offsets;
345 match->contents.assign(UTF16ToWideHack( 344 match->contents.assign(l10n_util::GetStringF(message_id,
346 l10n_util::GetStringFUTF16(message_id, 345 element->short_name(),
347 WideToUTF16Hack(element->short_name()), 346 remaining_input,
348 WideToUTF16Hack(remaining_input), 347 &content_param_offsets));
349 &content_param_offsets)));
350 if (content_param_offsets.size() == 2) { 348 if (content_param_offsets.size() == 2) {
351 AutocompleteMatch::ClassifyLocationInString(content_param_offsets[1], 349 AutocompleteMatch::ClassifyLocationInString(content_param_offsets[1],
352 remaining_input.length(), match->contents.length(), 350 remaining_input.length(), match->contents.length(),
353 ACMatchClassification::NONE, &match->contents_class); 351 ACMatchClassification::NONE, &match->contents_class);
354 } else { 352 } else {
355 // See comments on an identical NOTREACHED() in search_provider.cc. 353 // See comments on an identical NOTREACHED() in search_provider.cc.
356 NOTREACHED(); 354 NOTREACHED();
357 } 355 }
358 } 356 }
359 } 357 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 // Create destination URL and popup entry content by substituting user input 413 // Create destination URL and popup entry content by substituting user input
416 // into keyword templates. 414 // into keyword templates.
417 FillInURLAndContents(remaining_input, element, &result); 415 FillInURLAndContents(remaining_input, element, &result);
418 416
419 if (supports_replacement) 417 if (supports_replacement)
420 result.template_url = element; 418 result.template_url = element;
421 result.transition = PageTransition::KEYWORD; 419 result.transition = PageTransition::KEYWORD;
422 420
423 // Create popup entry description based on the keyword name. 421 // Create popup entry description based on the keyword name.
424 if (!element->IsExtensionKeyword()) { 422 if (!element->IsExtensionKeyword()) {
425 result.description.assign(UTF16ToWideHack(l10n_util::GetStringFUTF16( 423 result.description.assign(l10n_util::GetStringF(
426 IDS_AUTOCOMPLETE_KEYWORD_DESCRIPTION, WideToUTF16Hack(keyword)))); 424 IDS_AUTOCOMPLETE_KEYWORD_DESCRIPTION, keyword));
427 string16 keyword_desc( 425 static const std::wstring kKeywordDesc(
428 l10n_util::GetStringUTF16(IDS_AUTOCOMPLETE_KEYWORD_DESCRIPTION)); 426 l10n_util::GetString(IDS_AUTOCOMPLETE_KEYWORD_DESCRIPTION));
429 AutocompleteMatch::ClassifyLocationInString( 427 AutocompleteMatch::ClassifyLocationInString(kKeywordDesc.find(L"%s"),
430 keyword_desc.find(ASCIIToUTF16("%s")), 428 prefix_length,
431 prefix_length, 429 result.description.length(),
432 result.description.length(), 430 ACMatchClassification::DIM,
433 ACMatchClassification::DIM, 431 &result.description_class);
434 &result.description_class);
435 } 432 }
436 433
437 return result; 434 return result;
438 } 435 }
439 436
440 void KeywordProvider::Observe(NotificationType type, 437 void KeywordProvider::Observe(NotificationType type,
441 const NotificationSource& source, 438 const NotificationSource& source,
442 const NotificationDetails& details) { 439 const NotificationDetails& details) {
443 TemplateURLModel* model = profile_ ? profile_->GetTemplateURLModel() : model_; 440 TemplateURLModel* model = profile_ ? profile_->GetTemplateURLModel() : model_;
444 const AutocompleteInput& input = extension_suggest_last_input_; 441 const AutocompleteInput& input = extension_suggest_last_input_;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 } 521 }
525 522
526 void KeywordProvider::MaybeEndExtensionKeywordMode() { 523 void KeywordProvider::MaybeEndExtensionKeywordMode() {
527 if (!current_keyword_extension_id_.empty()) { 524 if (!current_keyword_extension_id_.empty()) {
528 ExtensionOmniboxEventRouter::OnInputCancelled( 525 ExtensionOmniboxEventRouter::OnInputCancelled(
529 profile_, current_keyword_extension_id_); 526 profile_, current_keyword_extension_id_);
530 527
531 current_keyword_extension_id_.clear(); 528 current_keyword_extension_id_.clear();
532 } 529 }
533 } 530 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/search_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698