Commit graph

94 commits

Author SHA1 Message Date
Kagami Sascha Rosylight
b758499f7e Bug 1832326 - Part 2: Remove FetchBody::mReadableStreamReader r=smaug
FetchBody does nothing with the strong reference. Both ReadableStream and FetchStreamReader have their strong references and corresponding cycle collection, so this one can go away.

Depends on D177904

Differential Revision: https://phabricator.services.mozilla.com/D178098
2023-05-16 00:08:01 +00:00
Kagami Sascha Rosylight
86f1e6b8a7 Bug 1832326 - Part 1: Remove BodyStreamHolder::NullifyStream()/MarkAsRead() r=smaug
1. NullifyStream has been there forever since bug 1128959 probably to release the underlying source early, but that purpose is now fulfilled internally in dom/streams by ReadableStreamController::ClearAlgorithms which calls BodyStreamUnderlyingSourceAlgorithms::ReleaseObjects.
2. FetchBody currently has two source of truth for `bodyUsed` but [per the spec](https://fetch.spec.whatwg.org/#dom-body-bodyused) it should just refer to `ReadableStream::Disturbed()`. Removing `mBodyUsed` would be more complex as there are several SetBodyUsed calls here and there, so this is only the first step to reduce the use of its own field but use the ReadableStream info directly.

Differential Revision: https://phabricator.services.mozilla.com/D177904
2023-05-16 00:08:00 +00:00
Kagami Sascha Rosylight
3803445d91 Bug 1832333 - Remove unused ErrorResult in GetBodyUsed r=smaug
It was added by bug 1385890 (D8450) to properly interact with JS ReadableStream and is not needed anymore.

Differential Revision: https://phabricator.services.mozilla.com/D177635
2023-05-10 20:11:13 +00:00
Kagami Sascha Rosylight
5bcfb4442b Bug 1815431 - Remove BlobBodyStreamHolder r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D169069
2023-02-09 07:01:10 +00:00
Olli Pettay
2a78f9ffc0 Bug 1775501 - multipart boundary should be handled as mixed case, r=kershaw
Since https://github.com/w3c/FileAPI/issues/43 is still open, it is unclear how body.type should work.
The current wpts expect some behavior which isn't in the specifications.
So, since the situation is very messy in the specifications, the patch is doing a
spot fix for boundary handling. It is ugly, but shouldn't change other behavior.

Differential Revision: https://phabricator.services.mozilla.com/D150018
2022-07-11 09:18:32 +00:00
Matthew Gaudet
d07e459e7b Bug 1757241 - Remove !MOZ_DOM_STREAMS code from most files r=smaug
I've also tested to verify that JS Streams remains enabled in the JS Shell package

Differential Revision: https://phabricator.services.mozilla.com/D142620
2022-04-13 18:57:48 +00:00
Eden Chuang
128ff19446 Bug 1744025: Remove only assertion-relevant mWorkerPrivate from FetchBody. r=dom-worker-reviewers,edenchuang
Depends on D132711

Differential Revision: https://phabricator.services.mozilla.com/D132795
2022-01-25 08:53:01 +00:00
Kagami Sascha Rosylight
cd40833835 Bug 1750543 - Don't abort by signal if consuming request body by DOM methods r=smaug
There are two cases when reading request body by DOM methods:

1. It's being read before fetch()
2. or after fetch()

The first case shouldn't be affected by abort signal per the spec, since the abort step is added only within fetch().

https://fetch.spec.whatwg.org/#ref-for-abortsignal-add

The second case should still fail but with `TypeError: Body has already been consumed`, not AbortError.

Differential Revision: https://phabricator.services.mozilla.com/D136262
2022-01-21 11:18:17 +00:00
Matthew Gaudet
ca57a3eb42 Bug 1750606 - Use script boundaries to make DOM streams buildable r=saschanaz
This gets us back to the state we were in with JS Streams. There's a fair
amount of work to get this annotation correct, and some tricky cases to
handle.

Differential Revision: https://phabricator.services.mozilla.com/D136178
2022-01-18 14:39:45 +00:00
Matthew Gaudet
e6f0e756a1 Bug 1734873 - Fetch/Response/Blob ReadableStream integration r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D131550
2022-01-14 21:09:20 +00:00
Norisz Fay
5edb88e27a Backed out 9 changesets (bug 1744025) for causing wpt failures on CheckedUnsafePtr.h CLOSED TREE
Backed out changeset 89dca4fc5940 (bug 1744025)
Backed out changeset 7aa395dcdbe4 (bug 1744025)
Backed out changeset 1580a4ea1a85 (bug 1744025)
Backed out changeset af171636a87f (bug 1744025)
Backed out changeset a5edfa1c9cd6 (bug 1744025)
Backed out changeset 8abd6ba69815 (bug 1744025)
Backed out changeset cfb822df5b3f (bug 1744025)
Backed out changeset 5598943a94fd (bug 1744025)
Backed out changeset 43186fbbf8b4 (bug 1744025)
2021-12-15 18:46:01 +02:00
Jens Stutte
2afbc37d6b Bug 1744025: Remove only assertion-relevant mWorkerPrivate from FetchBody. r=dom-worker-reviewers,edenchuang
Depends on D132711

Differential Revision: https://phabricator.services.mozilla.com/D132795
2021-12-15 13:48:18 +00:00
Sandor Molnar
68afd87d02 Backed out 8 changesets (bug 1744025) for causing bp-hybrid bustages in dom/clients/api/Clients.cpp. CLOSED TREE
Backed out changeset b6452430763d (bug 1744025)
Backed out changeset 46e9f06636da (bug 1744025)
Backed out changeset 913cdee4824f (bug 1744025)
Backed out changeset e1bc4e2066c7 (bug 1744025)
Backed out changeset e6b99af4b7ca (bug 1744025)
Backed out changeset e9b749f80ec2 (bug 1744025)
Backed out changeset 26d3176a00ef (bug 1744025)
Backed out changeset 2c8941fdcee5 (bug 1744025)
2021-12-08 01:30:06 +02:00
Jens Stutte
b16f0a884c Bug 1744025: Remove only assertion-relevant mWorkerPrivate from FetchBody. r=dom-worker-reviewers,edenchuang
Differential Revision: https://phabricator.services.mozilla.com/D132795
2021-12-07 16:47:17 +00:00
Matthew Gaudet
3bcfc27cef Bug 1730589 - Initial Implementation of ReadableStreams using WebIDL and DOM technologies r=smaug
This patch begins re-implements ReadableStreams using WebIDL and DOM technology (vs the existing JS streams implementation).   Some more background is [here](https://docs.google.com/document/d/1MWRkF32KV60ngOY-Ip4PnKbCMvl6VK_Y9QLED8MJJxg/edit#)

This is guarded under a configure flag `--enable-dom-streams`

1. ByteStreams and ReadableStream.tee will come in future patches.
2. I intentionally crash in other parts of the DOM that require streams (Fetch, Response, Blob), until the integration work is done in future patches.

   My current plan for that integration doesn't involve re-creating the alternative 'external streams' API from SpiderMonkey's implementation, but I have yet to do enough development to verify that will work.

Differential Revision: https://phabricator.services.mozilla.com/D122643
2021-10-06 18:43:01 +00:00
Andi-Bogdan Postelnicu
75ed803f7c Bug 1725145 - fixes for linking in the hybrid build env. r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D122344
2021-08-22 10:21:56 +00:00
Kagami Sascha Rosylight
a38945c762 Bug 1723050 - Part 10: Replace typedef by using in dom/fetch/ r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D121302
2021-08-06 22:02:57 +00:00
Tom Schuster
a865c88907 Bug 1684634 - Use InternalHeaders for MimeType instead of caching in the Response/Request constructor. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D101159
2021-01-12 10:38:25 +00:00
Simon Giesecke
dd80614fa0 Bug 1678062 - Remove unnecessary includes. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D97467

Depends on D96561
2020-11-23 16:12:02 +00:00
Jeff Walden
1be0ced0e4 Bug 1660555 - Make |AbortFollower| actually inherit from |nsISupports|. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D92323
2020-10-29 08:02:05 +00:00
Jeff Walden
e1ed5804d7 Bug 1660555 - Split AbortFollower::Abort into AbortFollower::RunAbortAlgorithm and AbortSignalImpl::SignalAbort functions for readability. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D92321
2020-10-22 07:42:18 +00:00
Jeff Walden
55f9e3cd27 Bug 1660954. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88113
2020-09-21 22:11:19 +00:00
Eric Rahm
1fca90d61d Bug 1626441 - Remove nsAutoPtr usage from dom/fetch. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D69112

--HG--
extra : moz-landing-system : lando
2020-04-03 21:05:07 +00:00
Gabriele Svelto
ace6d1063f Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-06 09:24:56 +00:00
Dorel Luca
a381d5c96d Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
bc9290f767 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442

--HG--
extra : moz-landing-system : lando
2019-12-04 15:01:19 +00:00
Andrea Marchesini
55dd423fa3 Bug 1567419 - Ensure the BodyStreamHolder has a valid stream always, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D38814

--HG--
extra : moz-landing-system : lando
2019-07-23 23:23:41 +00:00
Andrea Marchesini
a6803fce1e Bug 1563032 - BodyStream must check the return value of BodyStreamHolder::GetReadableStreamBody(), r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D36717

--HG--
extra : moz-landing-system : lando
2019-07-03 16:08:30 +00:00
Andrea Marchesini
30d3748577 Bug 1557121 - Implement Blob.text()/Blob.arrayBuffer()/Blob.stream() - part 3 - Rename FetchBodyConsumer to BodyConsumer, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D33828

--HG--
rename : dom/fetch/FetchConsumer.cpp => dom/base/BodyConsumer.cpp
rename : dom/fetch/FetchConsumer.h => dom/base/BodyConsumer.h
extra : moz-landing-system : lando
2019-06-07 14:16:59 +00:00
Andrea Marchesini
a96bc57140 Bug 1557121 - Implement Blob.text()/Blob.arrayBuffer()/Blob.stream() - part 2 - FetchBodyConsumer doesn't need to be a template class, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D33827

--HG--
extra : moz-landing-system : lando
2019-06-07 13:09:32 +00:00
Andrea Marchesini
16d8326f76 Bug 1557121 - Implement Blob.text()/Blob.arrayBuffer()/Blob.stream() - part 1 - Rename FetchStream to BodyStream, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D33826

--HG--
rename : dom/fetch/FetchStream.cpp => dom/base/BodyStream.cpp
rename : dom/fetch/FetchStream.h => dom/base/BodyStream.h
extra : moz-landing-system : lando
2019-06-07 13:09:12 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Andrea Marchesini
ebf242be0d Bug 1500879 - Fetch should not consume Request/Response with null-body, r=asuth
The fetch spec treats null bodies specially.  Their Body cannot become
disturbed or locked and a fresh empty ReadableStream is returned whenever an
attempt is made to consume the body.  We currently fail a number of WPT tests
in this area because we do mark the body consumed as exposed via bodyUsed.
2018-11-06 14:48:07 +01:00
Till Schneidereit ext:(%2C%20Jason%20Orendorff%20%3Cjorendorff%40mozilla.com%3E)
2cfba34b8d Bug 1385890 - Fix Streams implementation in multiple-global uses. r=baku,tcampbell,jorendorff
Streams have multiple parts that can be JS objects from different compartments.
For example, the [[reader]] internal slot of a stream can point to a reader
object in another compartment.

This patch makes the ReadableStream implementation robust against mixing and
matching stream-related objects and methods from different globals.

This also removes ReadableStreamBYOBReader and ReadableStreamBYOBRequest for
now, with a view toward enabling basic ReadableStream features by default in
bug 1389628.

Differential Revision: https://phabricator.services.mozilla.com/D8450

--HG--
extra : rebase_source : 71d73bed5bc82557efcb6b1ecb231275fd3e1189
extra : amend_source : de29f663b9929eb2858b23cc6f4e7ba97b23a28c
extra : source : f91eb962df6a06d5f51ad13caa2a4a9c2947f293
2018-10-11 14:18:43 -05:00
Thomas Wisniewski
d23454328e Bug 1491504 - shortcut blob responses from XHR and fetch when the URL is a blob URL; r=baku
shortcut blob responses from XHR and fetch when the URL is a blob URL

Differential Revision: https://phabricator.services.mozilla.com/D7253

--HG--
extra : moz-landing-system : lando
2018-10-06 17:34:24 +00:00
Ciure Andrei
47efccbbca Backed out changeset c5ac0cb25238 (bug 1491504) for FetchConsumer.cpp build bustages CLOSED TREE 2018-10-06 02:58:44 +03:00
Thomas Wisniewski
2294c78986 Bug 1491504 - shortcut blob responses from XHR and fetch when the URL is a blob URL; r=baku
shortcut blob responses from XHR and fetch when the URL is a blob URL

Differential Revision: https://phabricator.services.mozilla.com/D7253

--HG--
extra : moz-landing-system : lando
2018-10-05 20:23:55 +00:00
Thomas Wisniewski
400093bdb6 Bug 1482752 - Have Fetch bodies use File blobs for local files instead of regular blobs. r=baku
Have Fetch bodies use File blobs for local files instead of regular blobs.

Differential Revision: https://phabricator.services.mozilla.com/D3183

--HG--
extra : moz-landing-system : lando
2018-09-11 19:13:15 +00:00
Cosmin Sabou
dc72962df3 Backed out changeset 68805212630a (bug 1482752) for causing build bustages on dom/fetch. CLOSED TREE 2018-09-08 20:46:04 +03:00
Thomas Wisniewski
4d92a94c0d Bug 1482752 - Have Fetch bodies use File blobs for local files instead of regular blobs. r=baku
Have Fetch bodies use File blobs for local files instead of regular blobs.

Differential Revision: https://phabricator.services.mozilla.com/D3183

--HG--
extra : moz-landing-system : lando
2018-09-08 14:34:37 +00:00
Andrea Marchesini
e1a0b51543 Bug 1478101 - Split AbortSignal in 2 classes: AbortSignal and AbortSignalImpl, r=bz 2018-08-26 14:16:21 +02:00
Andrea Marchesini
f46c7858b5 Bug 1446204 - Response body should be marked as used if used as stream, r=till 2018-03-16 16:52:28 +01:00
Andrea Marchesini
2c7c69af24 Bug 1432963 - Fixing workers headers - part 14 - WorkerPrivate without workers namespace, r=smaug 2018-01-31 08:24:08 +01:00
Andrea Marchesini
76ea37870c Bug 1390717 - FetchStream should not have an extra JS::Heap<ReadableStream>, r=jonco 2017-08-31 16:29:02 +02:00
Andrea Marchesini
3e5de60a22 Bug 1378342 - AbortSignal/AbortController - part 9 - Request.signal should not be a reference of RequestInit.signal, r=bkelly 2017-08-29 11:31:07 +02:00
Andrea Marchesini
a441d6f43c Bug 1378342 - AbortSignal/AbortController - part 8 - Aborting ReadableStream when AbortSignal is aborted, r=bkelly 2017-08-29 11:31:06 +02:00
Andrea Marchesini
f533937740 Bug 1378342 - AbortSignal/AbortController - part 6 - Implement Request.signal, r=bkelly 2017-08-29 11:31:06 +02:00
Sebastian Hengst
80e618e605 Backed out changeset 2c6f49d73935 (bug 1378342) 2017-08-29 09:16:59 +02:00
Sebastian Hengst
03d1665672 Backed out changeset 64d0dbf9706b (bug 1378342) 2017-08-29 09:16:48 +02:00
Sebastian Hengst
db728bce54 Backed out changeset 4c41e61d6763 (bug 1378342) 2017-08-29 09:16:43 +02:00