Index: chrome/browser/autocomplete/search_provider.cc |
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc |
index be1d3abb5cd39b2ea14183a34a58706bf26ce4d9..b5a6f48296c744aaed7aec6ce2dcbee41c19fc5f 100644 |
--- a/chrome/browser/autocomplete/search_provider.cc |
+++ b/chrome/browser/autocomplete/search_provider.cc |
@@ -35,6 +35,10 @@ |
#include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
#include "chrome/browser/search_engines/template_url_service.h" |
#include "chrome/browser/search_engines/template_url_service_factory.h" |
+#include "chrome/browser/ui/browser.h" |
+#include "chrome/browser/ui/browser_finder.h" |
+#include "chrome/browser/ui/browser_instant_controller.h" |
+#include "chrome/browser/ui/search/instant_controller.h" |
#include "chrome/common/net/url_fixer_upper.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
@@ -249,8 +253,7 @@ SearchProvider::SearchProvider(AutocompleteProviderListener* listener, |
providers_(TemplateURLServiceFactory::GetForProfile(profile)), |
suggest_results_pending_(0), |
field_trial_triggered_(false), |
- field_trial_triggered_in_session_(false), |
- omnibox_start_margin_(-1) { |
+ field_trial_triggered_in_session_(false) { |
} |
// static |
@@ -368,10 +371,6 @@ void SearchProvider::ResetSession() { |
field_trial_triggered_in_session_ = false; |
} |
-void SearchProvider::SetOmniboxStartMargin(int omnibox_start_margin) { |
- omnibox_start_margin_ = omnibox_start_margin; |
-} |
- |
SearchProvider::~SearchProvider() { |
} |
@@ -1382,11 +1381,26 @@ void SearchProvider::AddMatchToMap(const string16& query_string, |
int accepted_suggestion, |
bool is_keyword, |
MatchMap* map) { |
+ // On non-mobile, ask the instant controller for the appropriate start margin. |
+ // On mobile the start margin is unused, so leave the value as default there. |
+ int omnibox_start_margin = chrome::kDisableStartMargin; |
+#if !defined(OS_ANDROID) && !defined(IOS) |
pkl (ping after 24h if needed)
2013/08/14 13:25:16
iOS should be !defined(OS_IOS)
Unfortunately, this
|
+ if (chrome::IsInstantExtendedAPIEnabled()) { |
+ Browser* browser = |
+ chrome::FindBrowserWithProfile(profile_, chrome::GetActiveDesktop()); |
+ if (browser && browser->instant_controller() && |
+ browser->instant_controller()->instant()) { |
+ omnibox_start_margin = |
+ browser->instant_controller()->instant()->omnibox_bounds().x(); |
+ } |
+ } |
+#endif // !defined(OS_ANDROID) && !defined(IOS) |
+ |
const TemplateURL* template_url = is_keyword ? |
providers_.GetKeywordProviderURL() : providers_.GetDefaultProviderURL(); |
AutocompleteMatch match = CreateSearchSuggestion(this, relevance, type, |
template_url, query_string, input_text, input_, is_keyword, |
- accepted_suggestion, omnibox_start_margin_, |
+ accepted_suggestion, omnibox_start_margin, |
!is_keyword || providers_.default_provider().empty()); |
if (!match.destination_url.is_valid()) |
return; |