// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/gcm_driver/features.h" #include "base/metrics/field_trial_param_associator.h" #include "base/metrics/field_trial_params.h" #include "base/strings/string_number_conversions.h" #include "base/time/time.h" #include #include namespace gcm { namespace features { const base::Feature kInvalidateTokenFeature{"GCMTokenInvalidAfterDays", base::FEATURE_ENABLED_BY_DEFAULT}; const char kParamNameTokenInvalidationPeriodDays[] = "token_invalidation_period"; // A token invalidation period of 0 means the feature is disabled, and the // GCM token never becomes stale. const int kDefaultTokenInvalidationPeriod = 7; base::TimeDelta GetTokenInvalidationInterval() { if (!base::FeatureList::IsEnabled(kInvalidateTokenFeature)) return base::TimeDelta(); std::string override_value = base::GetFieldTrialParamValueByFeature( kInvalidateTokenFeature, kParamNameTokenInvalidationPeriodDays); if (!override_value.empty()) { int override_value_days; if (base::StringToInt(override_value, &override_value_days)) return base::Days(override_value_days); } return base::Days(kDefaultTokenInvalidationPeriod); } } // namespace features } // namespace gcm