Index: components/omnibox/browser/omnibox_edit_model.h |
diff --git a/components/omnibox/browser/omnibox_edit_model.h b/components/omnibox/browser/omnibox_edit_model.h |
index 4c567c2b70e3cf59308c75253747641e020aaaf6..87af1c696ed31e3a795e463e86dfd1e4461e8890 100644 |
--- a/components/omnibox/browser/omnibox_edit_model.h |
+++ b/components/omnibox/browser/omnibox_edit_model.h |
@@ -40,6 +40,8 @@ enum EnteredKeywordModeMethod { |
ENTERED_KEYWORD_MODE_VIA_TAB = 0, |
ENTERED_KEYWORD_MODE_VIA_SPACE_AT_END = 1, |
ENTERED_KEYWORD_MODE_VIA_SPACE_IN_MIDDLE = 2, |
+ ENTERED_KEYWORD_MODE_VIA_KEYBOARD_SHORTCUT = 3, |
+ ENTERED_KEYWORD_MODE_VIA_QUESTION_MARK = 4, |
ENTERED_KEYWORD_MODE_NUM_ITEMS |
}; |
@@ -59,6 +61,7 @@ class OmniboxEditModel { |
const base::string16& gray_text, |
const base::string16& keyword, |
bool is_keyword_hint, |
+ EnteredKeywordModeMethod keyword_entered_method, |
bool url_replacement_enabled, |
OmniboxFocusState focus_state, |
FocusSource focus_source, |
@@ -71,6 +74,7 @@ class OmniboxEditModel { |
const base::string16 gray_text; |
const base::string16 keyword; |
const bool is_keyword_hint; |
+ EnteredKeywordModeMethod keyword_entered_method; |
bool url_replacement_enabled; |
OmniboxFocusState focus_state; |
FocusSource focus_source; |
@@ -236,11 +240,15 @@ class OmniboxEditModel { |
} |
// Accepts the current keyword hint as a keyword. It always returns true for |
- // caller convenience. |entered_method| indicates how the use entered |
- // keyword mode. This parameter is only used for metrics/logging; it's not |
- // used to change user-visible behavior. |
+ // caller convenience. |entered_method| indicates how the user entered |
+ // keyword mode. |
bool AcceptKeyword(EnteredKeywordModeMethod entered_method); |
+ // Sets the current keyword to that of the user's default search provider and |
+ // updates the view so the user sees the keyword chip in the omnibox. |
+ void EnterKeywordModeForDefaultSearchProvider( |
+ EnteredKeywordModeMethod keyword_entered_method); |
+ |
// Accepts the current temporary text as the user text. |
void AcceptTemporaryTextAsUserText(); |
@@ -335,6 +343,7 @@ class OmniboxEditModel { |
size_t selection_end, |
bool selection_differs, |
bool text_differs, |
+ bool keyword_differs, |
bool just_deleted_text, |
bool allow_keyword_ui_change); |
@@ -508,6 +517,11 @@ class OmniboxEditModel { |
bool just_deleted_text_; |
base::string16 inline_autocomplete_text_; |
+ // If the user types '?' to enter keyword mode, and then presses backspace, |
+ // we want a '?' to be displayed on the omnibox. Without this variable, the |
+ // user would immediately be transitioned back into keyword mode. |
+ bool just_cleared_keyword_; |
+ |
// Used by OnPopupDataChanged to keep track of whether there is currently a |
// temporary text. |
// |
@@ -546,6 +560,11 @@ class OmniboxEditModel { |
// keyword_ to show a "Press <tab> to search" sort of hint. |
bool is_keyword_hint_; |
+ // Indicates how the user entered keyword mode if the user is actually in |
+ // keyword mode. Otherwise, the value of this variable is undefined. This |
+ // is used to restore the user's search terms upon a call to ClearKeyword(). |
+ EnteredKeywordModeMethod keyword_entered_method_; |
+ |
// This is needed to properly update the SearchModel state when the user |
// presses escape. |
bool in_revert_; |