OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/test/base/testing_profile.h" | 5 #include "chrome/test/base/testing_profile.h" |
6 | 6 |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 | 8 |
9 #include "base/base_paths.h" | 9 #include "base/base_paths.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 #include "chrome/browser/net/pref_proxy_config_tracker.h" | 40 #include "chrome/browser/net/pref_proxy_config_tracker.h" |
41 #include "chrome/browser/net/proxy_service_factory.h" | 41 #include "chrome/browser/net/proxy_service_factory.h" |
42 #include "chrome/browser/notifications/desktop_notification_service.h" | 42 #include "chrome/browser/notifications/desktop_notification_service.h" |
43 #include "chrome/browser/notifications/desktop_notification_service_factory.h" | 43 #include "chrome/browser/notifications/desktop_notification_service_factory.h" |
44 #include "chrome/browser/policy/profile_policy_connector.h" | 44 #include "chrome/browser/policy/profile_policy_connector.h" |
45 #include "chrome/browser/policy/profile_policy_connector_factory.h" | 45 #include "chrome/browser/policy/profile_policy_connector_factory.h" |
46 #include "chrome/browser/prefs/browser_prefs.h" | 46 #include "chrome/browser/prefs/browser_prefs.h" |
47 #include "chrome/browser/prefs/pref_service_syncable.h" | 47 #include "chrome/browser/prefs/pref_service_syncable.h" |
48 #include "chrome/browser/prerender/prerender_manager.h" | 48 #include "chrome/browser/prerender/prerender_manager.h" |
49 #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" | 49 #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" |
| 50 #include "chrome/browser/profiles/profile_manager.h" |
50 #include "chrome/browser/profiles/storage_partition_descriptor.h" | 51 #include "chrome/browser/profiles/storage_partition_descriptor.h" |
51 #include "chrome/browser/search_engines/template_url_fetcher_factory.h" | 52 #include "chrome/browser/search_engines/template_url_fetcher_factory.h" |
52 #include "chrome/browser/webdata/web_data_service.h" | 53 #include "chrome/browser/webdata/web_data_service.h" |
53 #include "chrome/browser/webdata/web_data_service_factory.h" | 54 #include "chrome/browser/webdata/web_data_service_factory.h" |
54 #include "chrome/common/chrome_constants.h" | 55 #include "chrome/common/chrome_constants.h" |
55 #include "chrome/common/chrome_switches.h" | 56 #include "chrome/common/chrome_switches.h" |
56 #include "chrome/common/pref_names.h" | 57 #include "chrome/common/pref_names.h" |
57 #include "chrome/common/url_constants.h" | 58 #include "chrome/common/url_constants.h" |
58 #include "chrome/test/base/history_index_restore_observer.h" | 59 #include "chrome/test/base/history_index_restore_observer.h" |
59 #include "chrome/test/base/testing_pref_service_syncable.h" | 60 #include "chrome/test/base/testing_pref_service_syncable.h" |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 FinishInit(); | 224 FinishInit(); |
224 } | 225 } |
225 } | 226 } |
226 | 227 |
227 TestingProfile::TestingProfile( | 228 TestingProfile::TestingProfile( |
228 const base::FilePath& path, | 229 const base::FilePath& path, |
229 Delegate* delegate, | 230 Delegate* delegate, |
230 scoped_refptr<ExtensionSpecialStoragePolicy> extension_policy, | 231 scoped_refptr<ExtensionSpecialStoragePolicy> extension_policy, |
231 scoped_ptr<PrefServiceSyncable> prefs, | 232 scoped_ptr<PrefServiceSyncable> prefs, |
232 bool incognito, | 233 bool incognito, |
| 234 const std::string& managed_user_id, |
233 const TestingFactories& factories) | 235 const TestingFactories& factories) |
234 : start_time_(Time::Now()), | 236 : start_time_(Time::Now()), |
235 prefs_(prefs.release()), | 237 prefs_(prefs.release()), |
236 testing_prefs_(NULL), | 238 testing_prefs_(NULL), |
237 incognito_(incognito), | 239 incognito_(incognito), |
238 force_incognito_(false), | 240 force_incognito_(false), |
239 original_profile_(NULL), | 241 original_profile_(NULL), |
| 242 managed_user_id_(managed_user_id), |
240 last_session_exited_cleanly_(true), | 243 last_session_exited_cleanly_(true), |
241 extension_special_storage_policy_(extension_policy), | 244 extension_special_storage_policy_(extension_policy), |
242 profile_path_(path), | 245 profile_path_(path), |
243 browser_context_dependency_manager_( | 246 browser_context_dependency_manager_( |
244 BrowserContextDependencyManager::GetInstance()), | 247 BrowserContextDependencyManager::GetInstance()), |
245 resource_context_(NULL), | 248 resource_context_(NULL), |
246 delegate_(delegate) { | 249 delegate_(delegate) { |
247 | 250 |
248 // If no profile path was supplied, create one. | 251 // If no profile path was supplied, create one. |
249 if (profile_path_.empty()) { | 252 if (profile_path_.empty()) { |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 profile_name_ = "testing_profile"; | 351 profile_name_ = "testing_profile"; |
349 } | 352 } |
350 | 353 |
351 void TestingProfile::FinishInit() { | 354 void TestingProfile::FinishInit() { |
352 DCHECK(content::NotificationService::current()); | 355 DCHECK(content::NotificationService::current()); |
353 content::NotificationService::current()->Notify( | 356 content::NotificationService::current()->Notify( |
354 chrome::NOTIFICATION_PROFILE_CREATED, | 357 chrome::NOTIFICATION_PROFILE_CREATED, |
355 content::Source<Profile>(static_cast<Profile*>(this)), | 358 content::Source<Profile>(static_cast<Profile*>(this)), |
356 content::NotificationService::NoDetails()); | 359 content::NotificationService::NoDetails()); |
357 | 360 |
| 361 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| 362 if (profile_manager) |
| 363 profile_manager->InitProfileUserPrefs(this); |
| 364 |
358 if (delegate_) | 365 if (delegate_) |
359 delegate_->OnProfileCreated(this, true, false); | 366 delegate_->OnProfileCreated(this, true, false); |
360 } | 367 } |
361 | 368 |
362 TestingProfile::~TestingProfile() { | 369 TestingProfile::~TestingProfile() { |
363 // Revert to non-incognito mode before shutdown. | 370 // Revert to non-incognito mode before shutdown. |
364 force_incognito_ = false; | 371 force_incognito_ = false; |
365 | 372 |
366 // Any objects holding live URLFetchers should be deleted before teardown. | 373 // Any objects holding live URLFetchers should be deleted before teardown. |
367 TemplateURLFetcherFactory::ShutdownForProfile(this); | 374 TemplateURLFetcherFactory::ShutdownForProfile(this); |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
579 return incognito_profile_.get() != NULL; | 586 return incognito_profile_.get() != NULL; |
580 } | 587 } |
581 | 588 |
582 Profile* TestingProfile::GetOriginalProfile() { | 589 Profile* TestingProfile::GetOriginalProfile() { |
583 if (original_profile_) | 590 if (original_profile_) |
584 return original_profile_; | 591 return original_profile_; |
585 return this; | 592 return this; |
586 } | 593 } |
587 | 594 |
588 bool TestingProfile::IsManaged() { | 595 bool TestingProfile::IsManaged() { |
589 return !GetPrefs()->GetString(prefs::kManagedUserId).empty(); | 596 return !managed_user_id_.empty(); |
590 } | 597 } |
591 | 598 |
592 ExtensionService* TestingProfile::GetExtensionService() { | 599 ExtensionService* TestingProfile::GetExtensionService() { |
593 return extensions::ExtensionSystem::Get(this)->extension_service(); | 600 return extensions::ExtensionSystem::Get(this)->extension_service(); |
594 } | 601 } |
595 | 602 |
596 void TestingProfile::SetExtensionSpecialStoragePolicy( | 603 void TestingProfile::SetExtensionSpecialStoragePolicy( |
597 ExtensionSpecialStoragePolicy* extension_special_storage_policy) { | 604 ExtensionSpecialStoragePolicy* extension_special_storage_policy) { |
598 extension_special_storage_policy_ = extension_special_storage_policy; | 605 extension_special_storage_policy_ = extension_special_storage_policy; |
599 } | 606 } |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
859 | 866 |
860 void TestingProfile::Builder::SetPrefService( | 867 void TestingProfile::Builder::SetPrefService( |
861 scoped_ptr<PrefServiceSyncable> prefs) { | 868 scoped_ptr<PrefServiceSyncable> prefs) { |
862 pref_service_ = prefs.Pass(); | 869 pref_service_ = prefs.Pass(); |
863 } | 870 } |
864 | 871 |
865 void TestingProfile::Builder::SetIncognito() { | 872 void TestingProfile::Builder::SetIncognito() { |
866 incognito_ = true; | 873 incognito_ = true; |
867 } | 874 } |
868 | 875 |
| 876 void TestingProfile::Builder::SetManagedUserId( |
| 877 const std::string& managed_user_id) { |
| 878 managed_user_id_ = managed_user_id; |
| 879 } |
| 880 |
869 void TestingProfile::Builder::AddTestingFactory( | 881 void TestingProfile::Builder::AddTestingFactory( |
870 BrowserContextKeyedServiceFactory* service_factory, | 882 BrowserContextKeyedServiceFactory* service_factory, |
871 BrowserContextKeyedServiceFactory::FactoryFunction callback) { | 883 BrowserContextKeyedServiceFactory::FactoryFunction callback) { |
872 testing_factories_.push_back(std::make_pair(service_factory, callback)); | 884 testing_factories_.push_back(std::make_pair(service_factory, callback)); |
873 } | 885 } |
874 | 886 |
875 scoped_ptr<TestingProfile> TestingProfile::Builder::Build() { | 887 scoped_ptr<TestingProfile> TestingProfile::Builder::Build() { |
876 DCHECK(!build_called_); | 888 DCHECK(!build_called_); |
877 build_called_ = true; | 889 build_called_ = true; |
| 890 |
878 return scoped_ptr<TestingProfile>(new TestingProfile( | 891 return scoped_ptr<TestingProfile>(new TestingProfile( |
879 path_, | 892 path_, |
880 delegate_, | 893 delegate_, |
881 extension_policy_, | 894 extension_policy_, |
882 pref_service_.Pass(), | 895 pref_service_.Pass(), |
883 incognito_, | 896 incognito_, |
| 897 managed_user_id_, |
884 testing_factories_)); | 898 testing_factories_)); |
885 } | 899 } |
OLD | NEW |