summaryrefslogtreecommitdiff
path: root/chromium/services/network/radio_monitor_android.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/services/network/radio_monitor_android.cc')
-rw-r--r--chromium/services/network/radio_monitor_android.cc74
1 files changed, 33 insertions, 41 deletions
diff --git a/chromium/services/network/radio_monitor_android.cc b/chromium/services/network/radio_monitor_android.cc
index 9e3bb411afa..b303e2e3d17 100644
--- a/chromium/services/network/radio_monitor_android.cc
+++ b/chromium/services/network/radio_monitor_android.cc
@@ -5,65 +5,57 @@
#include "services/network/radio_monitor_android.h"
#include "base/metrics/histogram_functions.h"
-#include "services/network/public/cpp/features.h"
+#include "base/trace_event/trace_event.h"
+#include "net/android/radio_activity_tracker.h"
+#include "net/base/load_flags.h"
+#include "net/base/request_priority.h"
+#include "net/traffic_annotation/network_traffic_annotation.h"
+#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/mojom/host_resolver.mojom.h"
namespace network {
-// static
-RadioMonitorAndroid& RadioMonitorAndroid::GetInstance() {
- static base::NoDestructor<RadioMonitorAndroid> s_instance;
- return *s_instance;
-}
-
-RadioMonitorAndroid::RadioMonitorAndroid() = default;
-
-void RadioMonitorAndroid::MaybeRecordURLLoaderAnnotationId(
+void MaybeRecordURLLoaderCreationForWakeupTrigger(
+ const ResourceRequest& request,
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
- DCHECK(base::FeatureList::IsEnabled(features::kRecordRadioWakeupTrigger));
- if (!ShouldRecordRadioWakeupTrigger())
+ if (!net::android::RadioActivityTracker::GetInstance()
+ .ShouldRecordActivityForWakeupTrigger())
return;
- base::UmaHistogramSparse(kUmaNamePossibleWakeupTriggerURLLoader,
+ TRACE_EVENT_INSTANT1("loading", "RadioMonitorAndroid::URLLoaderWakeupRadio",
+ TRACE_EVENT_SCOPE_THREAD, "traffic_annotation",
+ traffic_annotation.unique_id_hash_code);
+
+ base::UmaHistogramEnumeration(
+ kUmaNamePossibleWakeupTriggerURLLoaderRequestDestination,
+ request.destination);
+ base::UmaHistogramEnumeration(
+ kUmaNamePossibleWakeupTriggerURLLoaderRequestPriority, request.priority,
+ static_cast<net::RequestPriority>(
+ net::RequestPrioritySize::NUM_PRIORITIES));
+ base::UmaHistogramBoolean(
+ kUmaNamePossibleWakeupTriggerURLLoaderRequestIsPrefetch,
+ request.load_flags & net::LOAD_PREFETCH);
+ base::UmaHistogramSparse(kUmaNamePossibleWakeupTriggerURLLoaderAnnotationId,
traffic_annotation.unique_id_hash_code);
}
-void RadioMonitorAndroid::MaybeRecordResolveHost(
+void MaybeRecordResolveHostForWakeupTrigger(
const mojom::ResolveHostParametersPtr& parameters) {
- DCHECK(base::FeatureList::IsEnabled(features::kRecordRadioWakeupTrigger));
- if (!ShouldRecordRadioWakeupTrigger())
+ if (!net::android::RadioActivityTracker::GetInstance()
+ .ShouldRecordActivityForWakeupTrigger())
return;
mojom::ResolveHostParameters::Purpose purpose =
parameters ? parameters->purpose
: mojom::ResolveHostParameters::Purpose::kUnspecified;
- base::UmaHistogramEnumeration(kUmaNamePossibleWakeupTriggerResolveHost,
- purpose);
-}
-bool RadioMonitorAndroid::IsRadioUtilsSupported() {
- return base::android::RadioUtils::IsSupported() ||
- radio_activity_override_for_testing_.has_value() ||
- radio_type_override_for_testing_.has_value();
-}
-
-bool RadioMonitorAndroid::ShouldRecordRadioWakeupTrigger() {
- if (!IsRadioUtilsSupported())
- return false;
-
- base::android::RadioConnectionType radio_type =
- radio_type_override_for_testing_.value_or(
- base::android::RadioUtils::GetConnectionType());
- if (radio_type != base::android::RadioConnectionType::kCell)
- return false;
+ TRACE_EVENT_INSTANT1("loading",
+ "RadioMonitorAndroid::HostResolverWakeupRadio",
+ TRACE_EVENT_SCOPE_THREAD, "purpose", purpose);
- absl::optional<base::android::RadioDataActivity> radio_activity =
- radio_activity_override_for_testing_.has_value()
- ? radio_activity_override_for_testing_
- : base::android::RadioUtils::GetCellDataActivity();
-
- return radio_activity.has_value() &&
- *radio_activity == base::android::RadioDataActivity::kDormant;
+ base::UmaHistogramEnumeration(kUmaNamePossibleWakeupTriggerResolveHost,
+ purpose);
}
} // namespace network