michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsISupports.idl" michael@0: michael@0: interface nsIStreamListener; michael@0: michael@0: /** michael@0: * Implemented by content side of IPC protocols. michael@0: */ michael@0: michael@0: [scriptable, uuid(c45b92ae-4f07-41dd-b0ef-aa044eeabb1e)] michael@0: interface nsIChildChannel : nsISupports michael@0: { michael@0: /** michael@0: * Create the chrome side of the IPC protocol and join an existing 'real' michael@0: * channel on the parent process. The id is provided by michael@0: * nsIRedirectChannelRegistrar on the chrome process and pushed to the child michael@0: * protocol as an argument to event starting a redirect. michael@0: * michael@0: * Primarilly used in HttpChannelChild::Redirect1Begin on a newly created michael@0: * child channel, where the new channel is intended to be created on the michael@0: * child process. michael@0: */ michael@0: void connectParent(in uint32_t id); michael@0: michael@0: /** michael@0: * As AsyncOpen is called on the chrome process for redirect target channels, michael@0: * we have to inform the child side of the protocol of that fact by a special michael@0: * method. michael@0: */ michael@0: void completeRedirectSetup(in nsIStreamListener aListener, michael@0: in nsISupports aContext); michael@0: };