diff options
Diffstat (limited to 'netwerk/ipc/PDocumentChannel.ipdl')
-rw-r--r-- | netwerk/ipc/PDocumentChannel.ipdl | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/netwerk/ipc/PDocumentChannel.ipdl b/netwerk/ipc/PDocumentChannel.ipdl new file mode 100644 index 0000000000..fd42ae295c --- /dev/null +++ b/netwerk/ipc/PDocumentChannel.ipdl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set sw=2 ts=8 et tw=80 ft=cpp : */ + +/* 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/. */ + +include protocol PNecko; +include protocol PStreamFilter; +include InputStreamParams; +include PBackgroundSharedTypes; +include NeckoChannelParams; +include IPCServiceWorkerDescriptor; +include IPCStream; +include DOMTypes; + +include "mozilla/net/NeckoMessageUtils.h"; + +using class nsHttpHeaderArray from "nsHttpHeaderArray.h"; +using mozilla::net::NetAddr from "mozilla/net/DNS.h"; + +namespace mozilla { +namespace net { + +protocol PDocumentChannel +{ + manager PNecko; + +parent: + + async Cancel(nsresult status, nsCString reason); + + async __delete__(); + +child: + + // Used to cancel child channel if we hit errors during creating and + // AsyncOpen of nsHttpChannel on the parent. + async FailedAsyncOpen(nsresult status); + + // This message is sent to a child that has been redirected to another process. + // As a consequence, it should cleanup the channel listeners and remove the + // request from the loadGroup. + // aStatus must be an error result. + // aLoadGroupReason is used as mStatus when we remove the child channel from + // the loadgroup (but aStatus is passed as the parameter to RemoveRequest). + // We do this so we can remove using NS_BINDING_RETARGETED, but still have the + // channel not be in an error state. + async DisconnectChildListeners(nsresult aStatus, nsresult aLoadGroupReason, bool aContinueNavigating); + + // Triggers replacing this DocumentChannel with a 'real' channel (like PHttpChannel), + // and notifies the listener via a redirect to the new channel. + async RedirectToRealChannel(RedirectToRealChannelArgs args, Endpoint<PStreamFilterParent>[] aEndpoint) + returns (nsresult rv); + + // May only be called on a DocumentChannel created by nsObjectLoadingContent + // for an object or embed element load. + // + // Promotes the load from an object load to a proper document load, and + // returns the `BrowsingContext` which should be used to host the final load. + async UpgradeObjectLoad() returns (MaybeDiscardedBrowsingContext frameContext); +}; + +} // namespace net +} // namespace mozilla + |