diff options
author | beaudoin@chromium.org <beaudoin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-29 21:20:36 +0000 |
---|---|---|
committer | beaudoin@chromium.org <beaudoin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-29 21:20:36 +0000 |
commit | b5d2e470bfe52d927490edcad78a55e10a6c633a (patch) | |
tree | 24fae262cf25ab825248d02915e35d4b4ffddf36 /chrome/browser/ui/omnibox/omnibox_controller.h | |
parent | bb7e03b8ab6af206f37d14f3f99c0725d9e3664e (diff) | |
download | chromium_src-b5d2e470bfe52d927490edcad78a55e10a6c633a.zip chromium_src-b5d2e470bfe52d927490edcad78a55e10a6c633a.tar.gz chromium_src-b5d2e470bfe52d927490edcad78a55e10a6c633a.tar.bz2 |
Omnibox refactor.
Follow up on: https://codereview.chromium.org/14358005/
BUG=234733
Review URL: https://chromiumcodereview.appspot.com/15003002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202974 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/omnibox/omnibox_controller.h')
-rw-r--r-- | chrome/browser/ui/omnibox/omnibox_controller.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/chrome/browser/ui/omnibox/omnibox_controller.h b/chrome/browser/ui/omnibox/omnibox_controller.h index caa1efc..e210090 100644 --- a/chrome/browser/ui/omnibox/omnibox_controller.h +++ b/chrome/browser/ui/omnibox/omnibox_controller.h @@ -8,12 +8,14 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" #include "base/memory/scoped_ptr.h" +#include "base/string16.h" #include "chrome/browser/autocomplete/autocomplete_controller.h" #include "chrome/browser/autocomplete/autocomplete_controller_delegate.h" struct AutocompleteMatch; class AutocompleteResult; class GURL; +class InstantController; class OmniboxEditModel; class OmniboxPopupModel; class Profile; @@ -33,9 +35,16 @@ class Rect; class OmniboxController : public AutocompleteControllerDelegate { public: - OmniboxController(OmniboxEditModel* omnibox_edit_model, Profile* profile); + OmniboxController(OmniboxEditModel* omnibox_edit_model, + Profile* profile); virtual ~OmniboxController(); + void StartAutocomplete(string16 user_text, + size_t cursor_position, + bool prevent_inline_autocomplete, + bool prefer_keyword, + bool allow_exact_keyword_match) const; + // AutocompleteControllerDelegate: virtual void OnResultChanged(bool default_match_changed) OVERRIDE; @@ -43,6 +52,16 @@ class OmniboxController : public AutocompleteControllerDelegate { return autocomplete_controller_.get(); } + bool DoInstant(const AutocompleteMatch& match, + string16 user_text, + string16 full_text, + size_t selection_start, + size_t selection_end, + bool user_input_in_progress, + bool in_escape_handler, + bool just_deleted_text, + bool keyword_is_selected); + void set_popup_model(OmniboxPopupModel* popup_model) { popup_ = popup_model; } @@ -67,6 +86,17 @@ class OmniboxController : public AutocompleteControllerDelegate { void OnPopupBoundsChanged(const gfx::Rect& bounds); private: + + // Returns true if a verbatim query should be used for Instant. A verbatim + // query is forced in certain situations, such as pressing delete at the end + // of the edit. + bool UseVerbatimInstant(bool just_deleted_text) const; + + // Access the instant controller from the OmniboxEditModel. We need to do this + // because the only valid pointer to InstantController is kept in Browser, + // which OmniboxEditModel has some ways of reaching. + InstantController* GetInstantController() const; + // Weak, it owns us. // TODO(beaudoin): Consider defining a delegate to ease unit testing. OmniboxEditModel* omnibox_edit_model_; |