| 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 4e5329846dab76906d6c26df860526206309182b..7e8da3ab82d1c5ea0df7d5be3bfdb44c9d5c2976 100644
|
| --- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| +++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
|
| @@ -117,6 +117,8 @@ ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher(
|
| resource_type_(resource_type),
|
| did_complete_(false),
|
| weak_factory_(this) {
|
| + LOG(ERROR) << "ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher "
|
| + << this;
|
| net_log_.BeginEvent(net::NetLog::TYPE_SERVICE_WORKER_DISPATCH_FETCH_EVENT,
|
| net::NetLog::StringCallback(
|
| "event_type", ServiceWorkerMetrics::EventTypeToString(
|
| @@ -124,6 +126,8 @@ ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher(
|
| }
|
|
|
| ServiceWorkerFetchDispatcher::~ServiceWorkerFetchDispatcher() {
|
| + LOG(ERROR) << "ServiceWorkerFetchDispatcher::~ServiceWorkerFetchDispatcher "
|
| + << this;
|
| if (!did_complete_)
|
| net_log_.EndEvent(net::NetLog::TYPE_SERVICE_WORKER_DISPATCH_FETCH_EVENT);
|
| }
|
| @@ -183,6 +187,7 @@ void ServiceWorkerFetchDispatcher::DidFailToStartWorker(
|
| }
|
|
|
| void ServiceWorkerFetchDispatcher::DispatchFetchEvent() {
|
| + LOG(ERROR) << "ServiceWorkerFetchDispatcher::DispatchFetchEvent";
|
| DCHECK_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status())
|
| << "Worker stopped too soon after it was started.";
|
|
|
| @@ -191,6 +196,23 @@ void ServiceWorkerFetchDispatcher::DispatchFetchEvent() {
|
| prepare_callback.Run();
|
|
|
| net_log_.BeginEvent(net::NetLog::TYPE_SERVICE_WORKER_FETCH_EVENT);
|
| +
|
| + if (version_->IsIsolatedWorker()) {
|
| + int response_id = version_->StartRequest(
|
| + GetEventType(),
|
| + base::Bind(&ServiceWorkerFetchDispatcher::DidFailToDispatch,
|
| + weak_factory_.GetWeakPtr()));
|
| + int event_finish_id = version_->StartRequest(
|
| + FetchTypeToWaitUntilEventType(request_->fetch_type),
|
| + base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
|
| + version_->isolated_worker_ptr()->OnFetchEvent(
|
| + response_id, event_finish_id, request_->url.spec(),
|
| + request_->mode == FETCH_REQUEST_MODE_NAVIGATE,
|
| + base::Bind(&ServiceWorkerFetchDispatcher::OnFetchEventCallback,
|
| + weak_factory_.GetWeakPtr()));
|
| + return;
|
| + }
|
| +
|
| int response_id = version_->StartRequest(
|
| GetEventType(),
|
| base::Bind(&ServiceWorkerFetchDispatcher::DidFailToDispatch,
|
| @@ -233,6 +255,33 @@ void ServiceWorkerFetchDispatcher::DidFinish(
|
| Complete(SERVICE_WORKER_OK, fetch_result, response);
|
| }
|
|
|
| +void ServiceWorkerFetchDispatcher::OnFetchEventCallback(
|
| + bool handled,
|
| + mojo::StructPtr<blink::mojom::ServiceWorkerResponse> response) {
|
| + LOG(ERROR) << "ServiceWorkerFetchDispatcher::OnFetchEventCallback "
|
| + << handled;
|
| + net_log_.EndEvent(net::NetLog::TYPE_SERVICE_WORKER_FETCH_EVENT);
|
| + ServiceWorkerResponse result;
|
| + if (response) {
|
| + LOG(ERROR) << " url: " << response->url;
|
| + LOG(ERROR) << " status_code: " << response->status_code;
|
| + LOG(ERROR) << " status_text: " << response->status_text;
|
| + LOG(ERROR) << " blob_uuid: " << response->blob_uuid;
|
| + LOG(ERROR) << " blob_size: " << response->blob_size;
|
| + LOG(ERROR) << " stream_url: " << response->stream_url;
|
| + result.url = GURL(std::string(response->url));
|
| + result.status_code = response->status_code;
|
| + result.status_text = response->status_text;
|
| + result.blob_uuid = response->blob_uuid;
|
| + result.blob_size = response->blob_size;
|
| + result.stream_url = GURL(std::string(response->stream_url));
|
| + }
|
| + Complete(SERVICE_WORKER_OK,
|
| + handled ? SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE
|
| + : SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK,
|
| + result);
|
| +}
|
| +
|
| void ServiceWorkerFetchDispatcher::Complete(
|
| ServiceWorkerStatusCode status,
|
| ServiceWorkerFetchEventResult fetch_result,
|
|
|