Index: chrome/browser/ui/search/instant_controller.cc |
diff --git a/chrome/browser/ui/search/instant_controller.cc b/chrome/browser/ui/search/instant_controller.cc |
index 2d4fe0a2e327cae9791d67ed33f8222df9315176..b7c1cb65d01f09f9efb9a1dc82deba3eb6efbb71 100644 |
--- a/chrome/browser/ui/search/instant_controller.cc |
+++ b/chrome/browser/ui/search/instant_controller.cc |
@@ -278,6 +278,7 @@ InstantController::InstantController(BrowserInstantController* browser, |
last_transition_type_(content::PAGE_TRANSITION_LINK), |
last_match_was_search_(false), |
omnibox_focus_state_(OMNIBOX_FOCUS_NONE), |
+ omnibox_focus_change_reason_(OMNIBOX_FOCUS_CHANGE_EXPLICIT), |
omnibox_bounds_(-1, -1, 0, 0), |
allow_overlay_to_show_search_suggestions_(false), |
weak_ptr_factory_(this) { |
@@ -960,22 +961,11 @@ void InstantController::OmniboxFocusChanged( |
if (!extended_enabled() && !instant_enabled_) |
return; |
- // Tell the page if the key capture mode changed unless the focus state |
- // changed because of TYPING. This is because in that case, the browser hasn't |
- // really stopped capturing key strokes. |
- // |
- // (More practically, if we don't do this check, the page would receive |
- // onkeycapturechange before the corresponding onchange, and the page would |
- // have no way of telling whether the keycapturechange happened because of |
- // some actual user action or just because they started typing.) |
- if (extended_enabled() && GetOverlayContents() && |
- reason != OMNIBOX_FOCUS_CHANGE_TYPING) { |
- const bool is_key_capture_enabled = |
- omnibox_focus_state_ == OMNIBOX_FOCUS_INVISIBLE; |
+ if (extended_enabled()) { |
if (overlay_) |
- overlay_->KeyCaptureChanged(is_key_capture_enabled); |
+ overlay_->FocusChanged(omnibox_focus_state_, reason); |
if (instant_tab_) |
- instant_tab_->KeyCaptureChanged(is_key_capture_enabled); |
+ instant_tab_->FocusChanged(omnibox_focus_state_, reason); |
} |
if (state == OMNIBOX_FOCUS_VISIBLE && old_focus_state == OMNIBOX_FOCUS_NONE) { |
@@ -1195,8 +1185,7 @@ void InstantController::InstantPageRenderViewCreated( |
// Ensure the searchbox API has the correct initial state. |
if (IsContentsFrom(overlay(), contents)) { |
overlay_->SetDisplayInstantResults(instant_enabled_); |
- overlay_->KeyCaptureChanged( |
- omnibox_focus_state_ == OMNIBOX_FOCUS_INVISIBLE); |
+ overlay_->FocusChanged(omnibox_focus_state_, omnibox_focus_change_reason_); |
overlay_->SetOmniboxBounds(omnibox_bounds_); |
overlay_->InitializeFonts(); |
} else if (IsContentsFrom(ntp(), contents)) { |
@@ -1612,8 +1601,8 @@ void InstantController::UpdateInfoForInstantTab() { |
instant_tab_->SetOmniboxBounds(omnibox_bounds_); |
instant_tab_->InitializeFonts(); |
StartListeningToMostVisitedChanges(); |
- instant_tab_->KeyCaptureChanged( |
- omnibox_focus_state_ == OMNIBOX_FOCUS_INVISIBLE); |
+ instant_tab_->FocusChanged(omnibox_focus_state_, |
+ omnibox_focus_change_reason_); |
} |
} |