RESOLVED FIXED 202787
Do not timeout a load intercepted by service worker that receives a response
https://bugs.webkit.org/show_bug.cgi?id=202787
Summary Do not timeout a load intercepted by service worker that receives a response
youenn fablet
Reported 2019-10-10 02:57:08 PDT
Do not timeout a load intercepted by service worker that receives a response.
Attachments
Patch (15.43 KB, patch)
2019-10-10 03:47 PDT, youenn fablet
no flags
Patch for landing (15.45 KB, patch)
2019-10-10 11:58 PDT, youenn fablet
no flags
youenn fablet
Comment 1 2019-10-10 03:47:30 PDT
Chris Dumez
Comment 2 2019-10-10 08:48:00 PDT
Comment on attachment 380628 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=380628&action=review > Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:94 > m_timeoutTimer.stop(); Do we need this? Can didFinish() be called without didReceiveResponse() getting called first? Maybe this could be an assertion?
youenn fablet
Comment 3 2019-10-10 08:51:40 PDT
(In reply to Chris Dumez from comment #2) > Comment on attachment 380628 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=380628&action=review > > > Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:94 > > m_timeoutTimer.stop(); > > Do we need this? Can didFinish() be called without didReceiveResponse() > getting called first? Maybe this could be an assertion? Rob told me that this happens in a few case apparently and works fine for ResourceLoader. Stopping it there is mostly for consistency and is not strictly needed since didFinish will synchronously destroy the ServiceWorkerFetchTask.
youenn fablet
Comment 4 2019-10-10 08:52:32 PDT
(In reply to youenn fablet from comment #3) > (In reply to Chris Dumez from comment #2) > > Comment on attachment 380628 [details] > > Patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=380628&action=review > > > > > Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:94 > > > m_timeoutTimer.stop(); > > > > Do we need this? Can didFinish() be called without didReceiveResponse() > > getting called first? Maybe this could be an assertion? > > Rob told me that this happens in a few case apparently and works fine for > ResourceLoader. That said, our service worker fetch handler is probably enforcing to either send a didReceiveResponse or didFail. Will add an ASSERT.
youenn fablet
Comment 5 2019-10-10 11:58:08 PDT
Created attachment 380669 [details] Patch for landing
WebKit Commit Bot
Comment 6 2019-10-10 12:52:11 PDT
Comment on attachment 380669 [details] Patch for landing Clearing flags on attachment: 380669 Committed r250985: <https://trac.webkit.org/changeset/250985>
WebKit Commit Bot
Comment 7 2019-10-10 12:52:12 PDT
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 8 2019-10-10 12:53:19 PDT
Note You need to log in before you can comment on or make changes to this bug.