gecko/netwerk/base/public/nsIRequestObserverProxy.idl
Bobby Holley 4ce5d3c3c4 Bug 850247 - Make nsRequestObserverProxy hold onto its context. r=mcmanus
Both the consumers just do this manually. The context here is sometimes an
XPCWrappedJS, so passing it around with nsCOMPtrs off-main-thread can't
happen anymore.

We add assertions in OnStartRequest/OnStopRequest to catch any consumers
that might try to change contexts midstream.
2013-03-19 09:04:57 -07:00

32 lines
1.3 KiB
Plaintext

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* 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 "nsIRequestObserver.idl"
interface nsIEventTarget;
/**
* A request observer proxy is used to ship data over to another thread
* specified by the thread's dispatch target. The "true" request observer's
* methods are invoked on the other thread.
*
* This interface only provides the initialization needed after construction.
* Otherwise, these objects are used simply as nsIRequestObserver's.
*/
[scriptable, uuid(c2b06151-1bf8-4eef-aea9-1532f12f5a10)]
interface nsIRequestObserverProxy : nsIRequestObserver
{
/**
* Initializes an nsIRequestObserverProxy.
*
* @param observer - receives observer notifications on the main thread
* @param context - the context argument that will be passed to OnStopRequest
* and OnStartRequest. This has to be stored permanently on
* initialization because it sometimes can't be
* AddRef/Release'd off-main-thread.
*/
void init(in nsIRequestObserver observer, in nsISupports context);
};