bug 580128 - Allow chrome://global/ scripts to unwrap SOWs going into C++. r=peterv/jst

This commit is contained in:
Blake Kaplan 2010-10-10 15:49:30 -07:00
Родитель 2b24b54ddc
Коммит 54b162890d
3 изменённых файлов: 16 добавлений и 0 удалений

Просмотреть файл

@ -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