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

Side by Side Diff: chrome/browser/search_engines/template_url.cc

Issue 6291003: Revert 71485 - Remove wstring from TemplateURL and friends.... (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
OLDNEW
1 // Copyright (c) 2011 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/search_engines/template_url.h" 5 #include "chrome/browser/search_engines/template_url.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/i18n/icu_string_conversions.h" 8 #include "base/i18n/icu_string_conversions.h"
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/string_number_conversions.h" 11 #include "base/string_number_conversions.h"
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 } 255 }
256 } 256 }
257 257
258 // static 258 // static
259 void TemplateURLRef::SetGoogleBaseURL(std::string* google_base_url) { 259 void TemplateURLRef::SetGoogleBaseURL(std::string* google_base_url) {
260 UIThreadSearchTermsData::SetGoogleBaseURL(google_base_url); 260 UIThreadSearchTermsData::SetGoogleBaseURL(google_base_url);
261 } 261 }
262 262
263 std::string TemplateURLRef::ReplaceSearchTerms( 263 std::string TemplateURLRef::ReplaceSearchTerms(
264 const TemplateURL& host, 264 const TemplateURL& host,
265 const string16& terms, 265 const std::wstring& terms,
266 int accepted_suggestion, 266 int accepted_suggestion,
267 const string16& original_query_for_suggestion) const { 267 const std::wstring& original_query_for_suggestion) const {
268 UIThreadSearchTermsData search_terms_data; 268 UIThreadSearchTermsData search_terms_data;
269 return ReplaceSearchTermsUsingTermsData(host, 269 return ReplaceSearchTermsUsingTermsData(host,
270 terms, 270 terms,
271 accepted_suggestion, 271 accepted_suggestion,
272 original_query_for_suggestion, 272 original_query_for_suggestion,
273 search_terms_data); 273 search_terms_data);
274 } 274 }
275 275
276 std::string TemplateURLRef::ReplaceSearchTermsUsingTermsData( 276 std::string TemplateURLRef::ReplaceSearchTermsUsingTermsData(
277 const TemplateURL& host, 277 const TemplateURL& host,
278 const string16& terms, 278 const std::wstring& terms,
279 int accepted_suggestion, 279 int accepted_suggestion,
280 const string16& original_query_for_suggestion, 280 const std::wstring& original_query_for_suggestion,
281 const SearchTermsData& search_terms_data) const { 281 const SearchTermsData& search_terms_data) const {
282 ParseIfNecessaryUsingTermsData(search_terms_data); 282 ParseIfNecessaryUsingTermsData(search_terms_data);
283 if (!valid_) 283 if (!valid_)
284 return std::string(); 284 return std::string();
285 285
286 if (replacements_.empty()) 286 if (replacements_.empty())
287 return parsed_url_; 287 return parsed_url_;
288 288
289 // Determine if the search terms are in the query or before. We're escaping 289 // Determine if the search terms are in the query or before. We're escaping
290 // space as '+' in the former case and as '%20' in the latter case. 290 // space as '+' in the former case and as '%20' in the latter case.
291 bool is_in_query = true; 291 bool is_in_query = true;
292 for (Replacements::iterator i = replacements_.begin(); 292 for (Replacements::iterator i = replacements_.begin();
293 i != replacements_.end(); ++i) { 293 i != replacements_.end(); ++i) {
294 if (i->type == SEARCH_TERMS) { 294 if (i->type == SEARCH_TERMS) {
295 string16::size_type query_start = parsed_url_.find('?'); 295 std::wstring::size_type query_start = parsed_url_.find('?');
296 is_in_query = query_start != string16::npos && 296 is_in_query = query_start != std::wstring::npos &&
297 (static_cast<string16::size_type>(i->index) > query_start); 297 (static_cast<std::wstring::size_type>(i->index) > query_start);
298 break; 298 break;
299 } 299 }
300 } 300 }
301 301
302 string16 encoded_terms; 302 string16 encoded_terms;
303 string16 encoded_original_query; 303 string16 encoded_original_query;
304 std::string input_encoding; 304 std::string input_encoding;
305 // If the search terms are in query - escape them respecting the encoding. 305 // If the search terms are in query - escape them respecting the encoding.
306 if (is_in_query) { 306 if (is_in_query) {
307 // Encode the search terms so that we know the encoding. 307 // Encode the search terms so that we know the encoding.
308 const std::vector<std::string>& encodings = host.input_encodings(); 308 const std::vector<std::string>& encodings = host.input_encodings();
309 for (size_t i = 0; i < encodings.size(); ++i) { 309 for (size_t i = 0; i < encodings.size(); ++i) {
310 if (EscapeQueryParamValue(terms, 310 if (EscapeQueryParamValue(WideToUTF16Hack(terms),
311 encodings[i].c_str(), true, 311 encodings[i].c_str(), true,
312 &encoded_terms)) { 312 &encoded_terms)) {
313 if (!original_query_for_suggestion.empty()) { 313 if (!original_query_for_suggestion.empty()) {
314 EscapeQueryParamValue(original_query_for_suggestion, 314 EscapeQueryParamValue(WideToUTF16Hack(original_query_for_suggestion),
315 encodings[i].c_str(), 315 encodings[i].c_str(),
316 true, 316 true,
317 &encoded_original_query); 317 &encoded_original_query);
318 } 318 }
319 input_encoding = encodings[i]; 319 input_encoding = encodings[i];
320 break; 320 break;
321 } 321 }
322 } 322 }
323 if (input_encoding.empty()) { 323 if (input_encoding.empty()) {
324 encoded_terms = EscapeQueryParamValueUTF8(terms, true); 324 encoded_terms = WideToUTF16Hack(
325 EscapeQueryParamValueUTF8(terms, true));
325 if (!original_query_for_suggestion.empty()) { 326 if (!original_query_for_suggestion.empty()) {
326 encoded_original_query = 327 encoded_original_query =
327 EscapeQueryParamValueUTF8(original_query_for_suggestion, true); 328 WideToUTF16Hack(EscapeQueryParamValueUTF8(
329 original_query_for_suggestion, true));
328 } 330 }
329 input_encoding = "UTF-8"; 331 input_encoding = "UTF-8";
330 } 332 }
331 } else { 333 } else {
332 encoded_terms = UTF8ToUTF16(EscapePath(UTF16ToUTF8(terms))); 334 encoded_terms = WideToUTF16Hack(UTF8ToWide(EscapePath(WideToUTF8(terms))));
333 input_encoding = "UTF-8"; 335 input_encoding = "UTF-8";
334 } 336 }
335 337
336 std::string url = parsed_url_; 338 std::string url = parsed_url_;
337 339
338 // replacements_ is ordered in ascending order, as such we need to iterate 340 // replacements_ is ordered in ascending order, as such we need to iterate
339 // from the back. 341 // from the back.
340 for (Replacements::reverse_iterator i = replacements_.rbegin(); 342 for (Replacements::reverse_iterator i = replacements_.rbegin();
341 i != replacements_.rend(); ++i) { 343 i != replacements_.rend(); ++i) {
342 switch (i->type) { 344 switch (i->type) {
(...skipping 21 matching lines...) Expand all
364 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) + 366 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) +
365 "&"); 367 "&");
366 break; 368 break;
367 369
368 case GOOGLE_RLZ: { 370 case GOOGLE_RLZ: {
369 // On platforms that don't have RLZ, we still want this branch 371 // On platforms that don't have RLZ, we still want this branch
370 // to happen so that we replace the RLZ template with the 372 // to happen so that we replace the RLZ template with the
371 // empty string. (If we don't handle this case, we hit a 373 // empty string. (If we don't handle this case, we hit a
372 // NOTREACHED below.) 374 // NOTREACHED below.)
373 #if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD) 375 #if defined(OS_WIN) && defined(GOOGLE_CHROME_BUILD)
374 string16 rlz_string = search_terms_data.GetRlzParameterValue(); 376 std::wstring rlz_string = search_terms_data.GetRlzParameterValue();
375 if (!rlz_string.empty()) { 377 if (!rlz_string.empty()) {
376 rlz_string = L"rlz=" + rlz_string + L"&"; 378 rlz_string = L"rlz=" + rlz_string + L"&";
377 url.insert(i->index, UTF16ToUTF8(rlz_string)); 379 url.insert(i->index, WideToUTF8(rlz_string));
378 } 380 }
379 #endif 381 #endif
380 break; 382 break;
381 } 383 }
382 384
383 case GOOGLE_UNESCAPED_SEARCH_TERMS: { 385 case GOOGLE_UNESCAPED_SEARCH_TERMS: {
384 std::string unescaped_terms; 386 std::string unescaped_terms;
385 base::UTF16ToCodepage(terms, input_encoding.c_str(), 387 base::WideToCodepage(terms, input_encoding.c_str(),
386 base::OnStringConversionError::SKIP, 388 base::OnStringConversionError::SKIP,
387 &unescaped_terms); 389 &unescaped_terms);
388 url.insert(i->index, std::string(unescaped_terms.begin(), 390 url.insert(i->index, std::string(unescaped_terms.begin(),
389 unescaped_terms.end())); 391 unescaped_terms.end()));
390 break; 392 break;
391 } 393 }
392 394
393 case LANGUAGE: 395 case LANGUAGE:
394 url.insert(i->index, search_terms_data.GetApplicationLocale()); 396 url.insert(i->index, search_terms_data.GetApplicationLocale());
395 break; 397 break;
396 398
397 case SEARCH_TERMS: 399 case SEARCH_TERMS:
(...skipping 24 matching lines...) Expand all
422 UIThreadSearchTermsData search_terms_data; 424 UIThreadSearchTermsData search_terms_data;
423 return IsValidUsingTermsData(search_terms_data); 425 return IsValidUsingTermsData(search_terms_data);
424 } 426 }
425 427
426 bool TemplateURLRef::IsValidUsingTermsData( 428 bool TemplateURLRef::IsValidUsingTermsData(
427 const SearchTermsData& search_terms_data) const { 429 const SearchTermsData& search_terms_data) const {
428 ParseIfNecessaryUsingTermsData(search_terms_data); 430 ParseIfNecessaryUsingTermsData(search_terms_data);
429 return valid_; 431 return valid_;
430 } 432 }
431 433
432 string16 TemplateURLRef::DisplayURL() const { 434 std::wstring TemplateURLRef::DisplayURL() const {
433 ParseIfNecessary(); 435 ParseIfNecessary();
434 if (!valid_ || replacements_.empty()) 436 if (!valid_ || replacements_.empty())
435 return UTF8ToUTF16(url_); 437 return UTF8ToWide(url_);
436 438
437 string16 result = UTF8ToUTF16(url_); 439 string16 result = UTF8ToUTF16(url_);
438 ReplaceSubstringsAfterOffset(&result, 0, 440 ReplaceSubstringsAfterOffset(&result, 0,
439 ASCIIToUTF16(kSearchTermsParameterFull), 441 ASCIIToUTF16(kSearchTermsParameterFull),
440 ASCIIToUTF16(kDisplaySearchTerms)); 442 ASCIIToUTF16(kDisplaySearchTerms));
441 443
442 ReplaceSubstringsAfterOffset( 444 ReplaceSubstringsAfterOffset(
443 &result, 0, 445 &result, 0,
444 ASCIIToUTF16(kGoogleUnescapedSearchTermsParameterFull), 446 ASCIIToUTF16(kGoogleUnescapedSearchTermsParameterFull),
445 ASCIIToUTF16(kDisplayUnescapedSearchTerms)); 447 ASCIIToUTF16(kDisplayUnescapedSearchTerms));
446 448
447 return result; 449 return UTF16ToWideHack(result);
448 } 450 }
449 451
450 // static 452 // static
451 std::string TemplateURLRef::DisplayURLToURLRef( 453 std::string TemplateURLRef::DisplayURLToURLRef(
452 const string16& display_url) { 454 const std::wstring& display_url) {
453 string16 result = display_url; 455 string16 result = WideToUTF16Hack(display_url);
454 ReplaceSubstringsAfterOffset(&result, 0, ASCIIToUTF16(kDisplaySearchTerms), 456 ReplaceSubstringsAfterOffset(&result, 0, ASCIIToUTF16(kDisplaySearchTerms),
455 ASCIIToUTF16(kSearchTermsParameterFull)); 457 ASCIIToUTF16(kSearchTermsParameterFull));
456 ReplaceSubstringsAfterOffset( 458 ReplaceSubstringsAfterOffset(
457 &result, 0, 459 &result, 0,
458 ASCIIToUTF16(kDisplayUnescapedSearchTerms), 460 ASCIIToUTF16(kDisplayUnescapedSearchTerms),
459 ASCIIToUTF16(kGoogleUnescapedSearchTermsParameterFull)); 461 ASCIIToUTF16(kGoogleUnescapedSearchTermsParameterFull));
460 return UTF16ToUTF8(result); 462 return UTF16ToUTF8(result);
461 } 463 }
462 464
463 const std::string& TemplateURLRef::GetHost() const { 465 const std::string& TemplateURLRef::GetHost() const {
464 ParseIfNecessary(); 466 ParseIfNecessary();
465 return host_; 467 return host_;
466 } 468 }
467 469
468 const std::string& TemplateURLRef::GetPath() const { 470 const std::string& TemplateURLRef::GetPath() const {
469 ParseIfNecessary(); 471 ParseIfNecessary();
470 return path_; 472 return path_;
471 } 473 }
472 474
473 const std::string& TemplateURLRef::GetSearchTermKey() const { 475 const std::string& TemplateURLRef::GetSearchTermKey() const {
474 ParseIfNecessary(); 476 ParseIfNecessary();
475 return search_term_key_; 477 return search_term_key_;
476 } 478 }
477 479
478 string16 TemplateURLRef::SearchTermToString16(const TemplateURL& host, 480 std::wstring TemplateURLRef::SearchTermToWide(const TemplateURL& host,
479 const std::string& term) const { 481 const std::string& term) const {
480 const std::vector<std::string>& encodings = host.input_encodings(); 482 const std::vector<std::string>& encodings = host.input_encodings();
481 string16 result; 483 std::wstring result;
482 484
483 std::string unescaped = 485 std::string unescaped =
484 UnescapeURLComponent(term, UnescapeRule::REPLACE_PLUS_WITH_SPACE | 486 UnescapeURLComponent(term, UnescapeRule::REPLACE_PLUS_WITH_SPACE |
485 UnescapeRule::URL_SPECIAL_CHARS); 487 UnescapeRule::URL_SPECIAL_CHARS);
486 for (size_t i = 0; i < encodings.size(); ++i) { 488 for (size_t i = 0; i < encodings.size(); ++i) {
487 if (base::CodepageToUTF16(unescaped, encodings[i].c_str(), 489 if (base::CodepageToWide(unescaped, encodings[i].c_str(),
488 base::OnStringConversionError::FAIL, &result)) 490 base::OnStringConversionError::FAIL, &result))
489 return result; 491 return result;
490 } 492 }
491 493
492 // Always fall back on UTF-8 if it works. 494 // Always fall back on UTF-8 if it works.
493 if (base::CodepageToUTF16(unescaped, base::kCodepageUTF8, 495 if (base::CodepageToWide(unescaped, base::kCodepageUTF8,
494 base::OnStringConversionError::FAIL, &result)) 496 base::OnStringConversionError::FAIL, &result))
495 return result; 497 return result;
496 498
497 // When nothing worked, just use the escaped text. We have no idea what the 499 // When nothing worked, just use the escaped text. We have no idea what the
498 // encoding is. We need to substitute spaces for pluses ourselves since we're 500 // encoding is. We need to substitute spaces for pluses ourselves since we're
499 // not sending it through an unescaper. 501 // not sending it through an unescaper.
500 result = UTF8ToUTF16(term); 502 result = UTF8ToWide(term);
501 std::replace(result.begin(), result.end(), '+', ' '); 503 std::replace(result.begin(), result.end(), '+', ' ');
502 return result; 504 return result;
503 } 505 }
504 506
505 bool TemplateURLRef::HasGoogleBaseURLs() const { 507 bool TemplateURLRef::HasGoogleBaseURLs() const {
506 ParseIfNecessary(); 508 ParseIfNecessary();
507 for (size_t i = 0; i < replacements_.size(); ++i) { 509 for (size_t i = 0; i < replacements_.size(); ++i) {
508 if ((replacements_[i].type == GOOGLE_BASE_URL) || 510 if ((replacements_[i].type == GOOGLE_BASE_URL) ||
509 (replacements_[i].type == GOOGLE_BASE_SUGGEST_URL)) 511 (replacements_[i].type == GOOGLE_BASE_SUGGEST_URL))
510 return true; 512 return true;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 created_by_policy_(false), 570 created_by_policy_(false),
569 usage_count_(0), 571 usage_count_(0),
570 search_engine_type_(SEARCH_ENGINE_OTHER), 572 search_engine_type_(SEARCH_ENGINE_OTHER),
571 logo_id_(kNoSearchEngineLogo), 573 logo_id_(kNoSearchEngineLogo),
572 prepopulate_id_(0) { 574 prepopulate_id_(0) {
573 } 575 }
574 576
575 TemplateURL::~TemplateURL() { 577 TemplateURL::~TemplateURL() {
576 } 578 }
577 579
578 string16 TemplateURL::AdjustedShortNameForLocaleDirection() const { 580 std::wstring TemplateURL::AdjustedShortNameForLocaleDirection() const {
579 string16 bidi_safe_short_name = short_name_; 581 std::wstring bidi_safe_short_name = short_name_;
580 base::i18n::AdjustStringForLocaleDirection(&bidi_safe_short_name); 582 base::i18n::AdjustStringForLocaleDirection(&bidi_safe_short_name);
581 return bidi_safe_short_name; 583 return bidi_safe_short_name;
582 } 584 }
583 585
584 void TemplateURL::SetSuggestionsURL(const std::string& suggestions_url, 586 void TemplateURL::SetSuggestionsURL(const std::string& suggestions_url,
585 int index_offset, 587 int index_offset,
586 int page_offset) { 588 int page_offset) {
587 suggestions_url_.Set(suggestions_url, index_offset, page_offset); 589 suggestions_url_.Set(suggestions_url, index_offset, page_offset);
588 } 590 }
589 591
590 void TemplateURL::SetURL(const std::string& url, 592 void TemplateURL::SetURL(const std::string& url,
591 int index_offset, 593 int index_offset,
592 int page_offset) { 594 int page_offset) {
593 url_.Set(url, index_offset, page_offset); 595 url_.Set(url, index_offset, page_offset);
594 } 596 }
595 597
596 void TemplateURL::SetInstantURL(const std::string& url, 598 void TemplateURL::SetInstantURL(const std::string& url,
597 int index_offset, 599 int index_offset,
598 int page_offset) { 600 int page_offset) {
599 instant_url_.Set(url, index_offset, page_offset); 601 instant_url_.Set(url, index_offset, page_offset);
600 } 602 }
601 603
602 void TemplateURL::set_keyword(const string16& keyword) { 604 void TemplateURL::set_keyword(const std::wstring& keyword) {
603 // Case sensitive keyword matching is confusing. As such, we force all 605 // Case sensitive keyword matching is confusing. As such, we force all
604 // keywords to be lower case. 606 // keywords to be lower case.
605 keyword_ = l10n_util::ToLower(keyword); 607 keyword_ = UTF16ToWide(l10n_util::ToLower(WideToUTF16(keyword)));
606 autogenerate_keyword_ = false; 608 autogenerate_keyword_ = false;
607 } 609 }
608 610
609 string16 TemplateURL::keyword() const { 611 const std::wstring& TemplateURL::keyword() const {
610 EnsureKeyword(); 612 EnsureKeyword();
611 return keyword_; 613 return keyword_;
612 } 614 }
613 615
614 void TemplateURL::EnsureKeyword() const { 616 void TemplateURL::EnsureKeyword() const {
615 if (autogenerate_keyword_ && !keyword_generated_) { 617 if (autogenerate_keyword_ && !keyword_generated_) {
616 // Generate a keyword and cache it. 618 // Generate a keyword and cache it.
617 keyword_ = TemplateURLModel::GenerateKeyword( 619 keyword_ = TemplateURLModel::GenerateKeyword(
618 TemplateURLModel::GenerateSearchURL(this).GetWithEmptyPath(), true); 620 TemplateURLModel::GenerateSearchURL(this).GetWithEmptyPath(), true);
619 keyword_generated_ = true; 621 keyword_generated_ = true;
620 } 622 }
621 } 623 }
622 624
623 bool TemplateURL::ShowInDefaultList() const { 625 bool TemplateURL::ShowInDefaultList() const {
624 return show_in_default_list() && url() && url()->SupportsReplacement(); 626 return show_in_default_list() && url() && url()->SupportsReplacement();
625 } 627 }
626 628
627 void TemplateURL::SetFavIconURL(const GURL& url) { 629 void TemplateURL::SetFavIconURL(const GURL& url) {
628 for (std::vector<ImageRef>::iterator i = image_refs_.begin(); 630 for (std::vector<ImageRef>::iterator i = image_refs_.begin();
629 i != image_refs_.end(); ++i) { 631 i != image_refs_.end(); ++i) {
630 if (i->type == "image/x-icon" && 632 if (i->type == L"image/x-icon" &&
631 i->width == kFavIconSize && i->height == kFavIconSize) { 633 i->width == kFavIconSize && i->height == kFavIconSize) {
632 if (!url.is_valid()) 634 if (!url.is_valid())
633 image_refs_.erase(i); 635 image_refs_.erase(i);
634 else 636 else
635 i->url = url; 637 i->url = url;
636 return; 638 return;
637 } 639 }
638 } 640 }
639 // Don't have one yet, add it. 641 // Don't have one yet, add it.
640 if (url.is_valid()) { 642 if (url.is_valid()) {
641 add_image_ref( 643 add_image_ref(
642 TemplateURL::ImageRef("image/x-icon", kFavIconSize, 644 TemplateURL::ImageRef(L"image/x-icon", kFavIconSize, kFavIconSize,
643 kFavIconSize, url)); 645 url));
644 } 646 }
645 } 647 }
646 648
647 GURL TemplateURL::GetFavIconURL() const { 649 GURL TemplateURL::GetFavIconURL() const {
648 for (std::vector<ImageRef>::const_iterator i = image_refs_.begin(); 650 for (std::vector<ImageRef>::const_iterator i = image_refs_.begin();
649 i != image_refs_.end(); ++i) { 651 i != image_refs_.end(); ++i) {
650 if ((i->type == "image/x-icon" || i->type == "image/vnd.microsoft.icon") 652 if ((i->type == L"image/x-icon" || i->type == L"image/vnd.microsoft.icon")
651 && i->width == kFavIconSize && i->height == kFavIconSize) { 653 && i->width == kFavIconSize && i->height == kFavIconSize) {
652 return i->url; 654 return i->url;
653 } 655 }
654 } 656 }
655 return GURL(); 657 return GURL();
656 } 658 }
657 659
658 void TemplateURL::InvalidateCachedValues() const { 660 void TemplateURL::InvalidateCachedValues() const {
659 url_.InvalidateCachedValues(); 661 url_.InvalidateCachedValues();
660 suggestions_url_.InvalidateCachedValues(); 662 suggestions_url_.InvalidateCachedValues();
661 if (autogenerate_keyword_) { 663 if (autogenerate_keyword_) {
662 keyword_.clear(); 664 keyword_.clear();
663 keyword_generated_ = false; 665 keyword_generated_ = false;
664 } 666 }
665 } 667 }
666 668
667 std::string TemplateURL::GetExtensionId() const { 669 std::string TemplateURL::GetExtensionId() const {
668 DCHECK(IsExtensionKeyword()); 670 DCHECK(IsExtensionKeyword());
669 return GURL(url_.url()).host(); 671 return GURL(url_.url()).host();
670 } 672 }
671 673
672 bool TemplateURL::IsExtensionKeyword() const { 674 bool TemplateURL::IsExtensionKeyword() const {
673 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme); 675 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme);
674 } 676 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/browser/search_engines/template_url_fetcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698