OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 return QUERY; | 168 return QUERY; |
169 | 169 |
170 // Likewise, the RCDS can reject certain obviously-invalid hosts. (We also | 170 // Likewise, the RCDS can reject certain obviously-invalid hosts. (We also |
171 // use the registry length later below.) | 171 // use the registry length later below.) |
172 const std::wstring host(text.substr(parts->host.begin, parts->host.len)); | 172 const std::wstring host(text.substr(parts->host.begin, parts->host.len)); |
173 const size_t registry_length = | 173 const size_t registry_length = |
174 net::RegistryControlledDomainService::GetRegistryLength(host, false); | 174 net::RegistryControlledDomainService::GetRegistryLength(host, false); |
175 if (registry_length == std::wstring::npos) | 175 if (registry_length == std::wstring::npos) |
176 return QUERY; // Could be a broken IP address, etc. | 176 return QUERY; // Could be a broken IP address, etc. |
177 | 177 |
178 // See if the hostname is valid per RFC 1738. While IE and GURL allow | 178 // See if the hostname is valid. While IE and GURL allow hostnames to contain |
179 // hostnames to contain many other characters (perhaps for weird intranet | 179 // many other characters (perhaps for weird intranet machines), it's extremely |
180 // machines), it's extremely unlikely that a user would be trying to type | 180 // unlikely that a user would be trying to type those in for anything other |
181 // those in for anything other than a search query. | 181 // than a search query. |
182 url_canon::CanonHostInfo host_info; | 182 url_canon::CanonHostInfo host_info; |
183 const std::string canonicalized_host(net::CanonicalizeHost(host, &host_info)); | 183 const std::string canonicalized_host(net::CanonicalizeHost(host, &host_info)); |
184 if ((host_info.family == url_canon::CanonHostInfo::NEUTRAL) && | 184 if ((host_info.family == url_canon::CanonHostInfo::NEUTRAL) && |
185 !net::IsCanonicalizedHostRFC1738Compliant(canonicalized_host)) | 185 !net::IsCanonicalizedHostCompliant(canonicalized_host)) |
186 return QUERY; | 186 return QUERY; |
187 | 187 |
188 // Presence of a port means this is likely a URL, if the port is really a port | 188 // Presence of a port means this is likely a URL, if the port is really a port |
189 // number. If it's just garbage after a colon, this is a query. | 189 // number. If it's just garbage after a colon, this is a query. |
190 if (parts->port.is_nonempty()) { | 190 if (parts->port.is_nonempty()) { |
191 int port; | 191 int port; |
192 return (StringToInt(WideToUTF16( | 192 return (StringToInt(WideToUTF16( |
193 text.substr(parts->port.begin, parts->port.len)), &port) && | 193 text.substr(parts->port.begin, parts->port.len)), &port) && |
194 (port >= 0) && (port <= 65535)) ? URL : QUERY; | 194 (port >= 0) && (port <= 65535)) ? URL : QUERY; |
195 } | 195 } |
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
941 void AutocompleteController::CheckIfDone() { | 941 void AutocompleteController::CheckIfDone() { |
942 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); | 942 for (ACProviders::const_iterator i(providers_.begin()); i != providers_.end(); |
943 ++i) { | 943 ++i) { |
944 if (!(*i)->done()) { | 944 if (!(*i)->done()) { |
945 done_ = false; | 945 done_ = false; |
946 return; | 946 return; |
947 } | 947 } |
948 } | 948 } |
949 done_ = true; | 949 done_ = true; |
950 } | 950 } |
OLD | NEW |