| 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_input.h" | 5 #include "chrome/browser/autocomplete/autocomplete_input.h" |
| 6 | 6 |
| 7 #include "base/strings/string_util.h" | 7 #include "base/strings/string_util.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/external_protocol/external_protocol_handler.h" | 9 #include "chrome/browser/external_protocol/external_protocol_handler.h" |
| 10 #include "chrome/browser/profiles/profile_io_data.h" | 10 #include "chrome/browser/profiles/profile_io_data.h" |
| 11 #include "chrome/common/net/url_fixer_upper.h" | 11 #include "chrome/common/net/url_fixer_upper.h" |
| 12 #include "content/public/common/url_constants.h" | 12 #include "content/public/common/url_constants.h" |
| 13 #include "net/base/net_util.h" | 13 #include "net/base/net_util.h" |
| 14 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 14 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| 15 #include "url/url_canon_ip.h" | 15 #include "url/url_canon_ip.h" |
| 16 #include "url/url_util.h" |
| 16 | 17 |
| 17 namespace { | 18 namespace { |
| 18 | 19 |
| 19 void AdjustCursorPositionIfNecessary(size_t num_leading_chars_removed, | 20 void AdjustCursorPositionIfNecessary(size_t num_leading_chars_removed, |
| 20 size_t* cursor_position) { | 21 size_t* cursor_position) { |
| 21 if (*cursor_position == string16::npos) | 22 if (*cursor_position == string16::npos) |
| 22 return; | 23 return; |
| 23 if (num_leading_chars_removed < *cursor_position) | 24 if (num_leading_chars_removed < *cursor_position) |
| 24 *cursor_position -= num_leading_chars_removed; | 25 *cursor_position -= num_leading_chars_removed; |
| 25 else | 26 else |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 ++num_nonhost_components; | 491 ++num_nonhost_components; |
| 491 if (parts.path.is_nonempty()) | 492 if (parts.path.is_nonempty()) |
| 492 ++num_nonhost_components; | 493 ++num_nonhost_components; |
| 493 if (parts.query.is_nonempty()) | 494 if (parts.query.is_nonempty()) |
| 494 ++num_nonhost_components; | 495 ++num_nonhost_components; |
| 495 if (parts.ref.is_nonempty()) | 496 if (parts.ref.is_nonempty()) |
| 496 ++num_nonhost_components; | 497 ++num_nonhost_components; |
| 497 return num_nonhost_components; | 498 return num_nonhost_components; |
| 498 } | 499 } |
| 499 | 500 |
| 501 // static |
| 502 bool AutocompleteInput::HasHTTPScheme(const string16& input) { |
| 503 std::string utf8_input(UTF16ToUTF8(input)); |
| 504 url_parse::Component scheme; |
| 505 if (url_util::FindAndCompareScheme(utf8_input, content::kViewSourceScheme, |
| 506 &scheme)) |
| 507 utf8_input.erase(0, scheme.end() + 1); |
| 508 return url_util::FindAndCompareScheme(utf8_input, content::kHttpScheme, NULL); |
| 509 } |
| 510 |
| 500 void AutocompleteInput::UpdateText(const string16& text, | 511 void AutocompleteInput::UpdateText(const string16& text, |
| 501 size_t cursor_position, | 512 size_t cursor_position, |
| 502 const url_parse::Parsed& parts) { | 513 const url_parse::Parsed& parts) { |
| 503 DCHECK(cursor_position <= text.length() || cursor_position == string16::npos) | 514 DCHECK(cursor_position <= text.length() || cursor_position == string16::npos) |
| 504 << "Text: '" << text << "', cp: " << cursor_position; | 515 << "Text: '" << text << "', cp: " << cursor_position; |
| 505 text_ = text; | 516 text_ = text; |
| 506 cursor_position_ = cursor_position; | 517 cursor_position_ = cursor_position; |
| 507 parts_ = parts; | 518 parts_ = parts; |
| 508 } | 519 } |
| 509 | 520 |
| 510 void AutocompleteInput::Clear() { | 521 void AutocompleteInput::Clear() { |
| 511 text_.clear(); | 522 text_.clear(); |
| 512 cursor_position_ = string16::npos; | 523 cursor_position_ = string16::npos; |
| 513 current_url_ = GURL(); | 524 current_url_ = GURL(); |
| 514 current_page_classification_ = AutocompleteInput::INVALID_SPEC; | 525 current_page_classification_ = AutocompleteInput::INVALID_SPEC; |
| 515 type_ = INVALID; | 526 type_ = INVALID; |
| 516 parts_ = url_parse::Parsed(); | 527 parts_ = url_parse::Parsed(); |
| 517 scheme_.clear(); | 528 scheme_.clear(); |
| 518 canonicalized_url_ = GURL(); | 529 canonicalized_url_ = GURL(); |
| 519 prevent_inline_autocomplete_ = false; | 530 prevent_inline_autocomplete_ = false; |
| 520 prefer_keyword_ = false; | 531 prefer_keyword_ = false; |
| 521 allow_exact_keyword_match_ = false; | 532 allow_exact_keyword_match_ = false; |
| 522 matches_requested_ = ALL_MATCHES; | 533 matches_requested_ = ALL_MATCHES; |
| 523 } | 534 } |
| OLD | NEW |