Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/netwerk/base/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 3 kB image not shown  

Quelle  nsIRedirectChannelRegistrar.idl

  Sprache: C
 

/* 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 nsIChannel;
interface nsIParentChannel;

/**
 * Used on the chrome process as a service to join channel implementation
 * and parent IPC protocol side under a unique id.  Provides this way a generic
 * communication while redirecting to various protocols.
 *
 * See also nsIChildChannel and nsIParentChannel.
 */


[scriptable, uuid (1f2c5e0a-9b3d-4d8e-8c4a-6d7e0b1a2c3d)]
interface nsIRedirectChannelRegistrar : nsISupports
{
  /**
   * Register the redirect target channel. The passed id needs to be a
   * unique ID for that channel (see `nsContentUtils::GenerateLoadIdentifier`).
   * aContentParentId identifies the content process the redirect is destined
   * for (0 for the parent process); linkChannels will only pair the channel
   * with a parent actor coming from that same process.
   *
   * Primarily used in ParentChannelListener::AsyncOnChannelRedirect to get
   * a channel id sent to the HttpChannelChild being redirected.
   */

  void registerChannel(in nsIChannel channel, in uint64_t id,
                       in uint64_t aContentParentId);

  /**
   * First, search for the channel registered under the id.  If found, and the
   * registered channel is owned by aContentParentId, return it. Then, register
   * under the same id the parent side of IPC protocol to let it be later
   * grabbed back by the originator of the redirect and notifications from the
   * real channel could be forwarded to this parent channel. Fails with
   * NS_ERROR_NOT_AVAILABLE if no channel is registered under the id for the
   * given content process.
   *
   * Primarily used in parent side of an IPC protocol implementation
   * in reaction to nsIChildChannel.connectParent(id) called from the child
   * process. aContentParentId is the process that made that request.
   */

  nsIChannel linkChannels(in uint64_t id, in uint64_t aContentParentId,
                          in nsIParentChannel channel);

  /**
   * Returns back the channel previously registered under the ID with
   * registerChannel method.
   *
   * Primarilly used in chrome IPC side of protocols when attaching a redirect
   * target channel to an existing 'real' channel implementation.
   */

  nsIChannel getRegisteredChannel(in uint64_t id);

  /**
   * Returns the stream listener that shall be attached to the redirect target
   * channel, all notification from the redirect target channel will be
   * forwarded to this stream listener.
   *
   * Primarilly used in HttpChannelParent::OnRedirectResult callback to grab
   * the created parent side of the channel and forward notifications to it.
   */

  nsIParentChannel getParentChannel(in uint64_t id);

  /**
   * To not force all channel implementations to support weak reference
   * consumers of this service must ensure release of registered channels them
   * self.  This releases both the real and parent channel registered under
   * the id.
   *
   * Primarilly used in HttpChannelParent::OnRedirectResult callback.
   */

  void deregisterChannels(in uint64_t id);
};

Messung V0.5 in Prozent
C=88 H=99 G=93

¤ Dauer der Verarbeitung: 0.6 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.