OLD | NEW |
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/autocomplete.h" | 5 #include "chrome/browser/autocomplete/autocomplete.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "grit/generated_resources.h" | 29 #include "grit/generated_resources.h" |
30 #include "grit/theme_resources.h" | 30 #include "grit/theme_resources.h" |
31 #include "net/base/net_util.h" | 31 #include "net/base/net_util.h" |
32 #include "net/base/registry_controlled_domain.h" | 32 #include "net/base/registry_controlled_domain.h" |
33 #include "net/url_request/url_request.h" | 33 #include "net/url_request/url_request.h" |
34 | 34 |
35 using base::TimeDelta; | 35 using base::TimeDelta; |
36 | 36 |
37 // AutocompleteInput ---------------------------------------------------------- | 37 // AutocompleteInput ---------------------------------------------------------- |
38 | 38 |
| 39 AutocompleteInput::AutocompleteInput() |
| 40 : type_(INVALID), |
| 41 prevent_inline_autocomplete_(false), |
| 42 prefer_keyword_(false), |
| 43 synchronous_only_(false) { |
| 44 } |
| 45 |
39 AutocompleteInput::AutocompleteInput(const std::wstring& text, | 46 AutocompleteInput::AutocompleteInput(const std::wstring& text, |
40 const std::wstring& desired_tld, | 47 const std::wstring& desired_tld, |
41 bool prevent_inline_autocomplete, | 48 bool prevent_inline_autocomplete, |
42 bool prefer_keyword, | 49 bool prefer_keyword, |
43 bool synchronous_only) | 50 bool synchronous_only) |
44 : desired_tld_(desired_tld), | 51 : desired_tld_(desired_tld), |
45 prevent_inline_autocomplete_(prevent_inline_autocomplete), | 52 prevent_inline_autocomplete_(prevent_inline_autocomplete), |
46 prefer_keyword_(prefer_keyword), | 53 prefer_keyword_(prefer_keyword), |
47 synchronous_only_(synchronous_only) { | 54 synchronous_only_(synchronous_only) { |
48 // Trim whitespace from edges of input; don't inline autocomplete if there | 55 // Trim whitespace from edges of input; don't inline autocomplete if there |
(...skipping 12 matching lines...) Expand all Loading... |
61 if (canonicalized_url.is_valid() && | 68 if (canonicalized_url.is_valid() && |
62 (!canonicalized_url.IsStandard() || canonicalized_url.SchemeIsFile() || | 69 (!canonicalized_url.IsStandard() || canonicalized_url.SchemeIsFile() || |
63 !canonicalized_url.host().empty())) | 70 !canonicalized_url.host().empty())) |
64 canonicalized_url_ = canonicalized_url; | 71 canonicalized_url_ = canonicalized_url; |
65 } | 72 } |
66 | 73 |
67 if (type_ == FORCED_QUERY && text_[0] == L'?') | 74 if (type_ == FORCED_QUERY && text_[0] == L'?') |
68 text_.erase(0, 1); | 75 text_.erase(0, 1); |
69 } | 76 } |
70 | 77 |
| 78 AutocompleteInput::~AutocompleteInput() { |
| 79 } |
| 80 |
71 // static | 81 // static |
72 std::string AutocompleteInput::TypeToString(Type type) { | 82 std::string AutocompleteInput::TypeToString(Type type) { |
73 switch (type) { | 83 switch (type) { |
74 case INVALID: return "invalid"; | 84 case INVALID: return "invalid"; |
75 case UNKNOWN: return "unknown"; | 85 case UNKNOWN: return "unknown"; |
76 case REQUESTED_URL: return "requested-url"; | 86 case REQUESTED_URL: return "requested-url"; |
77 case URL: return "url"; | 87 case URL: return "url"; |
78 case QUERY: return "query"; | 88 case QUERY: return "query"; |
79 case FORCED_QUERY: return "forced-query"; | 89 case FORCED_QUERY: return "forced-query"; |
80 | 90 |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 relevance(relevance), | 410 relevance(relevance), |
401 deletable(deletable), | 411 deletable(deletable), |
402 inline_autocomplete_offset(std::wstring::npos), | 412 inline_autocomplete_offset(std::wstring::npos), |
403 transition(PageTransition::TYPED), | 413 transition(PageTransition::TYPED), |
404 is_history_what_you_typed_match(false), | 414 is_history_what_you_typed_match(false), |
405 type(type), | 415 type(type), |
406 template_url(NULL), | 416 template_url(NULL), |
407 starred(false) { | 417 starred(false) { |
408 } | 418 } |
409 | 419 |
| 420 AutocompleteMatch::~AutocompleteMatch() { |
| 421 } |
| 422 |
410 // static | 423 // static |
411 std::string AutocompleteMatch::TypeToString(Type type) { | 424 std::string AutocompleteMatch::TypeToString(Type type) { |
412 const char* strings[NUM_TYPES] = { | 425 const char* strings[NUM_TYPES] = { |
413 "url-what-you-typed", | 426 "url-what-you-typed", |
414 "history-url", | 427 "history-url", |
415 "history-title", | 428 "history-title", |
416 "history-body", | 429 "history-body", |
417 "history-keyword", | 430 "history-keyword", |
418 "navsuggest", | 431 "navsuggest", |
419 "search-what-you-typed", | 432 "search-what-you-typed", |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 last_offset = i->offset; | 567 last_offset = i->offset; |
555 } | 568 } |
556 } | 569 } |
557 #endif | 570 #endif |
558 | 571 |
559 // AutocompleteProvider ------------------------------------------------------- | 572 // AutocompleteProvider ------------------------------------------------------- |
560 | 573 |
561 // static | 574 // static |
562 const size_t AutocompleteProvider::kMaxMatches = 3; | 575 const size_t AutocompleteProvider::kMaxMatches = 3; |
563 | 576 |
564 AutocompleteProvider::~AutocompleteProvider() { | 577 AutocompleteProvider::ACProviderListener::~ACProviderListener() { |
565 Stop(); | 578 } |
| 579 |
| 580 AutocompleteProvider::AutocompleteProvider(ACProviderListener* listener, |
| 581 Profile* profile, |
| 582 const char* name) |
| 583 : profile_(profile), |
| 584 listener_(listener), |
| 585 done_(true), |
| 586 name_(name) { |
566 } | 587 } |
567 | 588 |
568 void AutocompleteProvider::SetProfile(Profile* profile) { | 589 void AutocompleteProvider::SetProfile(Profile* profile) { |
569 DCHECK(profile); | 590 DCHECK(profile); |
570 DCHECK(done_); // The controller should have already stopped us. | 591 DCHECK(done_); // The controller should have already stopped us. |
571 profile_ = profile; | 592 profile_ = profile; |
572 } | 593 } |
573 | 594 |
| 595 void AutocompleteProvider::Stop() { |
| 596 done_ = true; |
| 597 } |
| 598 |
| 599 void AutocompleteProvider::DeleteMatch(const AutocompleteMatch& match) { |
| 600 } |
| 601 |
| 602 AutocompleteProvider::~AutocompleteProvider() { |
| 603 Stop(); |
| 604 } |
| 605 |
574 // static | 606 // static |
575 bool AutocompleteProvider::HasHTTPScheme(const std::wstring& input) { | 607 bool AutocompleteProvider::HasHTTPScheme(const std::wstring& input) { |
576 std::string utf8_input(WideToUTF8(input)); | 608 std::string utf8_input(WideToUTF8(input)); |
577 url_parse::Component scheme; | 609 url_parse::Component scheme; |
578 if (url_util::FindAndCompareScheme(utf8_input, chrome::kViewSourceScheme, | 610 if (url_util::FindAndCompareScheme(utf8_input, chrome::kViewSourceScheme, |
579 &scheme)) | 611 &scheme)) |
580 utf8_input.erase(0, scheme.end() + 1); | 612 utf8_input.erase(0, scheme.end() + 1); |
581 return url_util::FindAndCompareScheme(utf8_input, chrome::kHttpScheme, NULL); | 613 return url_util::FindAndCompareScheme(utf8_input, chrome::kHttpScheme, NULL); |
582 } | 614 } |
583 | 615 |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1022 void AutocompleteController::CheckIfDone() { | 1054 void AutocompleteController::CheckIfDone() { |
1023 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); | 1055 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); |
1024 ++i) { | 1056 ++i) { |
1025 if (!(*i)->done()) { | 1057 if (!(*i)->done()) { |
1026 done_ = false; | 1058 done_ = false; |
1027 return; | 1059 return; |
1028 } | 1060 } |
1029 } | 1061 } |
1030 done_ = true; | 1062 done_ = true; |
1031 } | 1063 } |
OLD | NEW |