/* -*- 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 mozilla::net::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[] 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