Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1117)

Unified Diff: chrome/browser/extensions/extension_startup_browsertest.cc

Issue 2166513002: Create --disable-extensions-except switch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_startup_browsertest.cc
diff --git a/chrome/browser/extensions/extension_startup_browsertest.cc b/chrome/browser/extensions/extension_startup_browsertest.cc
index 462f2ba9d06049f078fcec1192e2ce90b9632be5..a05123f46e2d6e7ae2c58bebc477cf5d79793425 100644
--- a/chrome/browser/extensions/extension_startup_browsertest.cc
+++ b/chrome/browser/extensions/extension_startup_browsertest.cc
@@ -16,6 +16,7 @@
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
#include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/extensions/shared_user_script_master.h"
@@ -42,6 +43,7 @@
#include "net/base/filename_util.h"
using extensions::FeatureSwitch;
+using extensions::ExtensionRegistry;
// This file contains high-level startup tests for the extensions system. We've
// had many silly bugs where command line flags did not get propagated correctly
@@ -311,3 +313,50 @@ IN_PROC_BROWSER_TEST_F(ExtensionsLoadMultipleTest, Test) {
WaitForServicesToStart(4, true);
TestInjection(true, true);
}
+
+// DisableExtensionsExceptBrowserTest
Devlin 2016/07/25 19:10:29 This line probably isn't necessary.
catmullings 2016/07/27 01:29:45 Done.
+// Ensures that the --disable-extesions-except command line flag disables
Devlin 2016/07/25 19:10:30 This sounds like a test description, rather than a
catmullings 2016/07/27 01:29:45 Done.
catmullings 2016/07/27 01:29:46 I will just remove it.
+// all extensions except those listed.
+class DisableExtensionsExceptBrowserTest : public ExtensionBrowserTest {
+ public:
+ DisableExtensionsExceptBrowserTest() {}
+
+ void SetUpCommandLine(base::CommandLine* command_line) override;
+
+ ExtensionRegistry* GetExtensionRegistry() {
+ return ExtensionRegistry::Get(browser()->profile());
+ }
+};
+
+// Adds --disable-extesions-except command line flag.
Devlin 2016/07/25 19:10:29 Since this is pretty obvious from the code, I'd om
catmullings 2016/07/27 01:29:45 Done.
+void DisableExtensionsExceptBrowserTest::SetUpCommandLine(
+ base::CommandLine* command_line) {
+ ExtensionBrowserTest::SetUpCommandLine(command_line);
+
+ command_line->AppendSwitchASCII(
+ switches::kDisableExtensionsExcept,
+ "chrome/test/data/extensions/app_dot_com_app/");
Devlin 2016/07/25 19:10:30 Can we test with multiple extensions, too? Also,
catmullings 2016/07/27 01:29:46 Done.
+}
+
+// Tests disabling all extensions except those listed
+// (--disable-extensions-except).
+IN_PROC_BROWSER_TEST_F(DisableExtensionsExceptBrowserTest,
+ DisableExtensionsExceptFlag) {
+ EXPECT_FALSE(extension_service()->extensions_enabled());
+
+ // Count the number of component extensions.
+ int component_extensions = 0;
+ for (const scoped_refptr<const extensions::Extension>& extension :
+ GetExtensionRegistry()->enabled_extensions()) {
+ if (extension->location() == extensions::Manifest::COMPONENT)
Devlin 2016/07/25 19:10:29 prefer Manifest::IsComponentLocation() over compar
Devlin 2016/07/25 19:10:30 optional fanciness: component_extensions += Manife
catmullings 2016/07/27 01:29:46 Done.
catmullings 2016/07/27 01:29:46 Done.
+ component_extensions++;
+ }
+
+ // Number of enabled extensions should be the sum of the number of component
+ // extensions and the of number extensions installed with
+ // --disable-extensions-except.
+ int num_expected_extensions = component_extensions + 1;
+
+ EXPECT_EQ(static_cast<uint32_t>(num_expected_extensions),
Devlin 2016/07/25 19:10:29 Why not instantiate num_expected_extensions as siz
catmullings 2016/07/27 01:29:46 Done.
+ GetExtensionRegistry()->enabled_extensions().size());
Devlin 2016/07/25 19:10:30 Can we also check that the other extension is the
catmullings 2016/07/27 01:29:46 Done.
+}

Powered by Google App Engine
This is Rietveld 408576698