OLD | NEW |
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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <limits> | 9 #include <limits> |
10 #include <map> | 10 #include <map> |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 // TODO(kinuko): Record other event statuses too. | 540 // TODO(kinuko): Record other event statuses too. |
541 metrics_->RecordEventHandledStatus(request->event_type, was_handled); | 541 metrics_->RecordEventHandledStatus(request->event_type, was_handled); |
542 ServiceWorkerMetrics::RecordEventDuration( | 542 ServiceWorkerMetrics::RecordEventDuration( |
543 request->event_type, base::TimeTicks::Now() - request->start_time, | 543 request->event_type, base::TimeTicks::Now() - request->start_time, |
544 was_handled); | 544 was_handled); |
545 | 545 |
546 RestartTick(&idle_time_); | 546 RestartTick(&idle_time_); |
547 TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::Request", | 547 TRACE_EVENT_ASYNC_END1("ServiceWorker", "ServiceWorkerVersion::Request", |
548 request, "Handled", was_handled); | 548 request, "Handled", was_handled); |
549 custom_requests_.Remove(request_id); | 549 custom_requests_.Remove(request_id); |
550 if (is_redundant()) { | |
551 // The stop should be already scheduled, but try to stop immediately, in | |
552 // order to release worker resources soon. | |
553 StopWorkerIfIdle(); | |
554 } | |
555 return true; | 550 return true; |
556 } | 551 } |
557 | 552 |
558 void ServiceWorkerVersion::RunAfterStartWorker( | 553 void ServiceWorkerVersion::RunAfterStartWorker( |
559 ServiceWorkerMetrics::EventType purpose, | 554 ServiceWorkerMetrics::EventType purpose, |
560 const base::Closure& task, | 555 const base::Closure& task, |
561 const StatusCallback& error_callback) { | 556 const StatusCallback& error_callback) { |
562 if (running_status() == EmbeddedWorkerStatus::RUNNING) { | 557 if (running_status() == EmbeddedWorkerStatus::RUNNING) { |
563 DCHECK(start_callbacks_.empty()); | 558 DCHECK(start_callbacks_.empty()); |
564 task.Run(); | 559 task.Run(); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 void ServiceWorkerVersion::AddStreamingURLRequestJob( | 591 void ServiceWorkerVersion::AddStreamingURLRequestJob( |
597 const ServiceWorkerURLRequestJob* request_job) { | 592 const ServiceWorkerURLRequestJob* request_job) { |
598 DCHECK(streaming_url_request_jobs_.find(request_job) == | 593 DCHECK(streaming_url_request_jobs_.find(request_job) == |
599 streaming_url_request_jobs_.end()); | 594 streaming_url_request_jobs_.end()); |
600 streaming_url_request_jobs_.insert(request_job); | 595 streaming_url_request_jobs_.insert(request_job); |
601 } | 596 } |
602 | 597 |
603 void ServiceWorkerVersion::RemoveStreamingURLRequestJob( | 598 void ServiceWorkerVersion::RemoveStreamingURLRequestJob( |
604 const ServiceWorkerURLRequestJob* request_job) { | 599 const ServiceWorkerURLRequestJob* request_job) { |
605 streaming_url_request_jobs_.erase(request_job); | 600 streaming_url_request_jobs_.erase(request_job); |
606 if (is_redundant()) | |
607 StopWorkerIfIdle(); | |
608 } | 601 } |
609 | 602 |
610 void ServiceWorkerVersion::AddListener(Listener* listener) { | 603 void ServiceWorkerVersion::AddListener(Listener* listener) { |
611 listeners_.AddObserver(listener); | 604 listeners_.AddObserver(listener); |
612 } | 605 } |
613 | 606 |
614 void ServiceWorkerVersion::RemoveListener(Listener* listener) { | 607 void ServiceWorkerVersion::RemoveListener(Listener* listener) { |
615 listeners_.RemoveObserver(listener); | 608 listeners_.RemoveObserver(listener); |
616 } | 609 } |
617 | 610 |
(...skipping 1102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1720 if (should_exclude_from_uma_ || | 1713 if (should_exclude_from_uma_ || |
1721 running_status() != EmbeddedWorkerStatus::RUNNING || | 1714 running_status() != EmbeddedWorkerStatus::RUNNING || |
1722 idle_time_.is_null()) { | 1715 idle_time_.is_null()) { |
1723 return; | 1716 return; |
1724 } | 1717 } |
1725 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - | 1718 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - |
1726 idle_time_); | 1719 idle_time_); |
1727 } | 1720 } |
1728 | 1721 |
1729 } // namespace content | 1722 } // namespace content |
OLD | NEW |