RESOLVED FIXED 174980
[Fetch API] Implement abortable fetch
https://bugs.webkit.org/show_bug.cgi?id=174980
Summary [Fetch API] Implement abortable fetch
Jake Archibald
Reported 2017-07-31 02:31:59 PDT
This includes AbortController & AbortSignal https://dom.spec.whatwg.org/#aborting-ongoing-activities. Fetch abort tests are at https://github.com/w3c/web-platform-tests/pull/6484. Fetch abort spec is in progress https://github.com/whatwg/fetch/pull/523. Mozilla intends to start implementing next month, using the tests rather than the spec.
Attachments
Patch (63.29 KB, patch)
2018-12-21 09:00 PST, youenn fablet
no flags
Patch (63.29 KB, patch)
2018-12-21 09:02 PST, youenn fablet
no flags
Patch (62.92 KB, patch)
2018-12-21 09:15 PST, youenn fablet
no flags
Patch (63.17 KB, patch)
2018-12-21 10:42 PST, youenn fablet
no flags
Archive of layout-test-results from ews126 for ios-simulator-wk2 (2.61 MB, application/zip)
2018-12-21 12:42 PST, EWS Watchlist
no flags
Patch (63.80 KB, patch)
2019-01-03 12:06 PST, youenn fablet
no flags
Archive of layout-test-results from ews122 for ios-simulator-wk2 (2.40 MB, application/zip)
2019-01-03 17:02 PST, EWS Watchlist
no flags
Patch for landing (65.18 KB, patch)
2019-01-04 11:20 PST, youenn fablet
no flags
Patch for landing (65.18 KB, patch)
2019-01-04 11:21 PST, youenn fablet
no flags
Archive of layout-test-results from ews124 for ios-simulator-wk2 (2.57 MB, application/zip)
2019-01-04 13:13 PST, EWS Watchlist
no flags
Patch for landing (66.23 KB, patch)
2019-01-04 14:43 PST, youenn fablet
no flags
Antonio Torres
Comment 1 2018-07-24 20:48:13 PDT
Is there a roadmap for these features? I cannot find them in Webkit Status, and Firefox and Chrome already have support for aborts.
molsson
Comment 2 2018-11-25 07:26:06 PST
It's a strange that: * caniuse.com claims that Safari supports AbortController * window.AbortController is defined in Safari ...but a simple testcase like this: http://temp.minimum.se/abort-native.html Shows that Safari 12.0.1 sends the request even if controller.abort() has been called, i.e. only some "placeholder AbortController" has been added in Safari. It is not working at all.
Alexandre C
Comment 3 2018-11-25 23:41:26 PST
I confirm what molsson mentioned. The abort on fetch request on Safari 12.0.1 doesn't work at all.
Sergey Rubanov
Comment 4 2018-12-10 07:10:19 PST
This is really sad that only Webkit is missing Abortable Fetch since April 2018
Radar WebKit Bug Importer
Comment 5 2018-12-19 19:39:38 PST
youenn fablet
Comment 6 2018-12-21 09:00:39 PST
youenn fablet
Comment 7 2018-12-21 09:02:09 PST
youenn fablet
Comment 8 2018-12-21 09:15:08 PST
youenn fablet
Comment 9 2018-12-21 10:42:40 PST
EWS Watchlist
Comment 10 2018-12-21 12:42:26 PST
Comment on attachment 357959 [details] Patch Attachment 357959 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/10509229 New failing tests: imported/w3c/web-platform-tests/fetch/api/abort/general-serviceworker.https.html
EWS Watchlist
Comment 11 2018-12-21 12:42:28 PST
Created attachment 357966 [details] Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
youenn fablet
Comment 12 2019-01-03 12:06:08 PST
EWS Watchlist
Comment 13 2019-01-03 17:02:55 PST
Comment on attachment 358267 [details] Patch Attachment 358267 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/10621118 New failing tests: imported/w3c/web-platform-tests/fetch/api/abort/general-serviceworker.https.html
EWS Watchlist
Comment 14 2019-01-03 17:02:57 PST
Created attachment 358291 [details] Archive of layout-test-results from ews122 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews122 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
youenn fablet
Comment 15 2019-01-03 20:52:14 PST
Comment on attachment 358267 [details] Patch Failing test is due to SSL connection issue which seems to happen on iOS in some cases. This does not seem related with the changes but may make the above test flaky on iOS.
Chris Dumez
Comment 16 2019-01-04 09:09:07 PST
Comment on attachment 358267 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=358267&action=review > Source/WebCore/Modules/fetch/FetchBodyOwner.h:130 > + struct LoadingError { Can you really have both a ResourceError and an exception at the same time. If not, could we use a Variant instead?
youenn fablet
Comment 17 2019-01-04 09:58:31 PST
(In reply to Chris Dumez from comment #16) > Comment on attachment 358267 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=358267&action=review > > > Source/WebCore/Modules/fetch/FetchBodyOwner.h:130 > > + struct LoadingError { > > Can you really have both a ResourceError and an exception at the same time. > If not, could we use a Variant instead? I hesitated on this one. I think we can only have one. I went with a struct instead of a Variant as I thought it makes the accessors to resource error/exception simpler and easier to use. I'll do the Variant experiment.
youenn fablet
Comment 18 2019-01-04 11:20:13 PST
Created attachment 358340 [details] Patch for landing
youenn fablet
Comment 19 2019-01-04 11:21:40 PST
Created attachment 358342 [details] Patch for landing
youenn fablet
Comment 20 2019-01-04 11:23:19 PST
(In reply to youenn fablet from comment #19) > Created attachment 358342 [details] > Patch for landing With Variant
EWS Watchlist
Comment 21 2019-01-04 13:13:25 PST
Comment on attachment 358342 [details] Patch for landing Attachment 358342 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/10631023 New failing tests: imported/w3c/web-platform-tests/fetch/api/abort/general-serviceworker.https.html
EWS Watchlist
Comment 22 2019-01-04 13:13:27 PST
Created attachment 358354 [details] Archive of layout-test-results from ews124 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews124 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
youenn fablet
Comment 23 2019-01-04 14:43:38 PST
Created attachment 358374 [details] Patch for landing
youenn fablet
Comment 24 2019-01-04 14:44:11 PST
(In reply to youenn fablet from comment #23) > Created attachment 358374 [details] > Patch for landing Marking imported/w3c/web-platform-tests/fetch/api/abort/general-serviceworker.https.html as flaky on iOS
WebKit Commit Bot
Comment 25 2019-01-04 15:33:11 PST
The commit-queue encountered the following flaky tests while processing attachment 358374 [details]: fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 26 2019-01-04 15:33:19 PST
The commit-queue encountered the following flaky tests while processing attachment 358374 [details]: http/wpt/css/css-animations/start-animation-001.html bug 190903 (authors: dino@apple.com, fred.wang@free.fr, and graouts@apple.com) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 27 2019-01-04 16:00:48 PST
The commit-queue encountered the following flaky tests while processing attachment 358374 [details]: http/wpt/css/css-animations/start-animation-001.html bug 190903 (authors: dino@apple.com, fred.wang@free.fr, and graouts@apple.com) The commit-queue is continuing to process your patch.
WebKit Commit Bot
Comment 28 2019-01-04 16:01:53 PST
Comment on attachment 358374 [details] Patch for landing Clearing flags on attachment: 358374 Committed r239644: <https://trac.webkit.org/changeset/239644>
WebKit Commit Bot
Comment 29 2019-01-04 16:01:55 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.