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

Unified Diff: chrome/browser/ui/search/search_tab_helper.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/search/search_tab_helper.h ('k') | chrome/browser/ui/search/search_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/search/search_tab_helper.cc
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc
index 186834fab9203db3fbe73ab5e6bd1c4e9179640d..b320565d6be9d73ca2a248d2b908dbbb36cfc4fe 100644
--- a/chrome/browser/ui/search/search_tab_helper.cc
+++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -4,55 +4,32 @@
#include "chrome/browser/ui/search/search_tab_helper.h"
-#include "chrome/browser/google/google_util.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/search_engines/template_url.h"
-#include "chrome/browser/search_engines/template_url_service.h"
-#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/search/search.h"
#include "chrome/common/url_constants.h"
-#include "content/public/browser/navigation_controller.h"
-#include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
-#include "content/public/browser/web_contents.h"
DEFINE_WEB_CONTENTS_USER_DATA_KEY(chrome::search::SearchTabHelper);
namespace {
-bool IsNTP(const GURL& url) {
- return url.SchemeIs(chrome::kChromeUIScheme) &&
- url.host() == chrome::kChromeUINewTabHost;
-}
-
-Profile* ProfileFromWebContents(const content::WebContents* web_contents) {
- return Profile::FromBrowserContext(web_contents->GetBrowserContext());
-}
-
-bool IsSearchEnabled(Profile* profile) {
+bool IsSearchEnabled(const content::WebContents* contents) {
+ Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
return chrome::search::IsInstantExtendedAPIEnabled(profile);
}
+bool IsNTP(const content::WebContents* contents) {
+ // We can't use WebContents::GetURL() because that uses the active entry,
+ // whereas we want the visible entry.
+ const content::NavigationEntry* entry =
+ contents->GetController().GetVisibleEntry();
+ return entry && entry->GetVirtualURL() == GURL(chrome::kChromeUINewTabURL);
+}
-bool IsSearchResults(const GURL& url, Profile* profile) {
- if (chrome::search::IsForcedInstantURL(url))
- return true;
-
- // Profile can be NULL in unit tests.
- TemplateURLService* template_url_service =
- TemplateURLServiceFactory::GetForProfile(profile);
- if (!template_url_service)
- return false;
-
- TemplateURL* template_url = template_url_service->GetDefaultSearchProvider();
- if (!template_url)
- return false;
-
- string16 result;
- return template_url->HasSearchTermsReplacementKey(url) &&
- template_url->ExtractSearchTermsFromURL(url, &result) && !result.empty();
+bool IsSearchResults(const content::WebContents* contents) {
+ return !chrome::search::GetSearchTerms(contents).empty();
}
} // namespace
@@ -61,7 +38,7 @@ namespace chrome {
namespace search {
SearchTabHelper::SearchTabHelper(content::WebContents* web_contents)
- : is_search_enabled_(IsSearchEnabled(ProfileFromWebContents(web_contents))),
+ : is_search_enabled_(IsSearchEnabled(web_contents)),
user_input_in_progress_(false),
model_(web_contents) {
if (!is_search_enabled_)
@@ -86,13 +63,14 @@ void SearchTabHelper::OmniboxEditModelChanged(bool user_input_in_progress,
if (!user_input_in_progress && !cancelling)
return;
- UpdateModelBasedOnURL(web_contents()->GetURL());
+ UpdateModel();
}
void SearchTabHelper::NavigationEntryUpdated() {
if (!is_search_enabled_)
return;
- UpdateModelBasedOnURL(web_contents()->GetURL());
+
+ UpdateModel();
}
void SearchTabHelper::Observe(
@@ -100,18 +78,16 @@ void SearchTabHelper::Observe(
const content::NotificationSource& source,
const content::NotificationDetails& details) {
DCHECK_EQ(content::NOTIFICATION_NAV_ENTRY_COMMITTED, type);
- content::LoadCommittedDetails* committed_details =
- content::Details<content::LoadCommittedDetails>(details).ptr();
- UpdateModelBasedOnURL(committed_details->entry->GetVirtualURL());
+ UpdateModel();
}
-void SearchTabHelper::UpdateModelBasedOnURL(const GURL& url) {
+void SearchTabHelper::UpdateModel() {
Mode::Type type = Mode::MODE_DEFAULT;
Mode::Origin origin = Mode::ORIGIN_DEFAULT;
- if (IsNTP(url)) {
+ if (IsNTP(web_contents())) {
type = Mode::MODE_NTP;
origin = Mode::ORIGIN_NTP;
- } else if (IsSearchResults(url, ProfileFromWebContents(web_contents()))) {
+ } else if (IsSearchResults(web_contents())) {
type = Mode::MODE_SEARCH_RESULTS;
origin = Mode::ORIGIN_SEARCH;
}
« no previous file with comments | « chrome/browser/ui/search/search_tab_helper.h ('k') | chrome/browser/ui/search/search_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698