Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Side by Side Diff: chrome/browser/autocomplete/autocomplete_input.cc

Issue 12039053: Fix cursor position for default provider searches in keyword mode. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Added missing () to the comment in omnibox_edit_model.cc Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/string_util.h" 7 #include "base/string_util.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/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/net/url_fixer_upper.h" 10 #include "chrome/browser/net/url_fixer_upper.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 bool prevent_inline_autocomplete, 43 bool prevent_inline_autocomplete,
44 bool prefer_keyword, 44 bool prefer_keyword,
45 bool allow_exact_keyword_match, 45 bool allow_exact_keyword_match,
46 MatchesRequested matches_requested) 46 MatchesRequested matches_requested)
47 : cursor_position_(cursor_position), 47 : cursor_position_(cursor_position),
48 desired_tld_(desired_tld), 48 desired_tld_(desired_tld),
49 prevent_inline_autocomplete_(prevent_inline_autocomplete), 49 prevent_inline_autocomplete_(prevent_inline_autocomplete),
50 prefer_keyword_(prefer_keyword), 50 prefer_keyword_(prefer_keyword),
51 allow_exact_keyword_match_(allow_exact_keyword_match), 51 allow_exact_keyword_match_(allow_exact_keyword_match),
52 matches_requested_(matches_requested) { 52 matches_requested_(matches_requested) {
53 DCHECK(cursor_position <= text.length() || cursor_position == string16::npos); 53 DCHECK(cursor_position <= text.length() || cursor_position == string16::npos)
54 << "Text: '" << text << "', cp: " << cursor_position;
54 // None of the providers care about leading white space so we always trim it. 55 // None of the providers care about leading white space so we always trim it.
55 // Providers that care about trailing white space handle trimming themselves. 56 // Providers that care about trailing white space handle trimming themselves.
56 if ((TrimWhitespace(text, TRIM_LEADING, &text_) & TRIM_LEADING) != 0) 57 if ((TrimWhitespace(text, TRIM_LEADING, &text_) & TRIM_LEADING) != 0)
57 AdjustCursorPositionIfNecessary(text.length() - text_.length(), 58 AdjustCursorPositionIfNecessary(text.length() - text_.length(),
58 &cursor_position_); 59 &cursor_position_);
59 60
60 GURL canonicalized_url; 61 GURL canonicalized_url;
61 type_ = Parse(text_, desired_tld, &parts_, &scheme_, &canonicalized_url); 62 type_ = Parse(text_, desired_tld, &parts_, &scheme_, &canonicalized_url);
62 63
63 if (type_ == INVALID) 64 if (type_ == INVALID)
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 if (parts.query.is_nonempty()) 486 if (parts.query.is_nonempty())
486 ++num_nonhost_components; 487 ++num_nonhost_components;
487 if (parts.ref.is_nonempty()) 488 if (parts.ref.is_nonempty())
488 ++num_nonhost_components; 489 ++num_nonhost_components;
489 return num_nonhost_components; 490 return num_nonhost_components;
490 } 491 }
491 492
492 void AutocompleteInput::UpdateText(const string16& text, 493 void AutocompleteInput::UpdateText(const string16& text,
493 size_t cursor_position, 494 size_t cursor_position,
494 const url_parse::Parsed& parts) { 495 const url_parse::Parsed& parts) {
495 DCHECK(cursor_position <= text.length() || cursor_position == string16::npos); 496 DCHECK(cursor_position <= text.length() || cursor_position == string16::npos)
497 << "Text: '" << text << "', cp: " << cursor_position;
496 text_ = text; 498 text_ = text;
497 cursor_position_ = cursor_position; 499 cursor_position_ = cursor_position;
498 parts_ = parts; 500 parts_ = parts;
499 } 501 }
500 502
501 bool AutocompleteInput::Equals(const AutocompleteInput& other) const {
502 return (text_ == other.text_) &&
503 (cursor_position_ == other.cursor_position_) &&
504 (type_ == other.type_) &&
505 (desired_tld_ == other.desired_tld_) &&
506 (scheme_ == other.scheme_) &&
507 (prevent_inline_autocomplete_ == other.prevent_inline_autocomplete_) &&
508 (prefer_keyword_ == other.prefer_keyword_) &&
509 (matches_requested_ == other.matches_requested_);
510 }
511
512 void AutocompleteInput::Clear() { 503 void AutocompleteInput::Clear() {
513 text_.clear(); 504 text_.clear();
514 cursor_position_ = string16::npos; 505 cursor_position_ = string16::npos;
506 desired_tld_.clear();
515 type_ = INVALID; 507 type_ = INVALID;
516 parts_ = url_parse::Parsed(); 508 parts_ = url_parse::Parsed();
517 scheme_.clear(); 509 scheme_.clear();
518 desired_tld_.clear(); 510 canonicalized_url_ = GURL();
519 prevent_inline_autocomplete_ = false; 511 prevent_inline_autocomplete_ = false;
520 prefer_keyword_ = false; 512 prefer_keyword_ = false;
513 allow_exact_keyword_match_ = false;
514 matches_requested_ = ALL_MATCHES;
521 } 515 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_input.h ('k') | chrome/browser/autocomplete/keyword_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698