| Index: content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| index dad6fba12ce03423d139ef810c81f696b2e26ac5..a709606092f3254ad8b1c8ececf74c5584e14dd0 100644
|
| --- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| +++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/trace_event/trace_event.h"
|
| #include "content/browser/service_worker/service_worker_version.h"
|
| #include "content/common/service_worker/service_worker_messages.h"
|
| +#include "content/common/service_worker/service_worker_utils.h"
|
|
|
| namespace content {
|
|
|
| @@ -94,13 +95,22 @@ void ServiceWorkerFetchDispatcher::DispatchFetchEvent() {
|
| base::Closure prepare_callback = prepare_callback_;
|
| prepare_callback.Run();
|
|
|
| - int request_id = version_->StartRequest(
|
| + int response_request_id = version_->StartRequest(
|
| GetEventType(), base::Bind(&ServiceWorkerFetchDispatcher::DidFail,
|
| weak_factory_.GetWeakPtr()));
|
| - version_->DispatchEvent<ServiceWorkerHostMsg_FetchEventFinished>(
|
| - request_id, ServiceWorkerMsg_FetchEvent(request_id, *request_.get()),
|
| - base::Bind(&ServiceWorkerFetchDispatcher::DidFinish,
|
| - weak_factory_.GetWeakPtr()));
|
| + int finish_request_id = version_->StartRequest(
|
| + ServiceWorkerMetrics::EventType::FETCH_WAITUNTIL,
|
| + base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
|
| +
|
| + version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>(
|
| + response_request_id, base::Bind(&ServiceWorkerFetchDispatcher::DidFinish,
|
| + weak_factory_.GetWeakPtr()));
|
| + version_->RegisterSimpleRequest<ServiceWorkerHostMsg_FetchEventFinished>(
|
| + finish_request_id);
|
| + version_->DispatchEvent(
|
| + {response_request_id, finish_request_id},
|
| + ServiceWorkerMsg_FetchEvent(response_request_id, finish_request_id,
|
| + *request_.get()));
|
| }
|
|
|
| void ServiceWorkerFetchDispatcher::DidPrepare() {
|
|
|