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

Side by Side Diff: chrome/browser/instant/instant_controller.cc

Issue 12250033: Consolidate search terms extraction and Instant process determination. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Style nit Created 7 years, 10 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 | Annotate | Revision Log
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/instant/instant_controller.h" 5 #include "chrome/browser/instant/instant_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
11 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/browser/autocomplete/autocomplete_provider.h" 12 #include "chrome/browser/autocomplete/autocomplete_provider.h"
13 #include "chrome/browser/google/google_util.h" 13 #include "chrome/browser/google/google_util.h"
14 #include "chrome/browser/history/history_service.h" 14 #include "chrome/browser/history/history_service.h"
15 #include "chrome/browser/history/history_service_factory.h" 15 #include "chrome/browser/history/history_service_factory.h"
16 #include "chrome/browser/history/history_tab_helper.h" 16 #include "chrome/browser/history/history_tab_helper.h"
17 #include "chrome/browser/instant/instant_ntp.h" 17 #include "chrome/browser/instant/instant_ntp.h"
18 #include "chrome/browser/instant/instant_overlay.h" 18 #include "chrome/browser/instant/instant_overlay.h"
19 #include "chrome/browser/instant/instant_tab.h" 19 #include "chrome/browser/instant/instant_tab.h"
20 #include "chrome/browser/platform_util.h" 20 #include "chrome/browser/platform_util.h"
21 #include "chrome/browser/search_engines/template_url_service.h" 21 #include "chrome/browser/search_engines/template_url_service.h"
22 #include "chrome/browser/search_engines/template_url_service_factory.h" 22 #include "chrome/browser/search_engines/template_url_service_factory.h"
23 #include "chrome/browser/ui/browser_instant_controller.h" 23 #include "chrome/browser/ui/browser_instant_controller.h"
24 #include "chrome/browser/ui/search/search.h"
24 #include "chrome/browser/ui/search/search_tab_helper.h" 25 #include "chrome/browser/ui/search/search_tab_helper.h"
25 #include "chrome/common/chrome_notification_types.h" 26 #include "chrome/common/chrome_notification_types.h"
26 #include "chrome/common/chrome_switches.h" 27 #include "chrome/common/chrome_switches.h"
27 #include "chrome/common/url_constants.h" 28 #include "chrome/common/url_constants.h"
28 #include "content/public/browser/navigation_entry.h" 29 #include "content/public/browser/navigation_entry.h"
29 #include "content/public/browser/notification_service.h" 30 #include "content/public/browser/notification_service.h"
30 #include "content/public/browser/render_widget_host_view.h" 31 #include "content/public/browser/render_widget_host_view.h"
31 #include "content/public/browser/web_contents.h" 32 #include "content/public/browser/web_contents.h"
32 #include "net/base/escape.h" 33 #include "net/base/escape.h"
33 #include "third_party/icu/public/common/unicode/normalizer2.h" 34 #include "third_party/icu/public/common/unicode/normalizer2.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 return model.height() == 100 && model.height_units() == INSTANT_SIZE_PERCENT; 159 return model.height() == 100 && model.height_units() == INSTANT_SIZE_PERCENT;
159 } 160 }
160 161
161 bool IsContentsFrom(const InstantPage* page, 162 bool IsContentsFrom(const InstantPage* page,
162 const content::WebContents* contents) { 163 const content::WebContents* contents) {
163 return page && (page->contents() == contents); 164 return page && (page->contents() == contents);
164 } 165 }
165 166
166 } // namespace 167 } // namespace
167 168
168 // static
169 const char* InstantController::kLocalOmniboxPopupURL =
170 "chrome://local-omnibox-popup/local-omnibox-popup.html";
171
172 InstantController::InstantController(chrome::BrowserInstantController* browser, 169 InstantController::InstantController(chrome::BrowserInstantController* browser,
173 bool extended_enabled) 170 bool extended_enabled)
174 : browser_(browser), 171 : browser_(browser),
175 extended_enabled_(extended_enabled), 172 extended_enabled_(extended_enabled),
176 instant_enabled_(false), 173 instant_enabled_(false),
177 use_local_preview_only_(true), 174 use_local_preview_only_(true),
178 model_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 175 model_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
179 last_omnibox_text_has_inline_autocompletion_(false), 176 last_omnibox_text_has_inline_autocompletion_(false),
180 last_verbatim_(false), 177 last_verbatim_(false),
181 last_transition_type_(content::PAGE_TRANSITION_LINK), 178 last_transition_type_(content::PAGE_TRANSITION_LINK),
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 instant_tab_->Update(user_text, selection_start, selection_end, verbatim); 382 instant_tab_->Update(user_text, selection_start, selection_end, verbatim);
386 } else { 383 } else {
387 if (first_interaction_time_.is_null()) 384 if (first_interaction_time_.is_null())
388 first_interaction_time_ = base::Time::Now(); 385 first_interaction_time_ = base::Time::Now();
389 allow_preview_to_show_search_suggestions_ = true; 386 allow_preview_to_show_search_suggestions_ = true;
390 387
391 // For extended mode, if the loader is not ready at this point, switch over 388 // For extended mode, if the loader is not ready at this point, switch over
392 // to a backup loader. 389 // to a backup loader.
393 if (extended_enabled_ && !overlay_->supports_instant() && 390 if (extended_enabled_ && !overlay_->supports_instant() &&
394 !overlay_->IsUsingLocalPreview() && browser_->GetActiveWebContents()) { 391 !overlay_->IsUsingLocalPreview() && browser_->GetActiveWebContents()) {
395 CreateOverlay(kLocalOmniboxPopupURL, browser_->GetActiveWebContents()); 392 CreateOverlay(chrome::search::kLocalOmniboxPopupURL,
393 browser_->GetActiveWebContents());
396 } 394 }
397 395
398 overlay_->Update(extended_enabled_ ? user_text : full_text, 396 overlay_->Update(extended_enabled_ ? user_text : full_text,
399 selection_start, selection_end, verbatim); 397 selection_start, selection_end, verbatim);
400 } 398 }
401 399
402 content::NotificationService::current()->Notify( 400 content::NotificationService::current()->Notify(
403 chrome::NOTIFICATION_INSTANT_CONTROLLER_UPDATED, 401 chrome::NOTIFICATION_INSTANT_CONTROLLER_UPDATED,
404 content::Source<InstantController>(this), 402 content::Source<InstantController>(this),
405 content::NotificationService::NoDetails()); 403 content::NotificationService::NoDetails());
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 const content::WebContents* active_tab = browser_->GetActiveWebContents(); 1119 const content::WebContents* active_tab = browser_->GetActiveWebContents();
1122 if (!active_tab) 1120 if (!active_tab)
1123 return false; 1121 return false;
1124 1122
1125 Profile* profile = Profile::FromBrowserContext( 1123 Profile* profile = Profile::FromBrowserContext(
1126 active_tab->GetBrowserContext()); 1124 active_tab->GetBrowserContext());
1127 std::string instant_url; 1125 std::string instant_url;
1128 if (!GetInstantURL(profile, ignore_blacklist, &instant_url)) { 1126 if (!GetInstantURL(profile, ignore_blacklist, &instant_url)) {
1129 // If we are in extended mode, fallback to the local popup. 1127 // If we are in extended mode, fallback to the local popup.
1130 if (extended_enabled_) 1128 if (extended_enabled_)
1131 instant_url = kLocalOmniboxPopupURL; 1129 instant_url = chrome::search::kLocalOmniboxPopupURL;
1132 else 1130 else
1133 return false; 1131 return false;
1134 } 1132 }
1135 1133
1136 if (!overlay_ || overlay_->instant_url() != instant_url) 1134 if (!overlay_ || overlay_->instant_url() != instant_url)
1137 CreateOverlay(instant_url, active_tab); 1135 CreateOverlay(instant_url, active_tab);
1138 1136
1139 return true; 1137 return true;
1140 } 1138 }
1141 1139
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 overlay_->SetPopupBounds(intersection); 1287 overlay_->SetPopupBounds(intersection);
1290 } 1288 }
1291 1289
1292 bool InstantController::GetInstantURL(Profile* profile, 1290 bool InstantController::GetInstantURL(Profile* profile,
1293 bool ignore_blacklist, 1291 bool ignore_blacklist,
1294 std::string* instant_url) const { 1292 std::string* instant_url) const {
1295 DCHECK(profile); 1293 DCHECK(profile);
1296 instant_url->clear(); 1294 instant_url->clear();
1297 1295
1298 if (extended_enabled_ && use_local_preview_only_) { 1296 if (extended_enabled_ && use_local_preview_only_) {
1299 *instant_url = kLocalOmniboxPopupURL; 1297 *instant_url = chrome::search::kLocalOmniboxPopupURL;
1300 return true; 1298 return true;
1301 } 1299 }
1302 1300
1303 const TemplateURL* template_url = TemplateURLServiceFactory::GetForProfile( 1301 const TemplateURL* template_url = TemplateURLServiceFactory::GetForProfile(
1304 profile)->GetDefaultSearchProvider(); 1302 profile)->GetDefaultSearchProvider();
1305 1303
1306 if (!template_url) { 1304 if (!template_url) {
1307 LOG_INSTANT_DEBUG_EVENT(this, "GetInstantURL: No template URL"); 1305 LOG_INSTANT_DEBUG_EVENT(this, "GetInstantURL: No template URL");
1308 return false; 1306 return false;
1309 } 1307 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1398 delete overlay_->ReleaseContents().release(); 1396 delete overlay_->ReleaseContents().release();
1399 MessageLoop::current()->DeleteSoon(FROM_HERE, overlay_.release()); 1397 MessageLoop::current()->DeleteSoon(FROM_HERE, overlay_.release());
1400 EnsureOverlayIsCurrent(false); 1398 EnsureOverlayIsCurrent(false);
1401 } 1399 }
1402 1400
1403 void InstantController::RemoveFromBlacklist(const std::string& url) { 1401 void InstantController::RemoveFromBlacklist(const std::string& url) {
1404 if (blacklisted_urls_.erase(url)) { 1402 if (blacklisted_urls_.erase(url)) {
1405 RecordEventHistogram(INSTANT_CONTROLLER_EVENT_URL_REMOVED_FROM_BLACKLIST); 1403 RecordEventHistogram(INSTANT_CONTROLLER_EVENT_URL_REMOVED_FROM_BLACKLIST);
1406 } 1404 }
1407 } 1405 }
OLDNEW
« no previous file with comments | « chrome/browser/instant/instant_controller.h ('k') | chrome/browser/instant/instant_extended_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698