[webkit-changes] [WebKit/WebKit] 423d5f: Set expectedContentLength in ServiceWorkerDownload...

youennf noreply at github.com
Tue Oct 3 11:50:46 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 423d5f5dd0dbc7c48f3f1c931db7e5734fc692d5
      https://github.com/WebKit/WebKit/commit/423d5f5dd0dbc7c48f3f1c931db7e5734fc692d5
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-10-03 (Tue, 03 Oct 2023)

  Changed paths:
    M LayoutTests/http/tests/workers/service/resources/service-worker-download-worker.js
    M LayoutTests/http/tests/workers/service/service-worker-download-stream.https-expected.txt
    M LayoutTests/http/tests/workers/service/service-worker-download-stream.https.html
    M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https-expected.txt
    M LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https.html
    M LayoutTests/platform/glib/http/tests/workers/service/service-worker-download-stream.https-expected.txt
    M LayoutTests/platform/glib/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https-expected.txt
    M LayoutTests/platform/ios/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https-expected.txt
    M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h
    M Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
    M Tools/WebKitTestRunner/TestController.cpp
    M Tools/WebKitTestRunner/TestController.h
    M Tools/WebKitTestRunner/TestInvocation.cpp

  Log Message:
  -----------
  Set expectedContentLength in ServiceWorkerDownloadTask didReceiveData callback
https://bugs.webkit.org/show_bug.cgi?id=262297
rdar://109266074

Reviewed by Alex Christensen.

Store the Response expectedContentLength in ServiceWorkerDownloadTask.
Use it to set the totalExpectedSize parameter of the didReceiveData callback.
We use the max of the expectedContentLength and the size of data already written as service worker downloads may use synthetic response with zero expectedContentLength.
For synthetic responses, if the expectedContentLength is zero, we check the Content-Length header and parse it to compute a new expectedContentLength value.

* LayoutTests/http/tests/workers/service/resources/service-worker-download-worker.js:
(event.event.request.url.includes):
* LayoutTests/http/tests/workers/service/service-worker-download-stream.https-expected.txt:
* LayoutTests/http/tests/workers/service/service-worker-download-stream.https.html:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https-expected.txt:
* LayoutTests/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https.html:
* LayoutTests/platform/glib/http/tests/workers/service/service-worker-download-stream.https-expected.txt:
* LayoutTests/platform/glib/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https-expected.txt:
* LayoutTests/platform/ios/http/wpt/service-workers/fetch-service-worker-preload-download-through-direct-preload.https-expected.txt:
* Source/WebCore/Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::create):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:
(WebKit::ServiceWorkerDownloadTask::ServiceWorkerDownloadTask):
(WebKit::ServiceWorkerDownloadTask::didReceiveData):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
(WebKit::ServiceWorkerDownloadTask::create):
* Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::convertToDownload):
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setShouldLogDownloadExpectedSize):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::downloadDidFinish):
(WTR::TestController::downloadDidWriteData):
* Tools/WebKitTestRunner/TestController.h:
(WTR::TestController::setShouldLogDownloadExpectedSize):
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

Canonical link: https://commits.webkit.org/268794@main




More information about the webkit-changes mailing list