diff options
Diffstat (limited to 'chromium/services/network/radio_monitor_android.cc')
-rw-r--r-- | chromium/services/network/radio_monitor_android.cc | 74 |
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 |