diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /dom/fetch/FetchChild.h | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | dom/fetch/FetchChild.h | 91 |
1 files changed, 91 insertions, 0 deletions
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<net::ConsoleReportCollected>&& 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<FetchChild> Create(WorkerPrivate* aWorkerPrivate, + RefPtr<Promise> aPromise, + RefPtr<AbortSignalImpl> aSignalImpl, + RefPtr<FetchObserver> aObserver); + + FetchChild(RefPtr<Promise>&& aPromise, RefPtr<AbortSignalImpl>&& aSignalImpl, + RefPtr<FetchObserver>&& aObserver); + + // AbortFollower + void RunAbortAlgorithm() override; + + void DoFetchOp(const FetchOpArgs& aArgs); + + void SetOriginStack(UniquePtr<SerializedStackHolder>&& aStack) { + MOZ_ASSERT(!mOriginStack); + mOriginStack = std::move(aStack); + } + + private: + ~FetchChild() = default; + + // WorkerPrivate shutdown callback. + void Shutdown(); + void ActorDestroy(ActorDestroyReason aReason) override; + + RefPtr<ThreadSafeWorkerRef> mWorkerRef; + RefPtr<Promise> mPromise; + RefPtr<AbortSignalImpl> mSignalImpl; + RefPtr<FetchObserver> mFetchObserver; + UniquePtr<SerializedStackHolder> mOriginStack; + nsCOMPtr<nsICSPEventListener> mCSPEventListener; + nsCOMPtr<nsIConsoleReportCollector> mReporter; + FlippedOnce<false> mIsShutdown; + nsCOMPtr<nsIWorkerChannelInfo> mWorkerChannelInfo; +}; + +} // namespace mozilla::dom + +#endif |