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

Unified Diff: content/browser/service_worker/service_worker_version.cc

Issue 832813002: [ServiceWorker] Keep ServiceWorker alive while streaming the response for FetchEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 12 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
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() {

Powered by Google App Engine
This is Rietveld 408576698