Commit 27e52832 authored by kalman@chromium.org's avatar kalman@chromium.org

Make ExtensionService::IsExtensionEnabled consider prefs blacklist state

when determining if an extension is enabled before it's loaded or the
service is ready.

BUG=376963
R=yoz@chromium.org

Review URL: https://codereview.chromium.org/292223003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273021 0039d316-1c4b-4281-b951-d872f2087c98
parent 07107815
......@@ -801,6 +801,7 @@ bool ExtensionService::IsExtensionEnabled(
// If the extension hasn't been loaded yet, check the prefs for it. Assume
// enabled unless otherwise noted.
return !extension_prefs_->IsExtensionDisabled(extension_id) &&
!extension_prefs_->IsExtensionBlacklisted(extension_id) &&
!extension_prefs_->IsExternalExtensionUninstalled(extension_id);
}
......
......@@ -3467,24 +3467,30 @@ TEST_F(ExtensionServiceTest, BlacklistedInPrefsFromStartup) {
test_blacklist.SetBlacklistState(
good1, extensions::BLACKLISTED_MALWARE, false);
// Extension service hasn't loaded yet, but IsExtensionEnabled reads out of
// prefs. Ensure it takes into account the blacklist state (crbug.com/373842).
EXPECT_FALSE(service_->IsExtensionEnabled(good0));
EXPECT_FALSE(service_->IsExtensionEnabled(good1));
EXPECT_TRUE(service_->IsExtensionEnabled(good2));
service_->Init();
ASSERT_EQ(2u, registry_->blacklisted_extensions().size());
ASSERT_EQ(1u, registry_->enabled_extensions().size());
EXPECT_EQ(2u, registry_->blacklisted_extensions().size());
EXPECT_EQ(1u, registry_->enabled_extensions().size());
ASSERT_TRUE(registry_->blacklisted_extensions().Contains(good0));
ASSERT_TRUE(registry_->blacklisted_extensions().Contains(good1));
ASSERT_TRUE(registry_->enabled_extensions().Contains(good2));
EXPECT_TRUE(registry_->blacklisted_extensions().Contains(good0));
EXPECT_TRUE(registry_->blacklisted_extensions().Contains(good1));
EXPECT_TRUE(registry_->enabled_extensions().Contains(good2));
// Give time for the blacklist to update.
base::RunLoop().RunUntilIdle();
ASSERT_EQ(1u, registry_->blacklisted_extensions().size());
ASSERT_EQ(2u, registry_->enabled_extensions().size());
EXPECT_EQ(1u, registry_->blacklisted_extensions().size());
EXPECT_EQ(2u, registry_->enabled_extensions().size());
ASSERT_TRUE(registry_->enabled_extensions().Contains(good0));
ASSERT_TRUE(registry_->blacklisted_extensions().Contains(good1));
ASSERT_TRUE(registry_->enabled_extensions().Contains(good2));
EXPECT_TRUE(registry_->enabled_extensions().Contains(good0));
EXPECT_TRUE(registry_->blacklisted_extensions().Contains(good1));
EXPECT_TRUE(registry_->enabled_extensions().Contains(good2));
}
#endif // defined(ENABLE_BLACKLIST_TESTS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment