Source code

Revision control

Copy as Markdown

Other Tools

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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"
%{ C++
namespace mozilla {
namespace net {
class HttpBackgroundChannelParent;
class HttpChannelParent;
}
}
%}
[ptr] native HttpChannelParent(mozilla::net::HttpChannelParent);
[ptr] native HttpBackgroundChannelParent(mozilla::net::HttpBackgroundChannelParent);
/*
* Registrar for pairing HttpChannelParent and HttpBackgroundChannelParent via
* channel Id. HttpChannelParent::OnBackgroundParentReady and
* HttpBackgroundChannelParent::LinkToChannel will be invoked to notify the
* existence of associated channel object.
*/
[uuid(8acaa9b1-f0c4-4ade-baeb-39b0d4b96e5b)]
interface nsIBackgroundChannelRegistrar : nsISupports
{
/*
* Link the provided channel parent actor with the given channel Id.
* callbacks will be invoked immediately when the HttpBackgroundChannelParent
* associated with the same channel Id is found. Store the HttpChannelParent
* until a matched linkBackgroundChannel is invoked.
*
* @param aKey the channel Id
* @param aChannel the channel parent actor to be paired
*/
[noscript,notxpcom,nostdcall] void linkHttpChannel(in uint64_t aKey,
in HttpChannelParent aChannel);
/*
* Link the provided background channel with the given channel Id.
* callbacks will be invoked immediately when the HttpChannelParent associated
* with the same channel Id is found. Store the HttpBackgroundChannelParent
* until a matched linkHttpChannel is invoked.
*
* @param aKey the channel Id
* @param aBgChannel the background channel to be paired
*/
[noscript,notxpcom,nostdcall] void linkBackgroundChannel(in uint64_t aKey,
in HttpBackgroundChannelParent aBgChannel);
/*
* Delete previous stored HttpChannelParent or HttpBackgroundChannelParent
* if no need to wait for the paired channel object, e.g. background channel
* is destroyed before pairing is completed.
*
* @param aKey the channel Id
*/
[noscript,notxpcom,nostdcall] void deleteChannel(in uint64_t aKey);
};