/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
namespace ipc { class PrincipalInfo;
} // namespace ipc
namespace dom {
class BlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString; class
BlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrReadableStreamOrUSVString; class BlobImpl; class InternalRequest; class
OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString;
class ReadableStreamDefaultReader; class RequestOrUTF8String; class WorkerPrivate;
// If the body contains a ReadableStream body object, this method produces a // tee() of it. // // This is marked as a script boundary minimize changes required for // annotation while we work out how to correctly annotate this code. // Tracked in Bug 1750650.
MOZ_CAN_RUN_SCRIPT_BOUNDARY void MaybeTeeReadableStreamBody(JSContext* aCx, ReadableStream** aBodyOut,
FetchStreamReader** aStreamReader,
nsIInputStream** aInputStream,
ErrorResult& aRv);
// Utility public methods accessed by various runnables.
// This method _must_ be called in order to set the body as used. If the body // is a ReadableStream, this method will start reading the stream. // More in details, this method does: // 1) It uses an internal flag to track if the body is used. This is tracked // separately from the ReadableStream disturbed state due to purely native // streams. // 2) If there is a ReadableStream reflector for the native stream it is // Locked. // 3) If there is a JS ReadableStream then we begin pumping it into the native // body stream. This effectively locks and disturbs the stream. // // Note that JSContext is used only if there is a ReadableStream (this can // happen because the body is a ReadableStream or because attribute body has // already been used by content). If something goes wrong using // ReadableStream, errors will be reported via ErrorResult and not as JS // exceptions in JSContext. This is done in order to have a centralized error // reporting way. // // Exceptions generated when reading from the ReadableStream are directly sent // to the Console. void SetBodyUsed(JSContext* aCx, ErrorResult& aRv);
// Only ever set once, always on target thread. bool mBodyUsed;
// The main-thread event target for runnable dispatching.
nsCOMPtr<nsISerialEventTarget> mMainThreadEventTarget;
};
class EmptyBody final : public FetchBody<EmptyBody> {
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(EmptyBody,
FetchBody<EmptyBody>)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.