Index: content/browser/service_worker/service_worker_version.cc |
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc |
index 1d70efe8bebb39d0fc1c47e06a24165fb9282fde..476340b16cefa7b753af46458584c0d68246dac6 100644 |
--- a/content/browser/service_worker/service_worker_version.cc |
+++ b/content/browser/service_worker/service_worker_version.cc |
@@ -627,6 +627,18 @@ void ServiceWorkerVersion::RemoveControllee( |
ScheduleStopWorker(); |
} |
+void ServiceWorkerVersion::AddStreamingURLRequestJob( |
+ const ServiceWorkerURLRequestJob* request_job) { |
+ DCHECK(streaming_url_request_jobs_.find(request_job) == |
+ streaming_url_request_jobs_.end()); |
+ streaming_url_request_jobs_.insert(request_job); |
+} |
+ |
+void ServiceWorkerVersion::RemoveStreamingURLRequestJob( |
+ const ServiceWorkerURLRequestJob* request_job) { |
+ streaming_url_request_jobs_.erase(request_job); |
+} |
+ |
void ServiceWorkerVersion::AddListener(Listener* listener) { |
listeners_.AddObserver(listener); |
} |
@@ -706,6 +718,8 @@ void ServiceWorkerVersion::OnStopped( |
SERVICE_WORKER_ERROR_FAILED, |
false); |
+ streaming_url_request_jobs_.clear(); |
+ |
FOR_EACH_OBSERVER(Listener, listeners_, OnWorkerStopped(this)); |
// There should be no more communication from/to a stopped worker. Deleting |
@@ -1131,7 +1145,8 @@ bool ServiceWorkerVersion::HasInflightRequests() const { |
!push_callbacks_.IsEmpty() || |
!geofencing_callbacks_.IsEmpty() || |
!get_client_info_callbacks_.IsEmpty() || |
- !cross_origin_connect_callbacks_.IsEmpty(); |
+ !cross_origin_connect_callbacks_.IsEmpty() || |
+ !streaming_url_request_jobs_.empty(); |
} |
void ServiceWorkerVersion::DoomInternal() { |