Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: chrome/browser/ui/browser_instant_controller.cc

Issue 2269933002: Instant cleanup: remove MODE_SEARCH_RESULTS and ORIGIN_SEARCH (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_url_replacement
Patch Set: review Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/browser_instant_controller.h" 5 #include "chrome/browser/ui/browser_instant_controller.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "chrome/browser/infobars/infobar_service.h" 8 #include "chrome/browser/infobars/infobar_service.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/search/instant_service.h" 10 #include "chrome/browser/search/instant_service.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 96 }
97 97
98 BrowserInstantController::~BrowserInstantController() { 98 BrowserInstantController::~BrowserInstantController() {
99 browser_->search_model()->RemoveObserver(this); 99 browser_->search_model()->RemoveObserver(this);
100 100
101 InstantService* instant_service = 101 InstantService* instant_service =
102 InstantServiceFactory::GetForProfile(profile()); 102 InstantServiceFactory::GetForProfile(profile());
103 instant_service->RemoveObserver(this); 103 instant_service->RemoveObserver(this);
104 } 104 }
105 105
106 bool BrowserInstantController::OpenInstant(WindowOpenDisposition disposition, 106 void BrowserInstantController::OpenInstant(WindowOpenDisposition disposition,
107 const GURL& url) { 107 const GURL& url) {
108 // Unsupported dispositions. 108 // Unsupported dispositions.
109 if (disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB || 109 if (disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB ||
110 disposition == WindowOpenDisposition::NEW_WINDOW || 110 disposition == WindowOpenDisposition::NEW_WINDOW ||
111 disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB) 111 disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB) {
112 return false; 112 return;
113 }
113 114
114 // The omnibox currently doesn't use other dispositions, so we don't attempt 115 // The omnibox currently doesn't use other dispositions, so we don't attempt
115 // to handle them. If you hit this DCHECK file a bug and I'll (sky) add 116 // to handle them. If you hit this DCHECK file a bug and I'll (sky) add
116 // support for the new disposition. 117 // support for the new disposition.
117 DCHECK(disposition == WindowOpenDisposition::CURRENT_TAB) 118 DCHECK(disposition == WindowOpenDisposition::CURRENT_TAB)
118 << static_cast<int>(disposition); 119 << static_cast<int>(disposition);
119 120
120 const base::string16& search_terms = 121 const base::string16& search_terms =
121 search::ExtractSearchTermsFromURL(profile(), url); 122 search::ExtractSearchTermsFromURL(profile(), url);
122 EmbeddedSearchRequestParams request_params(url);
123 if (search_terms.empty()) 123 if (search_terms.empty())
124 return false; 124 return;
125 125
126 InstantSearchPrerenderer* prerenderer = 126 InstantSearchPrerenderer* prerenderer =
127 GetInstantSearchPrerenderer(profile()); 127 GetInstantSearchPrerenderer(profile());
128 if (prerenderer) { 128 if (!prerenderer)
129 if (prerenderer->CanCommitQuery(GetActiveWebContents(), search_terms)) { 129 return;
130 // Submit query to render the prefetched results. Browser will swap the 130
131 // prerendered contents with the active tab contents. 131 if (prerenderer->CanCommitQuery(GetActiveWebContents(), search_terms)) {
132 prerenderer->Commit(search_terms, request_params); 132 // Submit query to render the prefetched results. Browser will swap the
133 return false; 133 // prerendered contents with the active tab contents.
134 } else { 134 prerenderer->Commit(search_terms, EmbeddedSearchRequestParams(url));
135 prerenderer->Cancel(); 135 } else {
136 } 136 prerenderer->Cancel();
137 } 137 }
138
139 // If we will not be replacing search terms from this URL, don't send to
140 // InstantController.
141 if (!search::IsQueryExtractionAllowedForURL(profile(), url))
142 return false;
143 return instant_.SubmitQuery(search_terms, request_params);
144 } 138 }
145 139
146 Profile* BrowserInstantController::profile() const { 140 Profile* BrowserInstantController::profile() const {
147 return browser_->profile(); 141 return browser_->profile();
148 } 142 }
149 143
150 content::WebContents* BrowserInstantController::GetActiveWebContents() const { 144 content::WebContents* BrowserInstantController::GetActiveWebContents() const {
151 return browser_->tab_strip_model()->GetActiveWebContents(); 145 return browser_->tab_strip_model()->GetActiveWebContents();
152 } 146 }
153 147
(...skipping 10 matching lines...) Expand all
164 158
165 void BrowserInstantController::ModelChanged( 159 void BrowserInstantController::ModelChanged(
166 const SearchModel::State& old_state, 160 const SearchModel::State& old_state,
167 const SearchModel::State& new_state) { 161 const SearchModel::State& new_state) {
168 if (old_state.mode != new_state.mode) { 162 if (old_state.mode != new_state.mode) {
169 const SearchMode& new_mode = new_state.mode; 163 const SearchMode& new_mode = new_state.mode;
170 164
171 // Record some actions corresponding to the mode change. Note that to get 165 // Record some actions corresponding to the mode change. Note that to get
172 // the full story, it's necessary to look at other UMA actions as well, 166 // the full story, it's necessary to look at other UMA actions as well,
173 // such as tab switches. 167 // such as tab switches.
174 if (new_mode.is_search_results()) 168 if (new_mode.is_ntp())
175 content::RecordAction(base::UserMetricsAction("InstantExtended.ShowSRP"));
176 else if (new_mode.is_ntp())
177 content::RecordAction(base::UserMetricsAction("InstantExtended.ShowNTP")); 169 content::RecordAction(base::UserMetricsAction("InstantExtended.ShowNTP"));
178 170
179 instant_.SearchModeChanged(old_state.mode, new_mode); 171 instant_.SearchModeChanged(old_state.mode, new_mode);
180 } 172 }
181 173
182 if (old_state.instant_support != new_state.instant_support) 174 if (old_state.instant_support != new_state.instant_support)
183 instant_.InstantSupportChanged(new_state.instant_support); 175 instant_.InstantSupportChanged(new_state.instant_support);
184 } 176 }
185 177
186 void BrowserInstantController::DefaultSearchProviderChanged( 178 void BrowserInstantController::DefaultSearchProviderChanged(
(...skipping 26 matching lines...) Expand all
213 params.referrer = content::Referrer(); 205 params.referrer = content::Referrer();
214 params.transition_type = ui::PAGE_TRANSITION_RELOAD; 206 params.transition_type = ui::PAGE_TRANSITION_RELOAD;
215 contents->GetController().LoadURLWithParams(params); 207 contents->GetController().LoadURLWithParams(params);
216 } else { 208 } else {
217 // Reload the contents to ensure that it gets assigned to a 209 // Reload the contents to ensure that it gets assigned to a
218 // non-privileged renderer. 210 // non-privileged renderer.
219 TabReloader::Reload(contents); 211 TabReloader::Reload(contents);
220 } 212 }
221 } 213 }
222 } 214 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_instant_controller.h ('k') | chrome/browser/ui/search/instant_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698