Issue #1587 Part 11 (followup 1): Implement multithreaded signals for workers.

This commit is contained in:
Moonchild 2020-07-24 11:09:54 +00:00 • committed by Roy Tam
commit 1ae6431766
13 changed files with 823 additions and 728 deletions

View file

@ -11,6 +11,7 @@
#include "nsIInputStream.h"
#include "nsIObserver.h"
#include "nsWeakReference.h"
#include "mozilla/dom/AbortSignal.h"
#include "mozilla/dom/MutableBlobStorage.h"
class nsIThread;
@ -34,6 +35,7 @@ template <class Derived> class FetchBody;
template <class Derived>
class FetchBodyConsumer final : public nsIObserver
, public nsSupportsWeakReference
, public AbortSignal::Follower
{
public:
NS_DECL_THREADSAFE_ISUPPORTS
@ -42,6 +44,7 @@ public:
static already_AddRefed<Promise>
Create(nsIGlobalObject* aGlobal,
FetchBody<Derived>* aBody,
AbortSignal* aSignal,
FetchConsumeType aType,
ErrorResult& aRv);
@ -73,6 +76,9 @@ public:
mConsumeBodyPump = nullptr;
}
// Override AbortSignal::Follower::Aborted
void Aborted() override;
private:
FetchBodyConsumer(nsIGlobalObject* aGlobalObject,
workers::WorkerPrivate* aWorkerPrivate,