From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- dom/fetch/FetchChild.h | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 dom/fetch/FetchChild.h (limited to 'dom/fetch/FetchChild.h') diff --git a/dom/fetch/FetchChild.h b/dom/fetch/FetchChild.h new file mode 100644 index 0000000000..986fc728cb --- /dev/null +++ b/dom/fetch/FetchChild.h @@ -0,0 +1,91 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_fetchChild_h__ +#define mozilla_dom_fetchChild_h__ + +#include "mozilla/dom/AbortSignal.h" +#include "mozilla/dom/AbortFollower.h" +#include "mozilla/dom/FlippedOnce.h" +#include "mozilla/dom/PFetchChild.h" +#include "mozilla/dom/SerializedStackHolder.h" +#include "nsIConsoleReportCollector.h" +#include "nsIContentSecurityPolicy.h" +#include "nsISupports.h" +#include "nsIWorkerChannelInfo.h" + +namespace mozilla::dom { + +class FetchObserver; +class ThreadSafeWorkerRef; +class Promise; +class WorkerPrivate; + +class FetchChild final : public PFetchChild, public AbortFollower { + friend class PFetchChild; + + public: + NS_DECL_THREADSAFE_ISUPPORTS + + mozilla::ipc::IPCResult Recv__delete__(const nsresult&& aResult); + + mozilla::ipc::IPCResult RecvOnResponseAvailableInternal( + ParentToChildInternalResponse&& aResponse); + + mozilla::ipc::IPCResult RecvOnResponseEnd(ResponseEndArgs&& aArgs); + + mozilla::ipc::IPCResult RecvOnDataAvailable(); + + mozilla::ipc::IPCResult RecvOnFlushConsoleReport( + nsTArray&& aReports); + + mozilla::ipc::IPCResult RecvOnCSPViolationEvent(const nsAString& aJSon); + + mozilla::ipc::IPCResult RecvOnReportPerformanceTiming( + ResponseTiming&& aTiming); + + mozilla::ipc::IPCResult RecvOnNotifyNetworkMonitorAlternateStack( + uint64_t aChannelID); + + void SetCSPEventListener(nsICSPEventListener* aListener); + + static RefPtr Create(WorkerPrivate* aWorkerPrivate, + RefPtr aPromise, + RefPtr aSignalImpl, + RefPtr aObserver); + + FetchChild(RefPtr&& aPromise, RefPtr&& aSignalImpl, + RefPtr&& aObserver); + + // AbortFollower + void RunAbortAlgorithm() override; + + void DoFetchOp(const FetchOpArgs& aArgs); + + void SetOriginStack(UniquePtr&& aStack) { + MOZ_ASSERT(!mOriginStack); + mOriginStack = std::move(aStack); + } + + private: + ~FetchChild() = default; + + // WorkerPrivate shutdown callback. + void Shutdown(); + void ActorDestroy(ActorDestroyReason aReason) override; + + RefPtr mWorkerRef; + RefPtr mPromise; + RefPtr mSignalImpl; + RefPtr mFetchObserver; + UniquePtr mOriginStack; + nsCOMPtr mCSPEventListener; + nsCOMPtr mReporter; + FlippedOnce mIsShutdown; + nsCOMPtr mWorkerChannelInfo; +}; + +} // namespace mozilla::dom + +#endif -- cgit v1.2.3