xref: /aosp_15_r20/external/cronet/components/metrics/net/cellular_logic_helper.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2016 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/metrics/net/cellular_logic_helper.h"
6 
7 #include "base/metrics/field_trial_params.h"
8 #include "base/time/time.h"
9 #include "build/build_config.h"
10 #include "build/chromeos_buildflags.h"
11 #include "components/metrics/metrics_features.h"
12 #include "net/base/network_change_notifier.h"
13 
14 namespace metrics {
15 
16 namespace {
17 
18 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
19 const int kStandardUploadIntervalSeconds = 5 * 60;  // Five minutes.
20 #else
21 const int kStandardUploadIntervalSeconds = 30 * 60;  // Thirty minutes.
22 #endif
23 
24 // This parameter is intended to be used for Structured metrics, which is
25 // currently only enabled on Chrome OS.
26 //
27 // This parameter should not be used for cellular devices.
28 constexpr base::FeatureParam<int> kUmaUploadCadence{
29     &features::kStructuredMetrics, "uma_upload_cadence",
30     kStandardUploadIntervalSeconds};
31 
32 // Android-only cellular settings.
33 #if BUILDFLAG(IS_ANDROID)
34 const int kStandardUploadIntervalCellularSeconds = 15 * 60;  // Fifteen minutes.
35 #endif
36 
37 }  // namespace
38 
GetUploadInterval(bool use_cellular_upload_interval)39 base::TimeDelta GetUploadInterval(bool use_cellular_upload_interval) {
40 #if BUILDFLAG(IS_ANDROID)
41   if (use_cellular_upload_interval) {
42     return base::Seconds(kStandardUploadIntervalCellularSeconds);
43   }
44 #endif
45   return base::Seconds(kUmaUploadCadence.Get());
46 }
47 
ShouldUseCellularUploadInterval()48 bool ShouldUseCellularUploadInterval() {
49 #if BUILDFLAG(IS_ANDROID)
50   return net::NetworkChangeNotifier::IsConnectionCellular(
51       net::NetworkChangeNotifier::GetConnectionType());
52 #else
53   return false;
54 #endif
55 }
56 
57 }  // namespace metrics
58