| Index: chrome/browser/rlz/chrome_rlz_tracker_delegate.cc
|
| diff --git a/chrome/browser/rlz/chrome_rlz_tracker_delegate.cc b/chrome/browser/rlz/chrome_rlz_tracker_delegate.cc
|
| deleted file mode 100644
|
| index 091bac10bf5e9613b72152825744c5eb216cff26..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/rlz/chrome_rlz_tracker_delegate.cc
|
| +++ /dev/null
|
| @@ -1,236 +0,0 @@
|
| -// Copyright 2015 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/rlz/chrome_rlz_tracker_delegate.h"
|
| -
|
| -#include "base/command_line.h"
|
| -#include "base/prefs/pref_service.h"
|
| -#include "chrome/browser/browser_process.h"
|
| -#include "chrome/browser/chrome_notification_types.h"
|
| -#include "chrome/browser/google/google_brand.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/search_engines/template_url_service_factory.h"
|
| -#include "chrome/common/chrome_switches.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "components/google/core/browser/google_util.h"
|
| -#include "components/omnibox/browser/omnibox_log.h"
|
| -#include "components/search_engines/template_url.h"
|
| -#include "components/search_engines/template_url_service.h"
|
| -#include "content/public/browser/browser_thread.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_details.h"
|
| -#include "content/public/browser/notification_service.h"
|
| -#include "content/public/browser/notification_source.h"
|
| -
|
| -#if defined(OS_WIN)
|
| -#include "chrome/installer/util/google_update_settings.h"
|
| -#endif
|
| -
|
| -#if !defined(OS_IOS)
|
| -#include "chrome/browser/prefs/session_startup_pref.h"
|
| -#include "chrome/browser/ui/startup/startup_browser_creator.h"
|
| -#endif
|
| -
|
| -ChromeRLZTrackerDelegate::ChromeRLZTrackerDelegate() {
|
| -}
|
| -
|
| -ChromeRLZTrackerDelegate::~ChromeRLZTrackerDelegate() {
|
| -}
|
| -
|
| -// static
|
| -bool ChromeRLZTrackerDelegate::IsGoogleDefaultSearch(Profile* profile) {
|
| - bool is_google_default_search = false;
|
| - TemplateURLService* template_url_service =
|
| - TemplateURLServiceFactory::GetForProfile(profile);
|
| - if (template_url_service) {
|
| - const TemplateURL* url_template =
|
| - template_url_service->GetDefaultSearchProvider();
|
| - is_google_default_search = url_template &&
|
| - url_template->url_ref().HasGoogleBaseURLs(
|
| - template_url_service->search_terms_data());
|
| - }
|
| - return is_google_default_search;
|
| -}
|
| -
|
| -// static
|
| -bool ChromeRLZTrackerDelegate::IsGoogleHomepage(Profile* profile) {
|
| - return google_util::IsGoogleHomePageUrl(
|
| - GURL(profile->GetPrefs()->GetString(prefs::kHomePage)));
|
| -}
|
| -
|
| -// static
|
| -bool ChromeRLZTrackerDelegate::IsGoogleInStartpages(Profile* profile) {
|
| -#if !defined(OS_IOS)
|
| - bool is_google_in_startpages = false;
|
| - SessionStartupPref session_startup_prefs =
|
| - StartupBrowserCreator::GetSessionStartupPref(
|
| - *base::CommandLine::ForCurrentProcess(), profile);
|
| - if (session_startup_prefs.type == SessionStartupPref::URLS) {
|
| - is_google_in_startpages =
|
| - std::count_if(session_startup_prefs.urls.begin(),
|
| - session_startup_prefs.urls.end(),
|
| - google_util::IsGoogleHomePageUrl) > 0;
|
| - }
|
| - return is_google_in_startpages;
|
| -#else
|
| - // iOS does not have a notion of startpages.
|
| - return false;
|
| -#endif
|
| -}
|
| -
|
| -void ChromeRLZTrackerDelegate::Cleanup() {
|
| - registrar_.RemoveAll();
|
| - on_omnibox_search_callback_.Reset();
|
| - on_homepage_search_callback_.Reset();
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::IsOnUIThread() {
|
| - return content::BrowserThread::CurrentlyOn(content::BrowserThread::UI);
|
| -}
|
| -
|
| -base::SequencedWorkerPool* ChromeRLZTrackerDelegate::GetBlockingPool() {
|
| - return content::BrowserThread::GetBlockingPool();
|
| -}
|
| -
|
| -net::URLRequestContextGetter* ChromeRLZTrackerDelegate::GetRequestContext() {
|
| - return g_browser_process->system_request_context();
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::GetBrand(std::string* brand) {
|
| - return google_brand::GetBrand(brand);
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::IsBrandOrganic(const std::string& brand) {
|
| - return brand.empty() || google_brand::IsOrganic(brand);
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::GetReactivationBrand(std::string* brand) {
|
| - return google_brand::GetReactivationBrand(brand);
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::ShouldEnableZeroDelayForTesting() {
|
| - return base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - ::switches::kTestType);
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::GetLanguage(base::string16* language) {
|
| -#if defined(OS_WIN)
|
| - return GoogleUpdateSettings::GetLanguage(language);
|
| -#else
|
| - // TODO(thakis): Implement.
|
| - NOTIMPLEMENTED();
|
| - return false;
|
| -#endif
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::GetReferral(base::string16* referral) {
|
| -#if defined(OS_WIN)
|
| - return GoogleUpdateSettings::GetReferral(referral);
|
| -#else
|
| - // The referral program is defunct and not used. No need to implement this
|
| - // function on non-Win platforms.
|
| - return true;
|
| -#endif
|
| -}
|
| -
|
| -bool ChromeRLZTrackerDelegate::ClearReferral() {
|
| -#if defined(OS_WIN)
|
| - return GoogleUpdateSettings::ClearReferral();
|
| -#else
|
| - // The referral program is defunct and not used. No need to implement this
|
| - // function on non-Win platforms.
|
| - return true;
|
| -#endif
|
| -}
|
| -
|
| -void ChromeRLZTrackerDelegate::SetOmniboxSearchCallback(
|
| - const base::Closure& callback) {
|
| - DCHECK(!callback.is_null());
|
| - registrar_.Add(this, chrome::NOTIFICATION_OMNIBOX_OPENED_URL,
|
| - content::NotificationService::AllSources());
|
| - on_omnibox_search_callback_ = callback;
|
| -}
|
| -
|
| -void ChromeRLZTrackerDelegate::SetHomepageSearchCallback(
|
| - const base::Closure& callback) {
|
| -#if !defined(OS_IOS)
|
| - DCHECK(!callback.is_null());
|
| - registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
|
| - content::NotificationService::AllSources());
|
| - on_homepage_search_callback_ = callback;
|
| -#endif
|
| -}
|
| -
|
| -void ChromeRLZTrackerDelegate::Observe(
|
| - int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| - using std::swap;
|
| - base::Closure callback_to_run;
|
| - switch (type) {
|
| - case chrome::NOTIFICATION_OMNIBOX_OPENED_URL:
|
| - // In M-36, we made NOTIFICATION_OMNIBOX_OPENED_URL fire more often than
|
| - // it did previously. The RLZ folks want RLZ's "first search" detection
|
| - // to remain as unaffected as possible by this change. This test is
|
| - // there to keep the old behavior.
|
| - if (!content::Details<OmniboxLog>(details).ptr()->is_popup_open)
|
| - break;
|
| - registrar_.Remove(this, chrome::NOTIFICATION_OMNIBOX_OPENED_URL,
|
| - content::NotificationService::AllSources());
|
| - swap(callback_to_run, on_omnibox_search_callback_);
|
| - break;
|
| -
|
| -#if !defined(OS_IOS)
|
| - case content::NOTIFICATION_NAV_ENTRY_COMMITTED: {
|
| - // Firstly check if it is a Google search.
|
| - content::LoadCommittedDetails* load_details =
|
| - content::Details<content::LoadCommittedDetails>(details).ptr();
|
| - if (load_details == nullptr)
|
| - break;
|
| -
|
| - content::NavigationEntry* entry = load_details->entry;
|
| - if (entry == nullptr)
|
| - break;
|
| -
|
| - if (google_util::IsGoogleSearchUrl(entry->GetURL())) {
|
| - // If it is a Google search, check if it originates from HOMEPAGE by
|
| - // getting the previous NavigationEntry.
|
| - content::NavigationController* controller =
|
| - content::Source<content::NavigationController>(source).ptr();
|
| - if (controller == nullptr)
|
| - break;
|
| -
|
| - int entry_index = controller->GetLastCommittedEntryIndex();
|
| - if (entry_index < 1)
|
| - break;
|
| -
|
| - const content::NavigationEntry* previous_entry =
|
| - controller->GetEntryAtIndex(entry_index - 1);
|
| -
|
| - if (previous_entry == nullptr)
|
| - break;
|
| -
|
| - // Make sure it is a Google web page originated from HOMEPAGE.
|
| - if (google_util::IsGoogleHomePageUrl(previous_entry->GetURL()) &&
|
| - ((previous_entry->GetTransitionType() &
|
| - ui::PAGE_TRANSITION_HOME_PAGE) != 0)) {
|
| - registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED,
|
| - content::NotificationService::AllSources());
|
| - swap(callback_to_run, on_homepage_search_callback_);
|
| - }
|
| - }
|
| - break;
|
| - }
|
| -#endif // !defined(OS_IOS)
|
| -
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| -
|
| - if (!callback_to_run.is_null())
|
| - callback_to_run.Run();
|
| -}
|
|
|