[Extensions] Migrate FeatureSwitch::scripts_require_action to base::Feature
Migrate the FeatureSwitch::scripts_require_action feature to a
base::Feature. base::Features are a little more flexible than
FeatureSwitch is now, since they are set up for finch experimentation
and are always sent to the renderer (avoiding a commandline hack in
place for the FeatureSwitch approach).
Also rename scripts_require_action to kRuntimeHostPermissions. This is
a little more descriptive, since the feature affects host permissions
beyond just scripting (e.g., cookies and webRequest).
Bug: 835339
Change-Id: I8b2a5c46a194655a811766114d8115da967719c0
Reviewed-on: https://chromium-review.googlesource.com/1022082
Commit-Queue: Devlin <[email protected]>
Reviewed-by: Karan Bhatia <[email protected]>
Cr-Commit-Position: refs/heads/master@{#553448}
diff --git a/chrome/browser/extensions/extension_action_runner_unittest.cc b/chrome/browser/extensions/extension_action_runner_unittest.cc
index 0be4201..0a43874c0 100644
--- a/chrome/browser/extensions/extension_action_runner_unittest.cc
+++ b/chrome/browser/extensions/extension_action_runner_unittest.cc
@@ -7,6 +7,7 @@
#include <map>
#include <utility>
+#include "base/test/scoped_feature_list.h"
#include "base/values.h"
#include "chrome/browser/extensions/active_tab_permission_granter.h"
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
@@ -25,7 +26,7 @@
#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_builder.h"
-#include "extensions/common/feature_switch.h"
+#include "extensions/common/extension_features.h"
#include "extensions/common/manifest.h"
#include "extensions/common/user_script.h"
#include "extensions/common/value_builder.h"
@@ -78,12 +79,12 @@
void SetUp() override;
- // Since ExtensionActionRunner's behavior is behind a flag, override the
- // feature switch.
- FeatureSwitch::ScopedOverride feature_override_;
+ // Used to enable features::kRuntimeHostPermissions for ExtensionActionRunner
+ // to take effect.
+ base::test::ScopedFeatureList scoped_feature_list_;
// The associated ExtensionActionRunner.
- ExtensionActionRunner* extension_action_runner_;
+ ExtensionActionRunner* extension_action_runner_ = nullptr;
// The map of observed executions, keyed by extension id.
std::map<std::string, int> extension_executions_;
@@ -93,12 +94,8 @@
DISALLOW_COPY_AND_ASSIGN(ExtensionActionRunnerUnitTest);
};
-ExtensionActionRunnerUnitTest::ExtensionActionRunnerUnitTest()
- : feature_override_(FeatureSwitch::scripts_require_action(),
- FeatureSwitch::OVERRIDE_ENABLED),
- extension_action_runner_(nullptr) {}
-
-ExtensionActionRunnerUnitTest::~ExtensionActionRunnerUnitTest() {}
+ExtensionActionRunnerUnitTest::ExtensionActionRunnerUnitTest() = default;
+ExtensionActionRunnerUnitTest::~ExtensionActionRunnerUnitTest() = default;
const Extension* ExtensionActionRunnerUnitTest::AddExtension() {
const std::string kId = crx_file::id_util::GenerateId("all_hosts_extension");
@@ -175,6 +172,8 @@
void ExtensionActionRunnerUnitTest::SetUp() {
ChromeRenderViewHostTestHarness::SetUp();
+ scoped_feature_list_.InitAndEnableFeature(features::kRuntimeHostPermissions);
+
// Skip syncing for testing purposes.
ExtensionSyncServiceFactory::GetInstance()->SetTestingFactory(profile(),
nullptr);