netwerk/base/nsIChildChannel.idl
author James Kitchener <jkitch.bug@internode.on.net>
Tue, 20 Jan 2015 03:58:00 -0500
changeset 224853 4ec37503ea6a752baf92e053ede5f0ff7750ff36
parent 102997 netwerk/base/public/nsIChildChannel.idl@a16372ce30b5f6b747246b01fcd215a4bf3b6342
child 300011 dc171b5fafc0742057f24d66dd76818f95c86656
permissions -rw-r--r--
Bug 1100184 - Flatten netwerk/base/{public,src}/ directories. r=mcmanus, r=poiru

/* 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 "nsISupports.idl"

interface nsIStreamListener;

/**
 * Implemented by content side of IPC protocols.
 */

[scriptable, uuid(c45b92ae-4f07-41dd-b0ef-aa044eeabb1e)]
interface nsIChildChannel : nsISupports
{
  /**
   * Create the chrome side of the IPC protocol and join an existing 'real'
   * channel on the parent process.  The id is provided by
   * nsIRedirectChannelRegistrar on the chrome process and pushed to the child
   * protocol as an argument to event starting a redirect.
   *
   * Primarilly used in HttpChannelChild::Redirect1Begin on a newly created
   * child channel, where the new channel is intended to be created on the
   * child process.
   */
  void connectParent(in uint32_t id);

  /**
   * As AsyncOpen is called on the chrome process for redirect target channels,
   * we have to inform the child side of the protocol of that fact by a special
   * method.
   */
  void completeRedirectSetup(in nsIStreamListener aListener,
                             in nsISupports aContext);
};