diff -r 000000000000 -r 6474c204b198 js/xpconnect/idl/nsIXPCSecurityManager.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/xpconnect/idl/nsIXPCSecurityManager.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,44 @@ +/* -*- Mode: C; tab-width: 8; 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 "nsISupports.idl" + +[ptr] native nsAXPCNativeCallContextPtr(nsAXPCNativeCallContext); + +%{ C++ +#include "jspubtd.h" + +class nsAXPCNativeCallContext; +%} + +interface nsIClassInfo; + +[ptr] native JSContextPtr(JSContext); +[ptr] native JSObjectPtr(JSObject); +[ptr] native JSStackFramePtr(JSStackFrame); + +[uuid(d4d21714-116b-4851-a785-098c5dfea523)] +interface nsIXPCSecurityManager : nsISupports +{ + /** + * For each of these hooks returning NS_OK means 'let the action continue'. + * Returning an error code means 'veto the action'. XPConnect will return + * false to the js engine if the action is vetoed. The implementor of this + * interface is responsible for setting a JS exception into the JSContext + * if that is appropriate. + */ + + void CanCreateWrapper(in JSContextPtr aJSContext, + in nsIIDRef aIID, + in nsISupports aObj, + in nsIClassInfo aClassInfo); + + void CanCreateInstance(in JSContextPtr aJSContext, + in nsCIDRef aCID); + + void CanGetService(in JSContextPtr aJSContext, + in nsCIDRef aCID); +};