| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_provider.h" | 5 #include "chrome/browser/autocomplete/autocomplete_provider.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "chrome/browser/autocomplete/autocomplete_match.h" | 9 #include "chrome/browser/autocomplete/autocomplete_match.h" |
| 10 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" | 10 #include "chrome/browser/autocomplete/autocomplete_provider_listener.h" |
| 11 #include "chrome/browser/bookmarks/bookmark_model.h" | 11 #include "chrome/browser/bookmarks/bookmark_model.h" |
| 12 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 12 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 13 #include "chrome/browser/prefs/pref_service.h" | 13 #include "chrome/browser/prefs/pref_service.h" |
| 14 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
| 15 #include "chrome/common/pref_names.h" | 15 #include "chrome/common/pref_names.h" |
| 16 #include "content/public/common/url_constants.h" | 16 #include "content/public/common/url_constants.h" |
| 17 #include "googleurl/src/gurl.h" | 17 #include "googleurl/src/gurl.h" |
| 18 #include "googleurl/src/url_util.h" | 18 #include "googleurl/src/url_util.h" |
| 19 #include "net/base/net_util.h" | 19 #include "net/base/net_util.h" |
| 20 | 20 |
| 21 // static | 21 // static |
| 22 const size_t AutocompleteProvider::kMaxMatches = 3; | 22 const size_t AutocompleteProvider::kMaxMatches = 3; |
| 23 | 23 |
| 24 AutocompleteProvider::AutocompleteProvider( | 24 AutocompleteProvider::AutocompleteProvider( |
| 25 AutocompleteProviderListener* listener, | 25 AutocompleteProviderListener* listener, |
| 26 Profile* profile, | 26 Profile* profile, |
| 27 const char* name) | 27 Type type) |
| 28 : profile_(profile), | 28 : profile_(profile), |
| 29 listener_(listener), | 29 listener_(listener), |
| 30 done_(true), | 30 done_(true), |
| 31 name_(name) { | 31 type_(type) { |
| 32 } |
| 33 |
| 34 // static |
| 35 const char* AutocompleteProvider::TypeToString(Type type) { |
| 36 switch (type) { |
| 37 case TYPE_BUILTIN: |
| 38 return "Builtin"; |
| 39 case TYPE_EXTENSION_APP: |
| 40 return "ExtensionApp"; |
| 41 case TYPE_HISTORY_CONTENTS: |
| 42 return "HistoryContents"; |
| 43 case TYPE_HISTORY_QUICK: |
| 44 return "HistoryQuick"; |
| 45 case TYPE_HISTORY_URL: |
| 46 return "HistoryURL"; |
| 47 case TYPE_KEYWORD: |
| 48 return "Keyword"; |
| 49 case TYPE_SEARCH: |
| 50 return "Search"; |
| 51 case TYPE_SHORTCUTS: |
| 52 return "Shortcuts"; |
| 53 case TYPE_ZERO_SUGGEST: |
| 54 return "ZeroSuggest"; |
| 55 default: |
| 56 NOTREACHED() << "Unhandled AutocompleteProvider::Type " << type; |
| 57 return "Unknown"; |
| 58 } |
| 32 } | 59 } |
| 33 | 60 |
| 34 void AutocompleteProvider::Stop(bool clear_cached_results) { | 61 void AutocompleteProvider::Stop(bool clear_cached_results) { |
| 35 done_ = true; | 62 done_ = true; |
| 36 } | 63 } |
| 37 | 64 |
| 65 const char* AutocompleteProvider::GetName() const { |
| 66 return TypeToString(type_); |
| 67 } |
| 68 |
| 38 metrics::OmniboxEventProto_ProviderType AutocompleteProvider:: | 69 metrics::OmniboxEventProto_ProviderType AutocompleteProvider:: |
| 39 AsOmniboxEventProviderType() const { | 70 AsOmniboxEventProviderType() const { |
| 40 if (name_ == "HistoryURL") | 71 switch (type_) { |
| 41 return metrics::OmniboxEventProto::HISTORY_URL; | 72 case TYPE_BUILTIN: |
| 42 if (name_ == "HistoryContents") | 73 return metrics::OmniboxEventProto::BUILTIN; |
| 43 return metrics::OmniboxEventProto::HISTORY_CONTENTS; | 74 case TYPE_EXTENSION_APP: |
| 44 if (name_ == "HistoryQuick") | 75 return metrics::OmniboxEventProto::EXTENSION_APPS; |
| 45 return metrics::OmniboxEventProto::HISTORY_QUICK; | 76 case TYPE_HISTORY_CONTENTS: |
| 46 if (name_ == "Search") | 77 return metrics::OmniboxEventProto::HISTORY_CONTENTS; |
| 47 return metrics::OmniboxEventProto::SEARCH; | 78 case TYPE_HISTORY_QUICK: |
| 48 if (name_ == "Keyword") | 79 return metrics::OmniboxEventProto::HISTORY_QUICK; |
| 49 return metrics::OmniboxEventProto::KEYWORD; | 80 case TYPE_HISTORY_URL: |
| 50 if (name_ == "Builtin") | 81 return metrics::OmniboxEventProto::HISTORY_URL; |
| 51 return metrics::OmniboxEventProto::BUILTIN; | 82 case TYPE_KEYWORD: |
| 52 if (name_ == "Shortcuts") | 83 return metrics::OmniboxEventProto::KEYWORD; |
| 53 return metrics::OmniboxEventProto::SHORTCUTS; | 84 case TYPE_SEARCH: |
| 54 if (name_ == "ExtensionApps") | 85 return metrics::OmniboxEventProto::SEARCH; |
| 55 return metrics::OmniboxEventProto::EXTENSION_APPS; | 86 case TYPE_SHORTCUTS: |
| 56 | 87 return metrics::OmniboxEventProto::SHORTCUTS; |
| 57 NOTREACHED(); | 88 case TYPE_ZERO_SUGGEST: |
| 58 return metrics::OmniboxEventProto::UNKNOWN_PROVIDER; | 89 // TODO: Add to OmniboxEventProto::ProviderType. |
| 90 default: |
| 91 NOTREACHED() << "Unhandled AutocompleteProvider::Type " << type_; |
| 92 return metrics::OmniboxEventProto::UNKNOWN_PROVIDER; |
| 93 } |
| 59 } | 94 } |
| 60 | 95 |
| 61 void AutocompleteProvider::DeleteMatch(const AutocompleteMatch& match) { | 96 void AutocompleteProvider::DeleteMatch(const AutocompleteMatch& match) { |
| 62 DLOG(WARNING) << "The AutocompleteProvider '" << name_ | 97 DLOG(WARNING) << "The AutocompleteProvider '" << GetName() |
| 63 << "' has not implemented DeleteMatch."; | 98 << "' has not implemented DeleteMatch."; |
| 64 } | 99 } |
| 65 | 100 |
| 66 void AutocompleteProvider::AddProviderInfo(ProvidersInfo* provider_info) const { | 101 void AutocompleteProvider::AddProviderInfo(ProvidersInfo* provider_info) const { |
| 67 } | 102 } |
| 68 | 103 |
| 69 string16 AutocompleteProvider::StringForURLDisplay(const GURL& url, | 104 string16 AutocompleteProvider::StringForURLDisplay(const GURL& url, |
| 70 bool check_accept_lang, | 105 bool check_accept_lang, |
| 71 bool trim_http) const { | 106 bool trim_http) const { |
| 72 std::string languages = (check_accept_lang && profile_) ? | 107 std::string languages = (check_accept_lang && profile_) ? |
| (...skipping 24 matching lines...) Expand all Loading... |
| 97 if (!profile_) | 132 if (!profile_) |
| 98 return; | 133 return; |
| 99 | 134 |
| 100 BookmarkModel* bookmark_model = BookmarkModelFactory::GetForProfile(profile_); | 135 BookmarkModel* bookmark_model = BookmarkModelFactory::GetForProfile(profile_); |
| 101 if (!bookmark_model || !bookmark_model->IsLoaded()) | 136 if (!bookmark_model || !bookmark_model->IsLoaded()) |
| 102 return; | 137 return; |
| 103 | 138 |
| 104 for (ACMatches::iterator i(matches_.begin()); i != matches_.end(); ++i) | 139 for (ACMatches::iterator i(matches_.begin()); i != matches_.end(); ++i) |
| 105 i->starred = bookmark_model->IsBookmarked(i->destination_url); | 140 i->starred = bookmark_model->IsBookmarked(i->destination_url); |
| 106 } | 141 } |
| OLD | NEW |