commit d90faf32c738e4c57b8c7a1e58d9c3d3329bcb14 parent 74d292120880713c5328896e6ecc0397e682e54d Author: Valentin Gosu <valentin.gosu@gmail.com> Date: Wed, 22 Oct 2025 21:12:44 +0000 Bug 1992512 - Check retargetable listener succeeds CheckListenerChain when retargetting off-main-thread has succeedeed. r=necko-reviewers,jesup Differential Revision: https://phabricator.services.mozilla.com/D268684 Diffstat:
| M | netwerk/protocol/http/HttpChannelChild.cpp | | | 17 | +++++++++++++++++ |
1 file changed, 17 insertions(+), 0 deletions(-)
diff --git a/netwerk/protocol/http/HttpChannelChild.cpp b/netwerk/protocol/http/HttpChannelChild.cpp @@ -620,6 +620,23 @@ void HttpChannelChild::DoOnStartRequest(nsIRequest* aRequest) { conv->MaybeRetarget(this); } } + +#if defined(EARLY_BETA_OR_EARLIER) || defined(DEBUG) + if (nsCOMPtr<nsIThreadRetargetableRequest> req = + do_QueryInterface(aRequest)) { + nsCOMPtr<nsISerialEventTarget> target; + rv = req->GetDeliveryTarget(getter_AddRefs(target)); + if (NS_SUCCEEDED(rv) && target && !target->IsOnCurrentThread()) { + if (nsCOMPtr<nsIThreadRetargetableStreamListener> retargetableListener = + do_QueryInterface(mListener)) { + MOZ_DIAGNOSTIC_ASSERT( + NS_SUCCEEDED(retargetableListener->CheckListenerChain())); + } else { + MOZ_DIAGNOSTIC_ASSERT(false, "Unexpected listener is not retargetable"); + } + } + } +#endif } void HttpChannelChild::ProcessOnTransportAndData(