Chromium Code Reviews| Index: chrome/browser/extensions/test_extension_prefs.cc |
| diff --git a/chrome/browser/extensions/test_extension_prefs.cc b/chrome/browser/extensions/test_extension_prefs.cc |
| index 70cc667b1ea182ecab8ec7829bc1d0d414c7af26..bcd27bb7e4950c45f7deb8f95d583bac58a8d5f9 100644 |
| --- a/chrome/browser/extensions/test_extension_prefs.cc |
| +++ b/chrome/browser/extensions/test_extension_prefs.cc |
| @@ -16,6 +16,8 @@ |
| #include "base/synchronization/waitable_event.h" |
| #include "base/thread_task_runner_handle.h" |
| #include "base/values.h" |
| +#include "chrome/browser/extensions/chrome_app_sorting.h" |
| +#include "chrome/browser/extensions/test_extension_system.h" |
| #include "chrome/browser/prefs/pref_service_mock_factory.h" |
| #include "chrome/browser/prefs/pref_service_syncable.h" |
| #include "chrome/common/chrome_constants.h" |
| @@ -25,6 +27,8 @@ |
| #include "extensions/browser/extension_pref_store.h" |
| #include "extensions/browser/extension_pref_value_map.h" |
| #include "extensions/browser/extension_prefs.h" |
| +#include "extensions/browser/extension_prefs_factory.h" |
| +#include "extensions/browser/extension_system.h" |
| #include "extensions/browser/extensions_browser_client.h" |
| #include "extensions/common/extension.h" |
| #include "extensions/common/manifest_constants.h" |
| @@ -74,6 +78,14 @@ TestExtensionPrefs::TestExtensionPrefs( |
| TestExtensionPrefs::~TestExtensionPrefs() { |
| } |
| +ExtensionPrefs* TestExtensionPrefs::prefs() { |
| + return ExtensionPrefs::Get(&profile_); |
| +} |
| + |
| +const ExtensionPrefs& TestExtensionPrefs::const_prefs() const { |
|
not at google - send to devlin
2015/08/03 21:12:08
Is there even any point in this const version? Whe
Marc Treib
2015/08/04 08:36:28
I hadn't checked. You're right, it's not used anyw
|
| + return *ExtensionPrefs::Get(const_cast<TestingProfile*>(&profile_)); |
| +} |
| + |
| PrefService* TestExtensionPrefs::pref_service() { |
| return pref_service_.get(); |
| } |
| @@ -111,17 +123,22 @@ void TestExtensionPrefs::RecreateExtensionPrefs() { |
| factory.set_extension_prefs( |
| new ExtensionPrefStore(extension_pref_value_map_.get(), false)); |
| pref_service_ = factory.CreateSyncable(pref_registry_.get()).Pass(); |
| - |
| - prefs_.reset(ExtensionPrefs::Create( |
| + scoped_ptr<ExtensionPrefs> prefs(ExtensionPrefs::Create( |
| + &profile_, |
| pref_service_.get(), |
| temp_dir_.path(), |
| extension_pref_value_map_.get(), |
| - ExtensionsBrowserClient::Get()->CreateAppSorting(nullptr).Pass(), |
| extensions_disabled_, |
| std::vector<ExtensionPrefsObserver*>(), |
| // Guarantee that no two extensions get the same installation time |
| // stamp and we can reliably assert the installation order in the tests. |
| scoped_ptr<ExtensionPrefs::TimeProvider>(new IncrementalTimeProvider()))); |
| + ExtensionPrefsFactory::GetInstance()->SetInstanceForTesting(&profile_, |
| + prefs.Pass()); |
| + // Hack: After recreating ExtensionPrefs, the AppSorting also needs to be |
| + // recreated. (ExtensionPrefs is never recreated in non-test code.) |
| + static_cast<TestExtensionSystem*>(ExtensionSystem::Get(&profile_)) |
| + ->RecreateAppSorting(); |
| } |
| scoped_refptr<Extension> TestExtensionPrefs::AddExtension( |
| @@ -163,10 +180,10 @@ scoped_refptr<Extension> TestExtensionPrefs::AddExtensionWithManifestAndFlags( |
| return NULL; |
| EXPECT_TRUE(crx_file::id_util::IdIsValid(extension->id())); |
| - prefs_->OnExtensionInstalled(extension.get(), |
| - Extension::ENABLED, |
| - syncer::StringOrdinal::CreateInitialOrdinal(), |
| - std::string()); |
| + prefs()->OnExtensionInstalled(extension.get(), |
| + Extension::ENABLED, |
| + syncer::StringOrdinal::CreateInitialOrdinal(), |
| + std::string()); |
| return extension; |
| } |
| @@ -177,10 +194,10 @@ std::string TestExtensionPrefs::AddExtensionAndReturnId( |
| } |
| void TestExtensionPrefs::AddExtension(Extension* extension) { |
| - prefs_->OnExtensionInstalled(extension, |
| - Extension::ENABLED, |
| - syncer::StringOrdinal::CreateInitialOrdinal(), |
| - std::string()); |
| + prefs()->OnExtensionInstalled(extension, |
| + Extension::ENABLED, |
| + syncer::StringOrdinal::CreateInitialOrdinal(), |
| + std::string()); |
| } |
| PrefService* TestExtensionPrefs::CreateIncognitoPrefService() const { |
| @@ -192,4 +209,9 @@ void TestExtensionPrefs::set_extensions_disabled(bool extensions_disabled) { |
| extensions_disabled_ = extensions_disabled; |
| } |
| +ChromeAppSorting* TestExtensionPrefs::app_sorting() { |
| + return static_cast<ChromeAppSorting*>( |
| + ExtensionSystem::Get(&profile_)->app_sorting()); |
| +} |
| + |
| } // namespace extensions |