1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 ts=8 et tw=80 ft=cpp : */
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
8 include protocol PNecko;
9 include protocol PStreamFilter;
10 include InputStreamParams;
11 include PBackgroundSharedTypes;
12 include NeckoChannelParams;
13 include IPCServiceWorkerDescriptor;
17 include "mozilla/net/NeckoMessageUtils.h";
19 using class mozilla::net::nsHttpHeaderArray from "nsHttpHeaderArray.h";
20 using mozilla::net::NetAddr from "mozilla/net/DNS.h";
25 protocol PDocumentChannel
31 async Cancel(nsresult status, nsCString reason);
37 // Used to cancel child channel if we hit errors during creating and
38 // AsyncOpen of nsHttpChannel on the parent.
39 async FailedAsyncOpen(nsresult status);
41 // This message is sent to a child that has been redirected to another process.
42 // As a consequence, it should cleanup the channel listeners and remove the
43 // request from the loadGroup.
44 // aStatus must be an error result.
45 // aLoadGroupReason is used as mStatus when we remove the child channel from
46 // the loadgroup (but aStatus is passed as the parameter to RemoveRequest).
47 // We do this so we can remove using NS_BINDING_RETARGETED, but still have the
48 // channel not be in an error state.
49 async DisconnectChildListeners(nsresult aStatus, nsresult aLoadGroupReason, bool aContinueNavigating);
51 // Triggers replacing this DocumentChannel with a 'real' channel (like PHttpChannel),
52 // and notifies the listener via a redirect to the new channel.
53 async RedirectToRealChannel(RedirectToRealChannelArgs args, Endpoint<PStreamFilterParent>[] aEndpoint)
54 returns (nsresult rv);
56 // May only be called on a DocumentChannel created by nsObjectLoadingContent
57 // for an object or embed element load.
59 // Promotes the load from an object load to a proper document load, and
60 // returns the `BrowsingContext` which should be used to host the final load.
61 async UpgradeObjectLoad() returns (MaybeDiscardedBrowsingContext frameContext);
65 } // namespace mozilla