Make scheduler configuration default controllable via finch.
Introduce a new finch experiment which provides the default scheduler
configuration setting to use via its "config" parameter. This is used
as the default in absence of any other configuration.
BUG=chromium:927840
TEST=Unit tests.
Change-Id: I675e365f89dde1fed35dfaaaf27a9e8e8297148b
Reviewed-on: https://chromium-review.googlesource.com/c/1456070
Commit-Queue: Mattias Nissler <[email protected]>
Reviewed-by: Dan Erat <[email protected]>
Cr-Commit-Position: refs/heads/master@{#632130}
diff --git a/chrome/browser/chromeos/scheduler_configuration_manager_unittest.cc b/chrome/browser/chromeos/scheduler_configuration_manager_unittest.cc
index e1507d6..d614f591 100644
--- a/chrome/browser/chromeos/scheduler_configuration_manager_unittest.cc
+++ b/chrome/browser/chromeos/scheduler_configuration_manager_unittest.cc
@@ -6,7 +6,9 @@
#include <memory>
+#include "base/test/scoped_feature_list.h"
#include "base/test/scoped_task_environment.h"
+#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chromeos/dbus/fake_debug_daemon_client.h"
#include "components/prefs/testing_pref_service.h"
@@ -79,4 +81,20 @@
debug_daemon_client_.scheduler_configuration_name());
}
+TEST_F(SchedulerConfigurationManagerTest, FinchDefault) {
+ auto feature_list = std::make_unique<base::test::ScopedFeatureList>();
+ feature_list->InitAndEnableFeatureWithParameters(
+ features::kSchedulerConfiguration, {{"config", "finch"}});
+
+ // Finch parameter selects the default.
+ SchedulerConfigurationManager manager(&debug_daemon_client_, &local_state_);
+ scoped_task_environment_.RunUntilIdle();
+ EXPECT_EQ("finch", debug_daemon_client_.scheduler_configuration_name());
+
+ // Config values override finch default.
+ local_state_.SetString(prefs::kSchedulerConfiguration, "config");
+ scoped_task_environment_.RunUntilIdle();
+ EXPECT_EQ("config", debug_daemon_client_.scheduler_configuration_name());
+}
+
} // namespace chromeos