зеркало из https://github.com/mozilla/pjs.git
bug 580128 - Allow chrome://global/ scripts to unwrap SOWs going into C++. r=peterv/jst
This commit is contained in:
Родитель
2b24b54ddc
Коммит
54b162890d
|
@ -332,6 +332,9 @@ AccessCheck::isScriptAccessOnly(JSContext *cx, JSObject *wrapper)
|
|||
if (flags & WrapperFactory::SOW_FLAG)
|
||||
return !isSystemOnlyAccessPermitted(cx);
|
||||
|
||||
if (flags & WrapperFactory::PARTIALLY_TRANSPARENT)
|
||||
return !XrayUtils::IsTransparent(cx, wrapper);
|
||||
|
||||
nsIScriptSecurityManager *ssm = XPCWrapper::GetSecurityManager();
|
||||
if (!ssm)
|
||||
return true;
|
||||
|
|
|
@ -460,6 +460,16 @@ Transparent(JSContext *cx, JSObject *wrapper)
|
|||
return false;
|
||||
}
|
||||
|
||||
namespace XrayUtils {
|
||||
|
||||
bool
|
||||
IsTransparent(JSContext *cx, JSObject *wrapper)
|
||||
{
|
||||
return Transparent(cx, wrapper);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
template <typename Base, typename Policy>
|
||||
bool
|
||||
XrayWrapper<Base, Policy>::resolveWrappedJSObject(JSContext *cx, JSObject *wrapper,
|
||||
|
|
|
@ -52,6 +52,9 @@ namespace XrayUtils {
|
|||
|
||||
extern JSClass HolderClass;
|
||||
|
||||
bool
|
||||
IsTransparent(JSContext *cx, JSObject *wrapper);
|
||||
|
||||
}
|
||||
|
||||
// NB: Base *must* derive from JSProxyHandler
|
||||
|
|
Загрузка…
Ссылка в новой задаче