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

Side by Side Diff: content/browser/service_worker/service_worker_metrics.cc

Issue 2000063005: [WIP] Speculatively launch Service Workers on mouse/touch events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_metrics.h" 5 #include "content/browser/service_worker/service_worker_metrics.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 case ServiceWorkerMetrics::EventType::FETCH_SUB_FRAME: 59 case ServiceWorkerMetrics::EventType::FETCH_SUB_FRAME:
60 return "_FETCH_SUB_FRAME"; 60 return "_FETCH_SUB_FRAME";
61 case ServiceWorkerMetrics::EventType::FETCH_SHARED_WORKER: 61 case ServiceWorkerMetrics::EventType::FETCH_SHARED_WORKER:
62 return "_FETCH_SHARED_WORKER"; 62 return "_FETCH_SHARED_WORKER";
63 case ServiceWorkerMetrics::EventType::FETCH_SUB_RESOURCE: 63 case ServiceWorkerMetrics::EventType::FETCH_SUB_RESOURCE:
64 return "_FETCH_SUB_RESOURCE"; 64 return "_FETCH_SUB_RESOURCE";
65 case ServiceWorkerMetrics::EventType::UNKNOWN: 65 case ServiceWorkerMetrics::EventType::UNKNOWN:
66 return "_UNKNOWN"; 66 return "_UNKNOWN";
67 case ServiceWorkerMetrics::EventType::FOREIGN_FETCH: 67 case ServiceWorkerMetrics::EventType::FOREIGN_FETCH:
68 return "_FOREIGN_FETCH"; 68 return "_FOREIGN_FETCH";
69 case ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
70 return "_NAVIGATION_HINT_LINK_MOUSE_DOWN";
71 case ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
72 return "_NAVIGATION_HINT_LINK_TAP_UNCONFIRMED";
73 case ServiceWorkerMetrics::EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
74 return "_NAVIGATION_HINT_LINK_TAP_DOWN";
69 case ServiceWorkerMetrics::EventType::NUM_TYPES: 75 case ServiceWorkerMetrics::EventType::NUM_TYPES:
70 NOTREACHED() << static_cast<int>(event_type); 76 NOTREACHED() << static_cast<int>(event_type);
71 } 77 }
72 return "_UNKNOWN"; 78 return "_UNKNOWN";
73 } 79 }
74 80
75 // Use this for histograms with dynamically generated names, which 81 // Use this for histograms with dynamically generated names, which
76 // otherwise can't use the UMA_HISTOGRAM macro without code duplication. 82 // otherwise can't use the UMA_HISTOGRAM macro without code duplication.
77 void RecordSuffixedTimeHistogram(const std::string& name, 83 void RecordSuffixedTimeHistogram(const std::string& name,
78 const std::string& suffix, 84 const std::string& suffix,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 case EventType::FETCH_SUB_FRAME: 157 case EventType::FETCH_SUB_FRAME:
152 return "Fetch Sub Frame"; 158 return "Fetch Sub Frame";
153 case EventType::FETCH_SHARED_WORKER: 159 case EventType::FETCH_SHARED_WORKER:
154 return "Fetch Shared Worker"; 160 return "Fetch Shared Worker";
155 case EventType::FETCH_SUB_RESOURCE: 161 case EventType::FETCH_SUB_RESOURCE:
156 return "Fetch Subresource"; 162 return "Fetch Subresource";
157 case EventType::UNKNOWN: 163 case EventType::UNKNOWN:
158 return "Unknown"; 164 return "Unknown";
159 case EventType::FOREIGN_FETCH: 165 case EventType::FOREIGN_FETCH:
160 return "Foreign Fetch"; 166 return "Foreign Fetch";
167 case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
168 return "Navigation Hint Link Mouse Down";
169 case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
170 return "Navigation Hint Link Tap Unconfiemed";
171 case EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
172 return "Navigation Hint Link Tap Down";
161 case EventType::NUM_TYPES: 173 case EventType::NUM_TYPES:
162 break; 174 break;
163 } 175 }
164 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type); 176 NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type);
165 return "error"; 177 return "error";
166 } 178 }
167 179
180 bool ServiceWorkerMetrics::IsNavigationHintEvent(EventType event_type) {
181 return event_type == EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN ||
182 event_type == EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED ||
183 event_type == EventType::NAVIGATION_HINT_LINK_TAP_DOWN;
184 }
185
168 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) { 186 bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) {
169 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE; 187 return site == ServiceWorkerMetrics::Site::NEW_TAB_PAGE;
170 } 188 }
171 189
172 bool ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(const GURL& url) { 190 bool ServiceWorkerMetrics::ShouldExcludeURLFromHistogram(const GURL& url) {
173 return ShouldExcludeSiteFromHistogram(SiteFromURL(url)); 191 return ShouldExcludeSiteFromHistogram(SiteFromURL(url));
174 } 192 }
175 193
176 void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { 194 void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) {
177 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result); 195 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result);
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 UMA_HISTOGRAM_ENUMERATION( 360 UMA_HISTOGRAM_ENUMERATION(
343 "ServiceWorker.EventHandledRatioType.ForeignFetch", type, 361 "ServiceWorker.EventHandledRatioType.ForeignFetch", type,
344 NUM_EVENT_HANDLED_RATIO_TYPE); 362 NUM_EVENT_HANDLED_RATIO_TYPE);
345 break; 363 break;
346 default: 364 default:
347 // Do nothing. 365 // Do nothing.
348 break; 366 break;
349 } 367 }
350 } 368 }
351 369
370 void ServiceWorkerMetrics::RecordNavigationHintPrecision(
371 EventType start_worker_purpose,
372 bool event_fired) {
373 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.NavigationHintPrecision", event_fired);
374 switch (start_worker_purpose) {
375 case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
376 UMA_HISTOGRAM_BOOLEAN(
377 "ServiceWorker.NavigationHintPrecision.LINK_MOUSE_DOWN", event_fired);
378 break;
379 case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
380 UMA_HISTOGRAM_BOOLEAN(
381 "ServiceWorker.NavigationHintPrecision.LINK_TAP_UNCONFIRMED",
382 event_fired);
383 break;
384 case EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
385 UMA_HISTOGRAM_BOOLEAN(
386 "ServiceWorker.NavigationHintPrecision.LINK_TAP_DOWN", event_fired);
387 break;
388 default:
389 // Do nothing.
390 break;
391 }
392 }
393
352 void ServiceWorkerMetrics::RecordEventTimeout(EventType event) { 394 void ServiceWorkerMetrics::RecordEventTimeout(EventType event) {
353 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.RequestTimeouts.Count", 395 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.RequestTimeouts.Count",
354 static_cast<int>(event), 396 static_cast<int>(event),
355 static_cast<int>(EventType::NUM_TYPES)); 397 static_cast<int>(EventType::NUM_TYPES));
356 } 398 }
357 399
358 void ServiceWorkerMetrics::RecordEventDuration(EventType event, 400 void ServiceWorkerMetrics::RecordEventDuration(EventType event,
359 base::TimeDelta time, 401 base::TimeDelta time,
360 bool was_handled) { 402 bool was_handled) {
361 switch (event) { 403 switch (event) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.NotificationCloseEvent.Time", 440 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.NotificationCloseEvent.Time",
399 time); 441 time);
400 break; 442 break;
401 case EventType::PUSH: 443 case EventType::PUSH:
402 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.PushEvent.Time", time); 444 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.PushEvent.Time", time);
403 break; 445 break;
404 case EventType::MESSAGE: 446 case EventType::MESSAGE:
405 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ExtendableMessageEvent.Time", 447 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.ExtendableMessageEvent.Time",
406 time); 448 time);
407 break; 449 break;
450 // Those navigation hints should not be sent as request events.
451 case EventType::NAVIGATION_HINT_LINK_MOUSE_DOWN:
452 case EventType::NAVIGATION_HINT_LINK_TAP_UNCONFIRMED:
453 case EventType::NAVIGATION_HINT_LINK_TAP_DOWN:
408 454
409 case EventType::UNKNOWN: 455 case EventType::UNKNOWN:
410 case EventType::NUM_TYPES: 456 case EventType::NUM_TYPES:
411 NOTREACHED() << "Invalid event type"; 457 NOTREACHED() << "Invalid event type";
412 break; 458 break;
413 } 459 }
414 } 460 }
415 461
416 void ServiceWorkerMetrics::RecordFetchEventStatus( 462 void ServiceWorkerMetrics::RecordFetchEventStatus(
417 bool is_main_resource, 463 bool is_main_resource,
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 } else if (failure_count == 2) { 615 } else if (failure_count == 2) {
570 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_2", 616 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_2",
571 status, SERVICE_WORKER_ERROR_MAX_VALUE); 617 status, SERVICE_WORKER_ERROR_MAX_VALUE);
572 } else if (failure_count == 3) { 618 } else if (failure_count == 3) {
573 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_3", 619 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.AfterFailureStreak_3",
574 status, SERVICE_WORKER_ERROR_MAX_VALUE); 620 status, SERVICE_WORKER_ERROR_MAX_VALUE);
575 } 621 }
576 } 622 }
577 623
578 } // namespace content 624 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_metrics.h ('k') | content/browser/service_worker/service_worker_version.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698