OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 // See if we know how to handle the URL internally. | 118 // See if we know how to handle the URL internally. |
119 if (URLRequest::IsHandledProtocol(WideToASCII(parsed_scheme))) | 119 if (URLRequest::IsHandledProtocol(WideToASCII(parsed_scheme))) |
120 return URL; | 120 return URL; |
121 | 121 |
122 // There are also some schemes that we convert to other things before they | 122 // There are also some schemes that we convert to other things before they |
123 // reach the renderer or else the renderer handles internally without | 123 // reach the renderer or else the renderer handles internally without |
124 // reaching the URLRequest logic. We thus won't catch these above, but we | 124 // reaching the URLRequest logic. We thus won't catch these above, but we |
125 // should still claim to handle them. | 125 // should still claim to handle them. |
126 if (LowerCaseEqualsASCII(parsed_scheme, chrome::kViewSourceScheme) || | 126 if (LowerCaseEqualsASCII(parsed_scheme, chrome::kViewSourceScheme) || |
127 LowerCaseEqualsASCII(parsed_scheme, chrome::kJavaScriptScheme) || | 127 LowerCaseEqualsASCII(parsed_scheme, chrome::kJavaScriptScheme) || |
128 LowerCaseEqualsASCII(parsed_scheme, chrome::kDataScheme)) | 128 LowerCaseEqualsASCII(parsed_scheme, chrome::kDataScheme) || |
| 129 LowerCaseEqualsASCII(parsed_scheme, chrome::kPrintScheme)) |
129 return URL; | 130 return URL; |
130 | 131 |
131 // Finally, check and see if the user has explicitly opened this scheme as | 132 // Finally, check and see if the user has explicitly opened this scheme as |
132 // a URL before. We need to do this last because some schemes may be in | 133 // a URL before. We need to do this last because some schemes may be in |
133 // here as "blocked" (e.g. "javascript") because we don't want pages to open | 134 // here as "blocked" (e.g. "javascript") because we don't want pages to open |
134 // them, but users still can. | 135 // them, but users still can. |
135 switch (ExternalProtocolHandler::GetBlockState(parsed_scheme)) { | 136 switch (ExternalProtocolHandler::GetBlockState(parsed_scheme)) { |
136 case ExternalProtocolHandler::DONT_BLOCK: | 137 case ExternalProtocolHandler::DONT_BLOCK: |
137 return URL; | 138 return URL; |
138 | 139 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 url_parse::Component* scheme, | 251 url_parse::Component* scheme, |
251 url_parse::Component* host) { | 252 url_parse::Component* host) { |
252 url_parse::Parsed parts; | 253 url_parse::Parsed parts; |
253 std::wstring scheme_str; | 254 std::wstring scheme_str; |
254 Parse(text, desired_tld, &parts, &scheme_str); | 255 Parse(text, desired_tld, &parts, &scheme_str); |
255 | 256 |
256 *scheme = parts.scheme; | 257 *scheme = parts.scheme; |
257 *host = parts.host; | 258 *host = parts.host; |
258 | 259 |
259 int after_scheme_and_colon = parts.scheme.end() + 1; | 260 int after_scheme_and_colon = parts.scheme.end() + 1; |
260 // For the view-source scheme, we should emphasize the scheme and host of | 261 // For the view-source and print schemes, we should emphasize the scheme and |
261 // the URL qualified by the view-source prefix. | 262 // host of the URL qualified by the scheme prefix. |
262 if (LowerCaseEqualsASCII(scheme_str, chrome::kViewSourceScheme) && | 263 if ((LowerCaseEqualsASCII(scheme_str, chrome::kViewSourceScheme) || |
| 264 LowerCaseEqualsASCII(scheme_str, chrome::kPrintScheme)) && |
263 (static_cast<int>(text.length()) > after_scheme_and_colon)) { | 265 (static_cast<int>(text.length()) > after_scheme_and_colon)) { |
264 // Obtain the URL prefixed by view-source and parse it. | 266 // Obtain the URL prefixed by scheme and parse it. |
265 std::wstring real_url(text.substr(after_scheme_and_colon)); | 267 std::wstring real_url(text.substr(after_scheme_and_colon)); |
266 url_parse::Parsed real_parts; | 268 url_parse::Parsed real_parts; |
267 AutocompleteInput::Parse(real_url, desired_tld, &real_parts, NULL); | 269 AutocompleteInput::Parse(real_url, desired_tld, &real_parts, NULL); |
268 if (real_parts.scheme.is_nonempty() || real_parts.host.is_nonempty()) { | 270 if (real_parts.scheme.is_nonempty() || real_parts.host.is_nonempty()) { |
269 if (real_parts.scheme.is_nonempty()) { | 271 if (real_parts.scheme.is_nonempty()) { |
270 *scheme = url_parse::Component( | 272 *scheme = url_parse::Component( |
271 after_scheme_and_colon + real_parts.scheme.begin, | 273 after_scheme_and_colon + real_parts.scheme.begin, |
272 real_parts.scheme.len); | 274 real_parts.scheme.len); |
273 } else { | 275 } else { |
274 scheme->reset(); | 276 scheme->reset(); |
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 match.contents_class.push_back( | 891 match.contents_class.push_back( |
890 ACMatchClassification(keyword_offset + input_.text().size(), | 892 ACMatchClassification(keyword_offset + input_.text().size(), |
891 ACMatchClassification::NONE)); | 893 ACMatchClassification::NONE)); |
892 } | 894 } |
893 match.destination_url = | 895 match.destination_url = |
894 HistoryUI::GetHistoryURLWithSearchText(input_.text()); | 896 HistoryUI::GetHistoryURLWithSearchText(input_.text()); |
895 match.transition = PageTransition::AUTO_BOOKMARK; | 897 match.transition = PageTransition::AUTO_BOOKMARK; |
896 match.provider = history_contents_provider_; | 898 match.provider = history_contents_provider_; |
897 latest_result_.AddMatch(match); | 899 latest_result_.AddMatch(match); |
898 } | 900 } |
OLD | NEW |