NetS13nServiceWorker: request with FetchEvent#body which goes to network (fallback) hits a NOTREACHED() |
|||||
Issue descriptionI've not digged into detail, but I saw the failure on a layout test (fetch-events.https.html) when patching crrev.com/c/996734. service_worker_loader_helpers.cc(186) Check failed: false. There should be no blob elements in NetworkService Probably ServiceWorkerServicification without NetworkService has a bug on blob handling. We need to investigate more.
,
Apr 24 2018
,
May 7 2018
I tried to create a blob ptr in ServiceWorkerSubresourceLoader in crrev.com/c/1046426 , but I found that I've misunderstood what's the blob in the service worker request. We may need to create one blob including multiple data elements in the subresource loader. Now we have two options to send request bodies properly: 1. Make resource dispatcher work with the data pipe body. 2. Make a blob in blink and send it in subresource loader. I need to do further investigation.
,
May 24 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8cc2e7e275ca6f9c24c764fe46974219122d1300 commit 8cc2e7e275ca6f9c24c764fe46974219122d1300 Author: Makoto Shimazu <shimazu@chromium.org> Date: Thu May 24 03:12:55 2018 Send blob request body when NetS13nServiceWorker w/o NetworkService Request bodies may be a blob if NetworkService is disabled. We need to plumb it to a service worker world if we ship NetS13nSW without NetworkService. After this CL, there are three cases of how to send the request body to the service worker's fetch event. (A) NetworkService is on In this case, blobs should be passed as a data pipe. Data pipes will be included by a network::ResourceRequestBody. (B) NetworkService is off and ServiceWorkerServicification is on Blobs should be passed as a blink::mojom::BlobPtrs, but network::ResourceRequestBody cannot contain the blink::mojom::BlobPtrs. Instead, the BlobPtrs are passed as a parameter of DispatchFetchEventParams separately. (C) NetworkService and ServiceWorkerServicification are off All request bodies are passed as a blob. The information of the blob is passed as three parameters of DispatchFetchEventParams. Bug: 830292 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo Change-Id: I36eb0e08e80ae9feb5af926af4b97757607c1950 Reviewed-on: https://chromium-review.googlesource.com/1046426 Commit-Queue: Makoto Shimazu <shimazu@chromium.org> Reviewed-by: Matt Falkenhagen <falken@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Daniel Murphy <dmurph@chromium.org> Cr-Commit-Position: refs/heads/master@{#561373} [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/browser/loader/upload_data_stream_builder.cc [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/common/service_worker/dispatch_fetch_event_params.mojom [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/common/service_worker/service_worker_loader_helpers.cc [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/common/service_worker/service_worker_loader_helpers.h [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/renderer/loader/web_url_request_util.cc [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/renderer/loader/web_url_request_util.h [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/renderer/service_worker/service_worker_context_client.cc [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/content/renderer/service_worker/service_worker_subresource_loader.cc [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/services/network/public/cpp/resource_request_body.cc [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/services/network/public/cpp/resource_request_body.h [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/third_party/blink/public/platform/web_http_body.h [modify] https://crrev.com/8cc2e7e275ca6f9c24c764fe46974219122d1300/third_party/blink/renderer/platform/exported/web_http_body.cc
,
May 24 2018
,
May 24 2018
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by shimazu@chromium.org
, Apr 9 2018