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

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

Issue 995713002: Service Worker: Don't record StartWorker metrics for a doomed worker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@coalesce_more
Patch Set: format Created 5 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_version.h" 5 #include "content/browser/service_worker/service_worker_version.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 !sync_callbacks_.IsEmpty() || 1533 !sync_callbacks_.IsEmpty() ||
1534 !notification_click_callbacks_.IsEmpty() || 1534 !notification_click_callbacks_.IsEmpty() ||
1535 !push_callbacks_.IsEmpty() || 1535 !push_callbacks_.IsEmpty() ||
1536 !geofencing_callbacks_.IsEmpty() || 1536 !geofencing_callbacks_.IsEmpty() ||
1537 !cross_origin_connect_callbacks_.IsEmpty() || 1537 !cross_origin_connect_callbacks_.IsEmpty() ||
1538 !streaming_url_request_jobs_.empty(); 1538 !streaming_url_request_jobs_.empty();
1539 } 1539 }
1540 1540
1541 void ServiceWorkerVersion::RecordStartWorkerResult( 1541 void ServiceWorkerVersion::RecordStartWorkerResult(
1542 ServiceWorkerStatusCode status) { 1542 ServiceWorkerStatusCode status) {
1543 base::TimeTicks start_time = start_time_;
1544 ClearTick(&start_time_);
1545
1546 // Failing to start a doomed worker isn't interesting and very common when
1547 // update dooms because the script is byte-to-byte identical.
1548 if (is_doomed_)
1549 return;
1550
1543 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status, 1551 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status,
1544 SERVICE_WORKER_ERROR_MAX_VALUE); 1552 SERVICE_WORKER_ERROR_MAX_VALUE);
1545 if (status == SERVICE_WORKER_OK && !start_time_.is_null()) { 1553 if (status == SERVICE_WORKER_OK && !start_time.is_null()) {
1546 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.StartWorker.Time", 1554 UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.StartWorker.Time",
1547 GetTickDuration(start_time_)); 1555 GetTickDuration(start_time));
1548 } 1556 }
1549 1557
1550 ClearTick(&start_time_);
1551 if (status != SERVICE_WORKER_ERROR_TIMEOUT) 1558 if (status != SERVICE_WORKER_ERROR_TIMEOUT)
1552 return; 1559 return;
1553 EmbeddedWorkerInstance::StartingPhase phase = 1560 EmbeddedWorkerInstance::StartingPhase phase =
1554 EmbeddedWorkerInstance::NOT_STARTING; 1561 EmbeddedWorkerInstance::NOT_STARTING;
1555 EmbeddedWorkerInstance::Status running_status = embedded_worker_->status(); 1562 EmbeddedWorkerInstance::Status running_status = embedded_worker_->status();
1556 // Build an artifical JavaScript exception to show in the ServiceWorker 1563 // Build an artifical JavaScript exception to show in the ServiceWorker
1557 // log for developers; it's not user-facing so it's not a localized resource. 1564 // log for developers; it's not user-facing so it's not a localized resource.
1558 std::string message = "ServiceWorker startup timed out. "; 1565 std::string message = "ServiceWorker startup timed out. ";
1559 if (running_status != EmbeddedWorkerInstance::STARTING) { 1566 if (running_status != EmbeddedWorkerInstance::STARTING) {
1560 message.append("The worker had unexpected status: "); 1567 message.append("The worker had unexpected status: ");
(...skipping 29 matching lines...) Expand all
1590 int request_id) { 1597 int request_id) {
1591 callbacks->Remove(request_id); 1598 callbacks->Remove(request_id);
1592 if (is_doomed_) { 1599 if (is_doomed_) {
1593 // The stop should be already scheduled, but try to stop immediately, in 1600 // The stop should be already scheduled, but try to stop immediately, in
1594 // order to release worker resources soon. 1601 // order to release worker resources soon.
1595 StopWorkerIfIdle(); 1602 StopWorkerIfIdle();
1596 } 1603 }
1597 } 1604 }
1598 1605
1599 } // namespace content 1606 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698