From 0cd6f26b6b8fcec2b43398fd831f6b9e0cb977e3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 8 Apr 2024 17:18:09 +0200 Subject: Merging upstream version 115.9.0esr. Signed-off-by: Daniel Baumann --- netwerk/protocol/http/HttpChannelChild.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'netwerk/protocol/http/HttpChannelChild.h') diff --git a/netwerk/protocol/http/HttpChannelChild.h b/netwerk/protocol/http/HttpChannelChild.h index c88d30023c..6a54ce390a 100644 --- a/netwerk/protocol/http/HttpChannelChild.h +++ b/netwerk/protocol/http/HttpChannelChild.h @@ -395,6 +395,12 @@ class HttpChannelChild final : public PHttpChannelChild, // permission or cookie. That is, RecvOnStartRequestSent is received. uint8_t mSuspendedByWaitingForPermissionCookie : 1; + // HttpChannelChild::Release has some special logic that makes sure + // OnStart/OnStop are always called when releasing the channel. + // But we have to make sure we only do this once - otherwise we could + // get stuck in a loop. + uint8_t mAlreadyReleased : 1; + void CleanupRedirectingChannel(nsresult rv); // Calls OnStartRequest and/or OnStopRequest on our listener in case we didn't @@ -427,7 +433,9 @@ class HttpChannelChild final : public PHttpChannelChild, const ResourceTimingStructArgs& timing); void Redirect3Complete(); void DeleteSelf(); - void DoNotifyListener(); + // aUseEventQueue should only be false when called from + // HttpChannelChild::Release to make sure OnStopRequest is called syncly. + void DoNotifyListener(bool aUseEventQueue = true); void ContinueDoNotifyListener(); void OnAfterLastPart(const nsresult& aStatus); void MaybeConnectToSocketProcess(); -- cgit v1.2.3