Commit c97490dc authored by Caitlin Fischer's avatar Caitlin Fischer Committed by Commit Bot

Clean up the GamepadPollingInterval feature.

Bug: 1126640
Change-Id: I2756db28b9f5e78d580c7de94263b651d842d900
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2435719Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarMatt Reynolds <mattreynolds@chromium.org>
Commit-Queue: Caitlin Fischer <caitlinfischer@google.com>
Cr-Commit-Position: refs/heads/master@{#811642}
parent 35be2105
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
namespace device { namespace device {
constexpr int64_t kPollingIntervalMilliseconds = 4; // ~250 Hz
GamepadProvider::GamepadProvider( GamepadProvider::GamepadProvider(
GamepadConnectionChangeClient* connection_change_client) GamepadConnectionChangeClient* connection_change_client)
: gamepad_shared_buffer_(std::make_unique<GamepadSharedBuffer>()), : gamepad_shared_buffer_(std::make_unique<GamepadSharedBuffer>()),
...@@ -139,7 +141,7 @@ void GamepadProvider::OnDevicesChanged(base::SystemMonitor::DeviceType type) { ...@@ -139,7 +141,7 @@ void GamepadProvider::OnDevicesChanged(base::SystemMonitor::DeviceType type) {
void GamepadProvider::Initialize(std::unique_ptr<GamepadDataFetcher> fetcher) { void GamepadProvider::Initialize(std::unique_ptr<GamepadDataFetcher> fetcher) {
sampling_interval_delta_ = sampling_interval_delta_ =
base::TimeDelta::FromMilliseconds(features::GetGamepadPollingInterval()); base::TimeDelta::FromMilliseconds(kPollingIntervalMilliseconds);
base::SystemMonitor* monitor = base::SystemMonitor::Get(); base::SystemMonitor* monitor = base::SystemMonitor::Get();
if (monitor) if (monitor)
......
...@@ -15,24 +15,6 @@ ...@@ -15,24 +15,6 @@
namespace features { namespace features {
namespace {
const size_t kPollingIntervalMillisecondsMin = 4; // ~250 Hz
const size_t kPollingIntervalMillisecondsMax = 16; // ~62.5 Hz
size_t OverrideIntervalIfValid(base::StringPiece param_value,
size_t default_interval) {
size_t interval;
if (param_value.empty() || !base::StringToSizeT(param_value, &interval))
return default_interval;
// Clamp interval duration to valid range.
interval = std::max(interval, kPollingIntervalMillisecondsMin);
interval = std::min(interval, kPollingIntervalMillisecondsMax);
return interval;
}
} // namespace
// Enables gamepadbuttondown, gamepadbuttonup, gamepadbuttonchange, // Enables gamepadbuttondown, gamepadbuttonup, gamepadbuttonchange,
// gamepadaxismove non-standard gamepad events. // gamepadaxismove non-standard gamepad events.
const base::Feature kEnableGamepadButtonAxisEvents{ const base::Feature kEnableGamepadButtonAxisEvents{
...@@ -42,15 +24,9 @@ const base::Feature kEnableGamepadButtonAxisEvents{ ...@@ -42,15 +24,9 @@ const base::Feature kEnableGamepadButtonAxisEvents{
const base::Feature kEnableWindowsGamingInputDataFetcher{ const base::Feature kEnableWindowsGamingInputDataFetcher{
"EnableWindowsGamingInputDataFetcher", base::FEATURE_DISABLED_BY_DEFAULT}; "EnableWindowsGamingInputDataFetcher", base::FEATURE_DISABLED_BY_DEFAULT};
// Overrides the gamepad polling interval.
const base::Feature kGamepadPollingInterval{"GamepadPollingInterval",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kRestrictGamepadAccess{"RestrictGamepadAccess", const base::Feature kRestrictGamepadAccess{"RestrictGamepadAccess",
base::FEATURE_DISABLED_BY_DEFAULT}; base::FEATURE_DISABLED_BY_DEFAULT};
const char kGamepadPollingIntervalParamKey[] = "interval-ms";
bool AreGamepadButtonAxisEventsEnabled() { bool AreGamepadButtonAxisEventsEnabled() {
// Check if button and axis events are enabled by a field trial. // Check if button and axis events are enabled by a field trial.
if (base::FeatureList::IsEnabled(kEnableGamepadButtonAxisEvents)) if (base::FeatureList::IsEnabled(kEnableGamepadButtonAxisEvents))
...@@ -66,27 +42,4 @@ bool AreGamepadButtonAxisEventsEnabled() { ...@@ -66,27 +42,4 @@ bool AreGamepadButtonAxisEventsEnabled() {
return false; return false;
} }
size_t GetGamepadPollingInterval() {
// Default to the minimum polling interval.
size_t polling_interval = kPollingIntervalMillisecondsMin;
// Check if the polling interval is overridden by a field trial.
if (base::FeatureList::IsEnabled(kGamepadPollingInterval)) {
std::string param_value = base::GetFieldTrialParamValueByFeature(
kGamepadPollingInterval, kGamepadPollingIntervalParamKey);
polling_interval = OverrideIntervalIfValid(param_value, polling_interval);
}
// Check if the polling interval is overridden by a command-line flag.
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
if (command_line &&
command_line->HasSwitch(switches::kGamepadPollingInterval)) {
std::string switch_value =
command_line->GetSwitchValueASCII(switches::kGamepadPollingInterval);
polling_interval = OverrideIntervalIfValid(switch_value, polling_interval);
}
return polling_interval;
}
} // namespace features } // namespace features
...@@ -14,12 +14,9 @@ GAMEPAD_FEATURES_EXPORT extern const base::Feature ...@@ -14,12 +14,9 @@ GAMEPAD_FEATURES_EXPORT extern const base::Feature
kEnableGamepadButtonAxisEvents; kEnableGamepadButtonAxisEvents;
GAMEPAD_FEATURES_EXPORT extern const base::Feature GAMEPAD_FEATURES_EXPORT extern const base::Feature
kEnableWindowsGamingInputDataFetcher; kEnableWindowsGamingInputDataFetcher;
GAMEPAD_FEATURES_EXPORT extern const base::Feature kGamepadPollingInterval;
GAMEPAD_FEATURES_EXPORT extern const base::Feature kRestrictGamepadAccess; GAMEPAD_FEATURES_EXPORT extern const base::Feature kRestrictGamepadAccess;
GAMEPAD_FEATURES_EXPORT extern const char kGamepadPollingIntervalParamKey[];
GAMEPAD_FEATURES_EXPORT bool AreGamepadButtonAxisEventsEnabled(); GAMEPAD_FEATURES_EXPORT bool AreGamepadButtonAxisEventsEnabled();
GAMEPAD_FEATURES_EXPORT size_t GetGamepadPollingInterval();
} // namespace features } // namespace features
......
...@@ -2959,30 +2959,6 @@ ...@@ -2959,30 +2959,6 @@
] ]
} }
], ],
"GamepadPollingInterval": [
{
"platforms": [
"windows",
"mac",
"chromeos",
"linux",
"android",
"android_weblayer",
"android_webview"
],
"experiments": [
{
"name": "EnabledGamepadPolling250Hz",
"params": {
"interval-ms": "4"
},
"enable_features": [
"GamepadPollingInterval"
]
}
]
}
],
"GestureNavigation": [ "GestureNavigation": [
{ {
"platforms": [ "platforms": [
......
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