Index: chrome/browser/search/search_terms_tracker.cc |
diff --git a/chrome/browser/search/search_terms_tracker.cc b/chrome/browser/search/search_terms_tracker.cc |
deleted file mode 100644 |
index 444ab5fb49d9e313a798f34d126eb3ef4320b473..0000000000000000000000000000000000000000 |
--- a/chrome/browser/search/search_terms_tracker.cc |
+++ /dev/null |
@@ -1,132 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/search/search_terms_tracker.h" |
- |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/search_engines/template_url_service_factory.h" |
-#include "components/search_engines/template_url.h" |
-#include "components/search_engines/template_url_service.h" |
-#include "content/public/browser/navigation_controller.h" |
-#include "content/public/browser/navigation_entry.h" |
-#include "content/public/browser/notification_details.h" |
-#include "content/public/browser/notification_service.h" |
-#include "content/public/browser/notification_source.h" |
-#include "content/public/browser/notification_types.h" |
-#include "content/public/browser/web_contents.h" |
- |
-namespace chrome { |
- |
-SearchTermsTracker::SearchTermsTracker() { |
- registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
- content::NotificationService::AllSources()); |
- registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_CHANGED, |
- content::NotificationService::AllSources()); |
- registrar_.Add(this, content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
- content::NotificationService::AllSources()); |
-} |
- |
-SearchTermsTracker::~SearchTermsTracker() { |
-} |
- |
-bool SearchTermsTracker::GetSearchTerms( |
- const content::WebContents* contents, |
- base::string16* search_terms, |
- int* navigation_index) const { |
- if (contents) { |
- TabState::const_iterator it = tabs_.find(contents); |
- if (it != tabs_.end() && !it->second.search_terms.empty()) { |
- if (search_terms) |
- *search_terms = it->second.search_terms; |
- if (navigation_index) |
- *navigation_index = it->second.srp_navigation_index; |
- return true; |
- } |
- } |
- return false; |
-} |
- |
-void SearchTermsTracker::Observe( |
- int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- switch (type) { |
- case content::NOTIFICATION_NAV_ENTRY_COMMITTED: |
- case content::NOTIFICATION_NAV_ENTRY_CHANGED: { |
- content::NavigationController* controller = |
- content::Source<content::NavigationController>(source).ptr(); |
- TabData search; |
- if (FindMostRecentSearch(controller, &search)) |
- tabs_[controller->GetWebContents()] = search; |
- else |
- RemoveTabData(controller->GetWebContents()); |
- break; |
- } |
- |
- case content::NOTIFICATION_WEB_CONTENTS_DESTROYED: { |
- RemoveTabData(content::Source<content::WebContents>(source).ptr()); |
- break; |
- } |
- |
- default: |
- NOTREACHED(); |
- return; |
- } |
-} |
- |
-bool SearchTermsTracker::FindMostRecentSearch( |
- const content::NavigationController* controller, |
- SearchTermsTracker::TabData* tab_data) { |
- Profile* profile = |
- Profile::FromBrowserContext(controller->GetBrowserContext()); |
- DCHECK(profile); |
- if (!profile) |
- return false; |
- |
- TemplateURLService* service = |
- TemplateURLServiceFactory::GetForProfile(profile); |
- TemplateURL* template_url = service->GetDefaultSearchProvider(); |
- |
- for (int i = controller->GetCurrentEntryIndex(); i >= 0; --i) { |
- content::NavigationEntry* entry = controller->GetEntryAtIndex(i); |
- if (entry->GetPageType() == content::PAGE_TYPE_NORMAL) { |
- if (template_url->IsSearchURL(entry->GetURL(), |
- service->search_terms_data())) { |
- // This entry is a search results page. Extract the terms only if this |
- // isn't the last (i.e. most recent/current) entry as we don't want to |
- // record the search terms when we're on an SRP. |
- if (i != controller->GetCurrentEntryIndex()) { |
- tab_data->srp_navigation_index = i; |
- template_url->ExtractSearchTermsFromURL(entry->GetURL(), |
- service->search_terms_data(), |
- &tab_data->search_terms); |
- return true; |
- } |
- |
- // We've found an SRP - stop searching (even if we did not record the |
- // search terms, as anything before this entry will be unrelated). |
- break; |
- } |
- } |
- |
- // Do not consider any navigations that precede a non-web-triggerable |
- // navigation as they are not related to those terms. |
- if (!ui::PageTransitionIsWebTriggerable( |
- entry->GetTransitionType())) { |
- break; |
- } |
- } |
- |
- return false; |
-} |
- |
-void SearchTermsTracker::RemoveTabData( |
- const content::WebContents* contents) { |
- TabState::iterator it = tabs_.find(contents); |
- if (it != tabs_.end()) { |
- tabs_.erase(it); |
- } |
-} |
- |
-} // namespace chrome |