Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Unified Diff: components/offline_pages/background/request_coordinator.cc

Issue 2388303007: [Offline Pages] Adds UMA for result of attempts to immediately start background loading. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/offline_pages/background/request_coordinator.cc
diff --git a/components/offline_pages/background/request_coordinator.cc b/components/offline_pages/background/request_coordinator.cc
index 8aae54cfb739b5b3eadb46cd7abc254bd0ee4f1a..43205dce68fa5d7c15b278ad397498be2f2881f6 100644
--- a/components/offline_pages/background/request_coordinator.cc
+++ b/components/offline_pages/background/request_coordinator.cc
@@ -25,6 +25,24 @@ namespace offline_pages {
namespace {
const bool kUserRequest = true;
+enum class OfflinerImmediateStartStatus {
+ BUSY,
fgorski 2016/10/05 21:46:13 Can you reorder these two? Almost feels like it s
dougarnett 2016/10/05 22:28:14 Done.
+ STARTED,
+ NOT_ACCEPTED,
+ NO_CONNECTION,
+ NO_EFFECTIVE_CONNECTION,
+ NOT_STARTED_ON_SVELTE,
+ // NOTE: insert new values above this line and update histogram enum too.
+ STATUS_COUNT,
+};
+
+void RecordImmediateStart(OfflinerImmediateStartStatus immediate_start_status) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "OfflinePages.Background.ImmediateStartStatus",
+ static_cast<int>(immediate_start_status),
fgorski 2016/10/05 21:46:13 holte@: should be using int vs. int32_t here? I ha
dougarnett 2016/10/05 22:28:15 Pete just had CL that used int so followed that ex
+ static_cast<int>(OfflinerImmediateStartStatus::STATUS_COUNT));
+}
+
// Records the final request status UMA for an offlining request. This should
// only be called once per Offliner::LoadAndSave request.
void RecordOfflinerResultUMA(const ClientId& client_id,
@@ -372,10 +390,16 @@ bool RequestCoordinator::StartProcessing(
void RequestCoordinator::StartProcessingIfConnected() {
Pete Williamson 2016/10/05 21:51:53 Would it be better to have StartProcessingIfConnec
dougarnett 2016/10/05 22:28:14 It is called in two places - so capture UMA in bot
Pete Williamson 2016/10/05 22:45:03 I'm happy if you want to improve this later in M55
dougarnett 2016/10/05 23:20:37 I tried wrapper - see if you like it better.
// Make sure not already busy processing.
- if (is_busy_) return;
+ if (is_busy_) {
+ RecordImmediateStart(OfflinerImmediateStartStatus::BUSY);
+ return;
+ }
// Make sure we are not on svelte device to start immediately.
- if (base::SysInfo::IsLowEndDevice()) return;
+ if (base::SysInfo::IsLowEndDevice()) {
+ RecordImmediateStart(OfflinerImmediateStartStatus::NOT_STARTED_ON_SVELTE);
fgorski 2016/10/05 21:46:13 Just a thought: If you make this check above, you
dougarnett 2016/10/05 22:28:14 Happens anyway as far as unique devices goes on fi
+ return;
+ }
// Make sure we have reasonable network quality (or at least a connection).
if (network_quality_estimator_) {
@@ -383,10 +407,13 @@ void RequestCoordinator::StartProcessingIfConnected() {
net::EffectiveConnectionType quality =
network_quality_estimator_->GetEffectiveConnectionType();
if (quality < net::EffectiveConnectionType::EFFECTIVE_CONNECTION_TYPE_2G) {
+ RecordImmediateStart(
+ OfflinerImmediateStartStatus::NO_EFFECTIVE_CONNECTION);
return;
}
} else if (GetConnectionType() ==
net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE) {
+ RecordImmediateStart(OfflinerImmediateStartStatus::NO_CONNECTION);
return;
}
@@ -394,7 +421,11 @@ void RequestCoordinator::StartProcessingIfConnected() {
// (i.e., assume no battery).
// TODO(dougarnett): Obtain actual battery conditions (from Android/Java).
DeviceConditions device_conditions(false, 0, GetConnectionType());
- StartProcessing(device_conditions, base::Bind(&EmptySchedulerCallback));
+ if (StartProcessing(device_conditions, base::Bind(&EmptySchedulerCallback))) {
fgorski 2016/10/05 21:46:13 nit: braces not needed
+ RecordImmediateStart(OfflinerImmediateStartStatus::STARTED);
+ } else {
+ RecordImmediateStart(OfflinerImmediateStartStatus::NOT_ACCEPTED);
+ }
}
void RequestCoordinator::TryNextRequest() {
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698