#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_test_message_listener.h"
#include "chrome/browser/extensions/external_policy_loader.h"
#include "chrome/browser/extensions/updater/extension_downloader.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/test/browser_test_utils.h"
#include "content/test/net/url_request_prepackaged_interceptor.h"
+#include "extensions/browser/extension_registry.h"
+#include "extensions/browser/extension_system.h"
#include "extensions/browser/pref_names.h"
#include "net/url_request/url_fetcher.h"
using extensions::Extension;
+using extensions::ExtensionRegistry;
using extensions::Manifest;
class ExtensionManagementTest : public ExtensionBrowserTest {
IN_PROC_BROWSER_TEST_F(ExtensionManagementTest, DisableEnable) {
extensions::ProcessManager* manager =
extensions::ExtensionSystem::Get(browser()->profile())->process_manager();
- ExtensionService* service = extensions::ExtensionSystem::Get(
- browser()->profile())->extension_service();
- const size_t size_before = service->extensions()->size();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
// Load an extension, expect the background page to be available.
std::string extension_id = "bjafgdebaacbbbecmhlhpofkepfkgcpa";
test_data_dir_.AppendASCII("good").AppendASCII("Extensions")
.AppendASCII(extension_id)
.AppendASCII("1.0")));
- ASSERT_EQ(size_before + 1, service->extensions()->size());
- EXPECT_EQ(0u, service->disabled_extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
+ EXPECT_EQ(0u, registry->disabled_extensions().size());
EXPECT_TRUE(manager->GetBackgroundHostForExtension(extension_id));
// After disabling, the background page should go away.
DisableExtension(extension_id);
- EXPECT_EQ(size_before, service->extensions()->size());
- EXPECT_EQ(1u, service->disabled_extensions()->size());
+ EXPECT_EQ(size_before, registry->enabled_extensions().size());
+ EXPECT_EQ(1u, registry->disabled_extensions().size());
EXPECT_FALSE(manager->GetBackgroundHostForExtension(extension_id));
// And bring it back.
EnableExtension(extension_id);
- EXPECT_EQ(size_before + 1, service->extensions()->size());
- EXPECT_EQ(0u, service->disabled_extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
+ EXPECT_EQ(0u, registry->disabled_extensions().size());
EXPECT_TRUE(manager->GetBackgroundHostForExtension(extension_id));
}
ExtensionTestMessageListener listener1("v1 installed", false);
ExtensionService* service = extensions::ExtensionSystem::Get(
browser()->profile())->extension_service();
- const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(service->disabled_extensions()->is_empty());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
+ ASSERT_TRUE(registry->disabled_extensions().is_empty());
const Extension* extension =
InstallExtension(basedir.AppendASCII("v1.crx"), 1);
ASSERT_TRUE(extension);
listener1.WaitUntilSatisfied();
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf", extension->id());
ASSERT_EQ("1.0", extension->VersionString());
service->updater()->CheckNow(params);
ASSERT_TRUE(WaitForExtensionInstall());
listener2.WaitUntilSatisfied();
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
extension = service->GetExtensionById(
"ogjcoiohnmldgjemafoockdghcjciccf", false);
ASSERT_TRUE(extension);
"ogjcoiohnmldgjemafoockdghcjciccf"));
// Make sure the extension state is the same as before.
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
extension = service->GetExtensionById(
"ogjcoiohnmldgjemafoockdghcjciccf", false);
ASSERT_TRUE(extension);
ExtensionTestMessageListener listener1("v1 installed", false);
ExtensionService* service = extensions::ExtensionSystem::Get(
browser()->profile())->extension_service();
- const size_t enabled_size_before = service->extensions()->size();
- const size_t disabled_size_before = service->disabled_extensions()->size();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+ const size_t enabled_size_before = registry->enabled_extensions().size();
+ const size_t disabled_size_before = registry->disabled_extensions().size();
const Extension* extension =
InstallExtension(basedir.AppendASCII("v1.crx"), 1);
ASSERT_TRUE(extension);
listener1.WaitUntilSatisfied();
DisableExtension(extension->id());
- ASSERT_EQ(disabled_size_before + 1, service->disabled_extensions()->size());
- ASSERT_EQ(enabled_size_before, service->extensions()->size());
+ ASSERT_EQ(disabled_size_before + 1, registry->disabled_extensions().size());
+ ASSERT_EQ(enabled_size_before, registry->enabled_extensions().size());
ASSERT_EQ("ogjcoiohnmldgjemafoockdghcjciccf", extension->id());
ASSERT_EQ("1.0", extension->VersionString());
// is still disabled.
service->updater()->CheckNow(params);
ASSERT_TRUE(WaitForExtensionInstall());
- ASSERT_EQ(disabled_size_before + 1, service->disabled_extensions()->size());
- ASSERT_EQ(enabled_size_before, service->extensions()->size());
+ ASSERT_EQ(disabled_size_before + 1, registry->disabled_extensions().size());
+ ASSERT_EQ(enabled_size_before, registry->enabled_extensions().size());
extension = service->GetExtensionById(
"ogjcoiohnmldgjemafoockdghcjciccf", true);
ASSERT_TRUE(extension);
interceptor.SetResponseIgnoreQuery(GURL("http://localhost/autoupdate/v2.crx"),
basedir.AppendASCII("v2.crx"));
- const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(service->disabled_extensions()->is_empty());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
+ ASSERT_TRUE(registry->disabled_extensions().is_empty());
extensions::PendingExtensionManager* pending_extension_manager =
service->pending_extension_manager();
// Run autoupdate and make sure version 2 of the extension was installed.
service->updater()->CheckNow(params);
ASSERT_TRUE(WaitForExtensionInstall());
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
const Extension* extension = service->GetExtensionById(kExtensionId, false);
ASSERT_TRUE(extension);
ASSERT_EQ("2.0", extension->VersionString());
interceptor.SetResponseIgnoreQuery(GURL("http://localhost/autoupdate/v2.crx"),
basedir.AppendASCII("v2.crx"));
- const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(service->disabled_extensions()->is_empty());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
+ const size_t size_before = registry->enabled_extensions().size();
+ ASSERT_TRUE(registry->disabled_extensions().is_empty());
PrefService* prefs = browser()->profile()->GetPrefs();
const base::DictionaryValue* forcelist =
// Check if the extension got installed.
ASSERT_TRUE(WaitForExtensionInstall());
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
const Extension* extension = service->GetExtensionById(kExtensionId, false);
ASSERT_TRUE(extension);
ASSERT_EQ("2.0", extension->VersionString());
// Try to disable and uninstall the extension which should fail.
DisableExtension(kExtensionId);
- EXPECT_EQ(size_before + 1, service->extensions()->size());
- EXPECT_EQ(0u, service->disabled_extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
+ EXPECT_EQ(0u, registry->disabled_extensions().size());
UninstallExtension(kExtensionId);
- EXPECT_EQ(size_before + 1, service->extensions()->size());
- EXPECT_EQ(0u, service->disabled_extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
+ EXPECT_EQ(0u, registry->disabled_extensions().size());
// Now try to disable it through the management api, again failing.
ExtensionTestMessageListener listener1("ready", false);
ASSERT_TRUE(LoadExtension(
test_data_dir_.AppendASCII("management/uninstall_extension")));
ASSERT_TRUE(listener1.WaitUntilSatisfied());
- EXPECT_EQ(size_before + 2, service->extensions()->size());
- EXPECT_EQ(0u, service->disabled_extensions()->size());
+ EXPECT_EQ(size_before + 2, registry->enabled_extensions().size());
+ EXPECT_EQ(0u, registry->disabled_extensions().size());
// Check that emptying the list triggers uninstall.
prefs->ClearPref(extensions::pref_names::kInstallForceList);
- EXPECT_EQ(size_before + 1, service->extensions()->size());
+ EXPECT_EQ(size_before + 1, registry->enabled_extensions().size());
EXPECT_FALSE(service->GetExtensionById(kExtensionId, true));
}
MAYBE_PolicyOverridesUserInstall) {
ExtensionService* service = extensions::ExtensionSystem::Get(
browser()->profile())->extension_service();
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
const char* kExtensionId = "ogjcoiohnmldgjemafoockdghcjciccf";
extensions::ExtensionUpdater::CheckParams params;
service->updater()->set_default_check_params(params);
- const size_t size_before = service->extensions()->size();
+ const size_t size_before = registry->enabled_extensions().size();
base::FilePath basedir = test_data_dir_.AppendASCII("autoupdate");
- ASSERT_TRUE(service->disabled_extensions()->is_empty());
+ ASSERT_TRUE(registry->disabled_extensions().is_empty());
// Note: This interceptor gets requests on the IO thread.
content::URLLocalHostRequestPrepackagedInterceptor interceptor;
// User install of the extension.
ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
const Extension* extension = service->GetExtensionById(kExtensionId, false);
ASSERT_TRUE(extension);
EXPECT_EQ(Manifest::INTERNAL, extension->location());
"http://localhost/autoupdate/manifest");
}
ASSERT_TRUE(WaitForExtensionInstall());
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
extension = service->GetExtensionById(kExtensionId, false);
ASSERT_TRUE(extension);
EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, extension->location());
// and reverted location to INTERNAL or whatever it was before the policy
// was applied.
prefs->ClearPref(extensions::pref_names::kInstallForceList);
- ASSERT_EQ(size_before, service->extensions()->size());
+ ASSERT_EQ(size_before, registry->enabled_extensions().size());
extension = service->GetExtensionById(kExtensionId, true);
EXPECT_FALSE(extension);
// User install again, but have it disabled too before setting the policy.
ASSERT_TRUE(InstallExtension(basedir.AppendASCII("v2.crx"), 1));
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
extension = service->GetExtensionById(kExtensionId, false);
ASSERT_TRUE(extension);
EXPECT_EQ(Manifest::INTERNAL, extension->location());
EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
- EXPECT_TRUE(service->disabled_extensions()->is_empty());
+ EXPECT_TRUE(registry->disabled_extensions().is_empty());
DisableExtension(kExtensionId);
- EXPECT_EQ(1u, service->disabled_extensions()->size());
+ EXPECT_EQ(1u, registry->disabled_extensions().size());
extension = service->GetExtensionById(kExtensionId, true);
EXPECT_TRUE(extension);
EXPECT_FALSE(service->IsExtensionEnabled(kExtensionId));
forcelist, kExtensionId, "http://localhost/autoupdate/manifest");
}
ASSERT_TRUE(WaitForExtensionInstall());
- ASSERT_EQ(size_before + 1, service->extensions()->size());
+ ASSERT_EQ(size_before + 1, registry->enabled_extensions().size());
extension = service->GetExtensionById(kExtensionId, false);
ASSERT_TRUE(extension);
EXPECT_EQ(Manifest::EXTERNAL_POLICY_DOWNLOAD, extension->location());
EXPECT_TRUE(service->IsExtensionEnabled(kExtensionId));
- EXPECT_TRUE(service->disabled_extensions()->is_empty());
+ EXPECT_TRUE(registry->disabled_extensions().is_empty());
}