Changeset 292296 in webkit


Ignore:
Timestamp:
Apr 4, 2022 10:31:52 AM (4 months ago)
Author:
youenn@apple.com
Message:

Service-Worker-Navigation-Preload header not being sent when Navigation Preload is enabled.
https://bugs.webkit.org/show_bug.cgi?id=238564

Reviewed by Alex Christensen.

Source/WebKit:

We were cancelling the preload as soon as receiving a response through FetchEvent.respondWith.
But it is possible to answer with a synthetic response and then use the preload to fill the synthetic response body.
To allow this, we no longer cancel the preload when receiving a response in case of enabled navigation preload.

Test: http/wpt/service-workers/service-worker-iframe-preload-after-response.https.html

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

LayoutTests:

  • http/wpt/service-workers/resources/service-worker-iframe-preload-after-response-script.py: Added.
  • http/wpt/service-workers/service-worker-iframe-preload-after-response-worker.js: Added.
  • http/wpt/service-workers/service-worker-iframe-preload-after-response.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-iframe-preload-after-response.https.html: Added.
Location:
trunk
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r292294 r292296  
     12022-04-04  Youenn Fablet  <youenn@apple.com>
     2
     3        Service-Worker-Navigation-Preload header not being sent when Navigation Preload is enabled.
     4        https://bugs.webkit.org/show_bug.cgi?id=238564
     5
     6        Reviewed by Alex Christensen.
     7
     8        * http/wpt/service-workers/resources/service-worker-iframe-preload-after-response-script.py: Added.
     9        * http/wpt/service-workers/service-worker-iframe-preload-after-response-worker.js: Added.
     10        * http/wpt/service-workers/service-worker-iframe-preload-after-response.https-expected.txt: Added.
     11        * http/wpt/service-workers/service-worker-iframe-preload-after-response.https.html: Added.
     12
    1132022-04-04  Said Abou-Hallawa  <said@apple.com>
    214
  • trunk/Source/WebKit/ChangeLog

    r292292 r292296  
     12022-04-04  Youenn Fablet  <youenn@apple.com>
     2
     3        Service-Worker-Navigation-Preload header not being sent when Navigation Preload is enabled.
     4        https://bugs.webkit.org/show_bug.cgi?id=238564
     5
     6        Reviewed by Alex Christensen.
     7
     8        We were cancelling the preload as soon as receiving a response through FetchEvent.respondWith.
     9        But it is possible to answer with a synthetic response and then use the preload to fill the synthetic response body.
     10        To allow this, we no longer cancel the preload when receiving a response in case of enabled navigation preload.
     11
     12        Test: http/wpt/service-workers/service-worker-iframe-preload-after-response.https.html
     13
     14        * NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
     15
    1162022-04-04  Elliott Williams  <emw@apple.com>
    217
  • trunk/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp

    r291340 r292296  
    189189void ServiceWorkerFetchTask::didReceiveResponse(WebCore::ResourceResponse&& response, bool needsContinueDidReceiveResponseMessage)
    190190{
    191     cancelPreloadIfNecessary();
     191    if (m_preloader && !m_preloader->isServiceWorkerNavigationPreloadEnabled())
     192        cancelPreloadIfNecessary();
    192193
    193194    processResponse(WTFMove(response), needsContinueDidReceiveResponseMessage, ShouldSetSource::Yes);
     
    259260        m_timeoutTimer->stop();
    260261    sendToClient(Messages::WebResourceLoader::DidFinishResourceLoad { networkLoadMetrics });
     262
     263    cancelPreloadIfNecessary();
    261264}
    262265
Note: See TracChangeset for help on using the changeset viewer.