summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/omnibox/omnibox_controller.h
diff options
context:
space:
mode:
authorbeaudoin@chromium.org <beaudoin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-29 21:20:36 +0000
committerbeaudoin@chromium.org <beaudoin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-29 21:20:36 +0000
commitb5d2e470bfe52d927490edcad78a55e10a6c633a (patch)
tree24fae262cf25ab825248d02915e35d4b4ffddf36 /chrome/browser/ui/omnibox/omnibox_controller.h
parentbb7e03b8ab6af206f37d14f3f99c0725d9e3664e (diff)
downloadchromium_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.h32
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_;