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

Side by Side Diff: chrome/browser/autocomplete/autocomplete.h

Issue 2013008: Remove --omnibox-popup-count flag. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: nits Created 10 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_H_ 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_H_
6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_H_ 6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 // Returns the name of this provider. 531 // Returns the name of this provider.
532 const char* name() const { return name_; } 532 const char* name() const { return name_; }
533 533
534 // Called to delete a match and the backing data that produced it. This 534 // Called to delete a match and the backing data that produced it. This
535 // match should not appear again in this or future queries. This can only be 535 // match should not appear again in this or future queries. This can only be
536 // called for matches the provider marks as deletable. This should only be 536 // called for matches the provider marks as deletable. This should only be
537 // called when no query is running. 537 // called when no query is running.
538 // NOTE: Remember to call OnProviderUpdate() if matches_ is updated. 538 // NOTE: Remember to call OnProviderUpdate() if matches_ is updated.
539 virtual void DeleteMatch(const AutocompleteMatch& match) {} 539 virtual void DeleteMatch(const AutocompleteMatch& match) {}
540 540
541 static void set_max_matches(size_t max_matches) { 541 // A suggested upper bound for how many matches a provider should return.
542 max_matches_ = max_matches; 542 // TODO(pkasting): http://b/1111299 , http://b/933133 This should go away once
543 } 543 // we have good relevance heuristics; the controller should handle all
544 544 // culling.
545 static size_t max_matches() { return max_matches_; } 545 static const size_t kMaxMatches;
546 546
547 protected: 547 protected:
548 friend class base::RefCountedThreadSafe<AutocompleteProvider>; 548 friend class base::RefCountedThreadSafe<AutocompleteProvider>;
549 549
550 virtual ~AutocompleteProvider(); 550 virtual ~AutocompleteProvider();
551 551
552 // Trims "http:" and up to two subsequent slashes from |url|. Returns the 552 // Trims "http:" and up to two subsequent slashes from |url|. Returns the
553 // number of characters that were trimmed. 553 // number of characters that were trimmed.
554 static size_t TrimHttpPrefix(std::wstring* url); 554 static size_t TrimHttpPrefix(std::wstring* url);
555 555
(...skipping 13 matching lines...) Expand all
569 Profile* profile_; 569 Profile* profile_;
570 570
571 ACProviderListener* listener_; 571 ACProviderListener* listener_;
572 ACMatches matches_; 572 ACMatches matches_;
573 bool done_; 573 bool done_;
574 574
575 // The name of this provider. Used for logging. 575 // The name of this provider. Used for logging.
576 const char* name_; 576 const char* name_;
577 577
578 private: 578 private:
579 // A suggested upper bound for how many matches a provider should return. 579 DISALLOW_COPY_AND_ASSIGN(AutocompleteProvider);
580 // TODO(pkasting): http://b/1111299 , http://b/933133 This should go away once
581 // we have good relevance heuristics; the controller should handle all
582 // culling.
583 static size_t max_matches_;
584
585 DISALLOW_EVIL_CONSTRUCTORS(AutocompleteProvider);
586 }; 580 };
587 581
588 typedef AutocompleteProvider::ACProviderListener ACProviderListener; 582 typedef AutocompleteProvider::ACProviderListener ACProviderListener;
589 583
590 // AutocompleteResult --------------------------------------------------------- 584 // AutocompleteResult ---------------------------------------------------------
591 585
592 // All matches from all providers for a particular query. This also tracks 586 // All matches from all providers for a particular query. This also tracks
593 // what the default match should be if the user doesn't manually select another 587 // what the default match should be if the user doesn't manually select another
594 // match. 588 // match.
595 class AutocompleteResult { 589 class AutocompleteResult {
(...skipping 25 matching lines...) Expand all
621 // |destination_url|, we'll use the best match from this provider. 615 // |destination_url|, we'll use the best match from this provider.
622 const AutocompleteProvider* provider_affinity; 616 const AutocompleteProvider* provider_affinity;
623 617
624 // True when this is the HistoryURLProvider's "what you typed" match. This 618 // True when this is the HistoryURLProvider's "what you typed" match. This
625 // can't be tracked using |destination_url| because its URL changes on every 619 // can't be tracked using |destination_url| because its URL changes on every
626 // keystroke, so if this is set, we'll preserve the selection by simply 620 // keystroke, so if this is set, we'll preserve the selection by simply
627 // choosing the new "what you typed" entry and ignoring |destination_url|. 621 // choosing the new "what you typed" entry and ignoring |destination_url|.
628 bool is_history_what_you_typed_match; 622 bool is_history_what_you_typed_match;
629 }; 623 };
630 624
631 static void set_max_matches(size_t max_matches) {
632 max_matches_ = max_matches;
633 }
634 static size_t max_matches() { return max_matches_; }
635
636 AutocompleteResult(); 625 AutocompleteResult();
637 626
638 // operator=() by another name. 627 // operator=() by another name.
639 void CopyFrom(const AutocompleteResult& rhs); 628 void CopyFrom(const AutocompleteResult& rhs);
640 629
641 // Adds a single match. The match is inserted at the appropriate position 630 // Adds a single match. The match is inserted at the appropriate position
642 // based on relevancy and display order. This is ONLY for use after 631 // based on relevancy and display order. This is ONLY for use after
643 // SortAndCull() has been invoked, and preserves default_match_. 632 // SortAndCull() has been invoked, and preserves default_match_.
644 void AddMatch(const AutocompleteMatch& match); 633 void AddMatch(const AutocompleteMatch& match);
645 634
(...skipping 29 matching lines...) Expand all
675 void Reset() { 664 void Reset() {
676 matches_.clear(); 665 matches_.clear();
677 default_match_ = end(); 666 default_match_ = end();
678 } 667 }
679 668
680 #ifndef NDEBUG 669 #ifndef NDEBUG
681 // Does a data integrity check on this result. 670 // Does a data integrity check on this result.
682 void Validate() const; 671 void Validate() const;
683 #endif 672 #endif
684 673
685 private:
686 // Max number of matches we'll show from the various providers. We may end 674 // Max number of matches we'll show from the various providers. We may end
687 // up showing an additional shortcut for Destinations->History, see 675 // up showing an additional shortcut for Destinations->History, see
688 // AddHistoryContentsShortcut. 676 // AddHistoryContentsShortcut.
689 static size_t max_matches_; 677 static const size_t kMaxMatches;
690 678
679 private:
691 ACMatches matches_; 680 ACMatches matches_;
692 681
693 const_iterator default_match_; 682 const_iterator default_match_;
694 683
695 // The "alternate navigation URL", if any, for this result set. This is a URL 684 // The "alternate navigation URL", if any, for this result set. This is a URL
696 // to try offering as a navigational option in case the user navigated to the 685 // to try offering as a navigational option in case the user navigated to the
697 // URL of the default match but intended something else. For example, if the 686 // URL of the default match but intended something else. For example, if the
698 // user's local intranet contains site "foo", and the user types "foo", we 687 // user's local intranet contains site "foo", and the user types "foo", we
699 // default to searching for "foo" when the user may have meant to navigate 688 // default to searching for "foo" when the user may have meant to navigate
700 // there. In cases like this, the default match will point to the "search for 689 // there. In cases like this, the default match will point to the "search for
701 // 'foo'" result, and this will contain "http://foo/". 690 // 'foo'" result, and this will contain "http://foo/".
702 GURL alternate_nav_url_; 691 GURL alternate_nav_url_;
703 692
704 DISALLOW_EVIL_CONSTRUCTORS(AutocompleteResult); 693 DISALLOW_COPY_AND_ASSIGN(AutocompleteResult);
705 }; 694 };
706 695
707 // AutocompleteController ----------------------------------------------------- 696 // AutocompleteController -----------------------------------------------------
708 697
709 // The coordinator for autocomplete queries, responsible for combining the 698 // The coordinator for autocomplete queries, responsible for combining the
710 // matches from a series of providers into one AutocompleteResult. 699 // matches from a series of providers into one AutocompleteResult.
711 class AutocompleteController : public ACProviderListener { 700 class AutocompleteController : public ACProviderListener {
712 public: 701 public:
713 // Used to indicate an index that is not selected in a call to Update(). 702 // Used to indicate an index that is not selected in a call to Update().
714 static const int kNoItemSelected; 703 static const int kNoItemSelected;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 // True if a query is not currently running. 847 // True if a query is not currently running.
859 bool done_; 848 bool done_;
860 849
861 // Timer that tracks how long it's been since the last time we sent our 850 // Timer that tracks how long it's been since the last time we sent our
862 // observers a new result set. This is used both to enforce a lower bound on 851 // observers a new result set. This is used both to enforce a lower bound on
863 // the delay between most commits (to reduce flicker), and ensure that updates 852 // the delay between most commits (to reduce flicker), and ensure that updates
864 // eventually get committed no matter what delays occur between them or how 853 // eventually get committed no matter what delays occur between them or how
865 // fast or continuously the user is typing. 854 // fast or continuously the user is typing.
866 base::RepeatingTimer<AutocompleteController> update_delay_timer_; 855 base::RepeatingTimer<AutocompleteController> update_delay_timer_;
867 856
868 DISALLOW_EVIL_CONSTRUCTORS(AutocompleteController); 857 DISALLOW_COPY_AND_ASSIGN(AutocompleteController);
869 }; 858 };
870 859
871 // AutocompleteLog ------------------------------------------------------------ 860 // AutocompleteLog ------------------------------------------------------------
872 861
873 // The data to log (via the metrics service) when the user selects an item 862 // The data to log (via the metrics service) when the user selects an item
874 // from the omnibox popup. 863 // from the omnibox popup.
875 struct AutocompleteLog { 864 struct AutocompleteLog {
876 AutocompleteLog(std::wstring text, 865 AutocompleteLog(std::wstring text,
877 AutocompleteInput::Type input_type, 866 AutocompleteInput::Type input_type,
878 size_t selected_index, 867 size_t selected_index,
(...skipping 11 matching lines...) Expand all
890 AutocompleteInput::Type input_type; 879 AutocompleteInput::Type input_type;
891 // Selected index (if selected) or -1 (AutocompletePopupModel::kNoMatch). 880 // Selected index (if selected) or -1 (AutocompletePopupModel::kNoMatch).
892 size_t selected_index; 881 size_t selected_index;
893 // Inline autocompleted length (if displayed). 882 // Inline autocompleted length (if displayed).
894 size_t inline_autocompleted_length; 883 size_t inline_autocompleted_length;
895 // Result set. 884 // Result set.
896 const AutocompleteResult& result; 885 const AutocompleteResult& result;
897 }; 886 };
898 887
899 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_H_ 888 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/autocomplete.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698