mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
Bug 1588241 - P7. Use NeckoTargetChannelFunctionEvent in DCC. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D52503 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
20d5d4d0d3
commit
006c446630
@ -190,31 +190,15 @@ DocumentChannelChild::AsyncOpen(nsIStreamListener* aListener) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
class DocumentFailedAsyncOpenEvent
|
||||
: public NeckoTargetChannelEvent<DocumentChannelChild> {
|
||||
public:
|
||||
DocumentFailedAsyncOpenEvent(DocumentChannelChild* aChild,
|
||||
nsresult aStatusCode)
|
||||
: NeckoTargetChannelEvent<DocumentChannelChild>(aChild),
|
||||
mStatus(aStatusCode) {}
|
||||
|
||||
void Run() override { mChild->DoFailedAsyncOpen(mStatus); }
|
||||
|
||||
private:
|
||||
nsresult mStatus;
|
||||
};
|
||||
|
||||
IPCResult DocumentChannelChild::RecvFailedAsyncOpen(
|
||||
const nsresult& aStatusCode) {
|
||||
mEventQueue->RunOrEnqueue(
|
||||
new DocumentFailedAsyncOpenEvent(this, aStatusCode));
|
||||
mEventQueue->RunOrEnqueue(new NeckoTargetChannelFunctionEvent(
|
||||
this, [self = UnsafePtr<DocumentChannelChild>(this), aStatusCode]() {
|
||||
self->ShutdownListeners(aStatusCode);
|
||||
}));
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
void DocumentChannelChild::DoFailedAsyncOpen(const nsresult& aStatusCode) {
|
||||
ShutdownListeners(aStatusCode);
|
||||
}
|
||||
|
||||
void DocumentChannelChild::ShutdownListeners(nsresult aStatusCode) {
|
||||
mStatus = aStatusCode;
|
||||
|
||||
|
@ -76,15 +76,12 @@ class DocumentChannelChild final : public PDocumentChannelChild,
|
||||
const LoadInfoArgs& aLoadInfo, nsIURI* aNewUri,
|
||||
ConfirmRedirectResolver&& aResolve);
|
||||
|
||||
void DoFailedAsyncOpen(const nsresult& aStatusCode);
|
||||
|
||||
const nsTArray<DocumentChannelRedirect>& GetRedirectChain() const {
|
||||
return mRedirects;
|
||||
}
|
||||
|
||||
friend class NeckoTargetChannelEvent<DocumentChannelChild>;
|
||||
|
||||
private:
|
||||
friend class NeckoTargetChannelFunctionEvent;
|
||||
void ShutdownListeners(nsresult aStatusCode);
|
||||
|
||||
~DocumentChannelChild() = default;
|
||||
|
Loading…
Reference in New Issue
Block a user