11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2013 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/profile_resetter/automatic_profile_resetter_factory.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/memory/singleton.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/prefs/pref_registry_simple.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/profile_resetter/automatic_profile_resetter.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/profiles/profile.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/search_engines/template_url_service_factory.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/ui/global_error/global_error_service_factory.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/common/pref_names.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/keyed_service/content/browser_context_dependency_manager.h" 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/pref_registry/pref_registry_syncable.h" 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/public/browser/browser_context.h" 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// static 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciAutomaticProfileResetter* AutomaticProfileResetterFactory::GetForBrowserContext( 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci content::BrowserContext* context) { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return static_cast<AutomaticProfileResetter*>( 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci GetInstance()->GetServiceForBrowserContext(context, true)); 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// static 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciAutomaticProfileResetterFactory* 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciAutomaticProfileResetterFactory::GetInstance() { 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return Singleton<AutomaticProfileResetterFactory>::get(); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// static 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid AutomaticProfileResetterFactory::RegisterPrefs( 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PrefRegistrySimple* registry) { 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci registry->RegisterDictionaryPref( 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci prefs::kProfileResetPromptMementosInLocalState); 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciAutomaticProfileResetterFactory::AutomaticProfileResetterFactory() 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci : BrowserContextKeyedServiceFactory( 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci "AutomaticProfileResetter", 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci BrowserContextDependencyManager::GetInstance()) { 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DependsOn(TemplateURLServiceFactory::GetInstance()); 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DependsOn(GlobalErrorServiceFactory::GetInstance()); 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciAutomaticProfileResetterFactory::~AutomaticProfileResetterFactory() {} 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciKeyedService* AutomaticProfileResetterFactory::BuildServiceInstanceFor( 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci content::BrowserContext* context) const { 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Profile* profile = Profile::FromBrowserContext(context); 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci AutomaticProfileResetter* service = new AutomaticProfileResetter(profile); 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci service->Initialize(); 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci service->Activate(); 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return service; 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid AutomaticProfileResetterFactory::RegisterProfilePrefs( 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci user_prefs::PrefRegistrySyncable* registry) { 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci registry->RegisterStringPref( 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci prefs::kProfileResetPromptMementoInProfilePrefs, 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci "", 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool AutomaticProfileResetterFactory:: 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ServiceIsCreatedWithBrowserContext() const { 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool AutomaticProfileResetterFactory::ServiceIsNULLWhileTesting() const { 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 73