зеркало из https://github.com/mozilla/gecko-dev.git
Bug 703537 - Rename Wrapper to DirectWrapper; r=bholley
This commit is contained in:
Родитель
24c3eeb430
Коммит
3fb48a743e
|
@ -569,10 +569,10 @@ nsPIDOMWindow::~nsPIDOMWindow() {}
|
|||
// nsOuterWindowProxy: Outer Window Proxy
|
||||
//*****************************************************************************
|
||||
|
||||
class nsOuterWindowProxy : public js::Wrapper
|
||||
class nsOuterWindowProxy : public js::DirectWrapper
|
||||
{
|
||||
public:
|
||||
nsOuterWindowProxy() : js::Wrapper(0) {}
|
||||
nsOuterWindowProxy() : js::DirectWrapper(0) {}
|
||||
|
||||
virtual bool isOuterWindow() {
|
||||
return true;
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
#include "jsobj.h"
|
||||
#include "jswrapper.h"
|
||||
|
||||
struct OuterWrapper : js::Wrapper
|
||||
struct OuterWrapper : js::DirectWrapper
|
||||
{
|
||||
OuterWrapper() : Wrapper(0) {}
|
||||
OuterWrapper() : DirectWrapper(0) {}
|
||||
|
||||
virtual bool isOuterWindow() {
|
||||
return true;
|
||||
|
|
|
@ -150,7 +150,7 @@ class UpvarCookie;
|
|||
|
||||
class Proxy;
|
||||
class BaseProxyHandler;
|
||||
class Wrapper;
|
||||
class DirectWrapper;
|
||||
class CrossCompartmentWrapper;
|
||||
|
||||
class TempAllocPolicy;
|
||||
|
|
|
@ -33,7 +33,7 @@ int sWrapperFamily;
|
|||
}
|
||||
|
||||
void *
|
||||
Wrapper::getWrapperFamily()
|
||||
DirectWrapper::getWrapperFamily()
|
||||
{
|
||||
return &sWrapperFamily;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ js::UnwrapObject(JSObject *wrapped, bool stopAtOuter, unsigned *flagsp)
|
|||
unsigned flags = 0;
|
||||
while (wrapped->isWrapper() &&
|
||||
!JS_UNLIKELY(stopAtOuter && wrapped->getClass()->ext.innerObject)) {
|
||||
flags |= static_cast<Wrapper *>(GetProxyHandler(wrapped))->flags();
|
||||
flags |= AbstractWrapper::wrapperHandler(wrapped)->flags();
|
||||
wrapped = GetProxyPrivate(wrapped).toObjectOrNull();
|
||||
}
|
||||
if (flagsp)
|
||||
|
@ -83,11 +83,11 @@ AbstractWrapper::AbstractWrapper(unsigned flags) :
|
|||
{
|
||||
}
|
||||
|
||||
Wrapper::Wrapper(unsigned flags) : AbstractWrapper(flags)
|
||||
DirectWrapper::DirectWrapper(unsigned flags) : AbstractWrapper(flags)
|
||||
{
|
||||
}
|
||||
|
||||
Wrapper::~Wrapper()
|
||||
DirectWrapper::~DirectWrapper()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,7 @@ Cond(JSBool b, bool *bp)
|
|||
}
|
||||
|
||||
bool
|
||||
Wrapper::has(JSContext *cx, JSObject *wrapper, jsid id, bool *bp)
|
||||
DirectWrapper::has(JSContext *cx, JSObject *wrapper, jsid id, bool *bp)
|
||||
{
|
||||
*bp = false; // default result if we refuse to perform this action
|
||||
JSBool found;
|
||||
|
@ -167,7 +167,7 @@ Wrapper::has(JSContext *cx, JSObject *wrapper, jsid id, bool *bp)
|
|||
}
|
||||
|
||||
bool
|
||||
Wrapper::hasOwn(JSContext *cx, JSObject *wrapper, jsid id, bool *bp)
|
||||
DirectWrapper::hasOwn(JSContext *cx, JSObject *wrapper, jsid id, bool *bp)
|
||||
{
|
||||
*bp = false; // default result if we refuse to perform this action
|
||||
PropertyDescriptor desc;
|
||||
|
@ -199,7 +199,7 @@ Wrapper::keys(JSContext *cx, JSObject *wrapper, AutoIdVector &props)
|
|||
}
|
||||
|
||||
bool
|
||||
Wrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flags, Value *vp)
|
||||
DirectWrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flags, Value *vp)
|
||||
{
|
||||
vp->setUndefined(); // default result if we refuse to perform this action
|
||||
const jsid id = JSID_VOID;
|
||||
|
@ -207,7 +207,7 @@ Wrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flags, Value *vp)
|
|||
}
|
||||
|
||||
bool
|
||||
Wrapper::call(JSContext *cx, JSObject *wrapper, unsigned argc, Value *vp)
|
||||
DirectWrapper::call(JSContext *cx, JSObject *wrapper, unsigned argc, Value *vp)
|
||||
{
|
||||
vp->setUndefined(); // default result if we refuse to perform this action
|
||||
const jsid id = JSID_VOID;
|
||||
|
@ -215,7 +215,7 @@ Wrapper::call(JSContext *cx, JSObject *wrapper, unsigned argc, Value *vp)
|
|||
}
|
||||
|
||||
bool
|
||||
Wrapper::construct(JSContext *cx, JSObject *wrapper, unsigned argc, Value *argv, Value *vp)
|
||||
DirectWrapper::construct(JSContext *cx, JSObject *wrapper, unsigned argc, Value *argv, Value *vp)
|
||||
{
|
||||
vp->setUndefined(); // default result if we refuse to perform this action
|
||||
const jsid id = JSID_VOID;
|
||||
|
@ -223,14 +223,14 @@ Wrapper::construct(JSContext *cx, JSObject *wrapper, unsigned argc, Value *argv,
|
|||
}
|
||||
|
||||
bool
|
||||
Wrapper::nativeCall(JSContext *cx, JSObject *wrapper, Class *clasp, Native native, CallArgs args)
|
||||
DirectWrapper::nativeCall(JSContext *cx, JSObject *wrapper, Class *clasp, Native native, CallArgs args)
|
||||
{
|
||||
const jsid id = JSID_VOID;
|
||||
CHECKED(IndirectProxyHandler::nativeCall(cx, wrapper, clasp, native, args), CALL);
|
||||
}
|
||||
|
||||
bool
|
||||
Wrapper::hasInstance(JSContext *cx, JSObject *wrapper, const Value *vp, bool *bp)
|
||||
DirectWrapper::hasInstance(JSContext *cx, JSObject *wrapper, const Value *vp, bool *bp)
|
||||
{
|
||||
*bp = false; // default result if we refuse to perform this action
|
||||
const jsid id = JSID_VOID;
|
||||
|
@ -238,7 +238,7 @@ Wrapper::hasInstance(JSContext *cx, JSObject *wrapper, const Value *vp, bool *bp
|
|||
}
|
||||
|
||||
JSString *
|
||||
Wrapper::obj_toString(JSContext *cx, JSObject *wrapper)
|
||||
DirectWrapper::obj_toString(JSContext *cx, JSObject *wrapper)
|
||||
{
|
||||
bool status;
|
||||
if (!enter(cx, wrapper, JSID_VOID, GET, &status)) {
|
||||
|
@ -254,7 +254,7 @@ Wrapper::obj_toString(JSContext *cx, JSObject *wrapper)
|
|||
}
|
||||
|
||||
JSString *
|
||||
Wrapper::fun_toString(JSContext *cx, JSObject *wrapper, unsigned indent)
|
||||
DirectWrapper::fun_toString(JSContext *cx, JSObject *wrapper, unsigned indent)
|
||||
{
|
||||
bool status;
|
||||
if (!enter(cx, wrapper, JSID_VOID, GET, &status)) {
|
||||
|
@ -298,10 +298,11 @@ AbstractWrapper::leave(JSContext *cx, JSObject *wrapper)
|
|||
{
|
||||
}
|
||||
|
||||
Wrapper Wrapper::singleton((unsigned)0);
|
||||
DirectWrapper DirectWrapper::singleton((unsigned)0);
|
||||
|
||||
JSObject *
|
||||
Wrapper::New(JSContext *cx, JSObject *obj, JSObject *proto, JSObject *parent, Wrapper *handler)
|
||||
DirectWrapper::New(JSContext *cx, JSObject *obj, JSObject *proto,
|
||||
JSObject *parent, Wrapper *handler)
|
||||
{
|
||||
JS_ASSERT(parent);
|
||||
#if JS_HAS_XML_SUPPORT
|
||||
|
@ -424,7 +425,7 @@ ErrorCopier::~ErrorCopier()
|
|||
/* Cross compartment wrappers. */
|
||||
|
||||
CrossCompartmentWrapper::CrossCompartmentWrapper(unsigned flags)
|
||||
: Wrapper(CROSS_COMPARTMENT | flags)
|
||||
: DirectWrapper(CROSS_COMPARTMENT | flags)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -450,7 +451,7 @@ CrossCompartmentWrapper::getPropertyDescriptor(JSContext *cx, JSObject *wrapper,
|
|||
{
|
||||
PIERCE(cx, wrapper, set ? SET : GET,
|
||||
call.destination->wrapId(cx, &id),
|
||||
Wrapper::getPropertyDescriptor(cx, wrapper, id, set, desc),
|
||||
DirectWrapper::getPropertyDescriptor(cx, wrapper, id, set, desc),
|
||||
call.origin->wrap(cx, desc));
|
||||
}
|
||||
|
||||
|
@ -460,7 +461,7 @@ CrossCompartmentWrapper::getOwnPropertyDescriptor(JSContext *cx, JSObject *wrapp
|
|||
{
|
||||
PIERCE(cx, wrapper, set ? SET : GET,
|
||||
call.destination->wrapId(cx, &id),
|
||||
Wrapper::getOwnPropertyDescriptor(cx, wrapper, id, set, desc),
|
||||
DirectWrapper::getOwnPropertyDescriptor(cx, wrapper, id, set, desc),
|
||||
call.origin->wrap(cx, desc));
|
||||
}
|
||||
|
||||
|
@ -470,7 +471,7 @@ CrossCompartmentWrapper::defineProperty(JSContext *cx, JSObject *wrapper, jsid i
|
|||
AutoPropertyDescriptorRooter desc2(cx, desc);
|
||||
PIERCE(cx, wrapper, SET,
|
||||
call.destination->wrapId(cx, &id) && call.destination->wrap(cx, &desc2),
|
||||
Wrapper::defineProperty(cx, wrapper, id, &desc2),
|
||||
DirectWrapper::defineProperty(cx, wrapper, id, &desc2),
|
||||
NOTHING);
|
||||
}
|
||||
|
||||
|
@ -479,7 +480,7 @@ CrossCompartmentWrapper::getOwnPropertyNames(JSContext *cx, JSObject *wrapper, A
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
NOTHING,
|
||||
Wrapper::getOwnPropertyNames(cx, wrapper, props),
|
||||
DirectWrapper::getOwnPropertyNames(cx, wrapper, props),
|
||||
call.origin->wrap(cx, props));
|
||||
}
|
||||
|
||||
|
@ -488,7 +489,7 @@ CrossCompartmentWrapper::delete_(JSContext *cx, JSObject *wrapper, jsid id, bool
|
|||
{
|
||||
PIERCE(cx, wrapper, SET,
|
||||
call.destination->wrapId(cx, &id),
|
||||
Wrapper::delete_(cx, wrapper, id, bp),
|
||||
DirectWrapper::delete_(cx, wrapper, id, bp),
|
||||
NOTHING);
|
||||
}
|
||||
|
||||
|
@ -497,7 +498,7 @@ CrossCompartmentWrapper::enumerate(JSContext *cx, JSObject *wrapper, AutoIdVecto
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
NOTHING,
|
||||
Wrapper::enumerate(cx, wrapper, props),
|
||||
DirectWrapper::enumerate(cx, wrapper, props),
|
||||
call.origin->wrap(cx, props));
|
||||
}
|
||||
|
||||
|
@ -506,7 +507,7 @@ CrossCompartmentWrapper::has(JSContext *cx, JSObject *wrapper, jsid id, bool *bp
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
call.destination->wrapId(cx, &id),
|
||||
Wrapper::has(cx, wrapper, id, bp),
|
||||
DirectWrapper::has(cx, wrapper, id, bp),
|
||||
NOTHING);
|
||||
}
|
||||
|
||||
|
@ -515,7 +516,7 @@ CrossCompartmentWrapper::hasOwn(JSContext *cx, JSObject *wrapper, jsid id, bool
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
call.destination->wrapId(cx, &id),
|
||||
Wrapper::hasOwn(cx, wrapper, id, bp),
|
||||
DirectWrapper::hasOwn(cx, wrapper, id, bp),
|
||||
NOTHING);
|
||||
}
|
||||
|
||||
|
@ -524,7 +525,7 @@ CrossCompartmentWrapper::get(JSContext *cx, JSObject *wrapper, JSObject *receive
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
call.destination->wrap(cx, &receiver) && call.destination->wrapId(cx, &id),
|
||||
Wrapper::get(cx, wrapper, receiver, id, vp),
|
||||
DirectWrapper::get(cx, wrapper, receiver, id, vp),
|
||||
call.origin->wrap(cx, vp));
|
||||
}
|
||||
|
||||
|
@ -539,7 +540,7 @@ CrossCompartmentWrapper::set(JSContext *cx, JSObject *wrapper_, JSObject *receiv
|
|||
call.destination->wrap(cx, receiver.address()) &&
|
||||
call.destination->wrapId(cx, id.address()) &&
|
||||
call.destination->wrap(cx, value.address()),
|
||||
Wrapper::set(cx, wrapper, receiver, id, strict, value.address()),
|
||||
DirectWrapper::set(cx, wrapper, receiver, id, strict, value.address()),
|
||||
NOTHING);
|
||||
}
|
||||
|
||||
|
@ -548,7 +549,7 @@ CrossCompartmentWrapper::keys(JSContext *cx, JSObject *wrapper, AutoIdVector &pr
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
NOTHING,
|
||||
Wrapper::keys(cx, wrapper, props),
|
||||
DirectWrapper::keys(cx, wrapper, props),
|
||||
call.origin->wrap(cx, props));
|
||||
}
|
||||
|
||||
|
@ -626,7 +627,7 @@ CrossCompartmentWrapper::iterate(JSContext *cx, JSObject *wrapper, unsigned flag
|
|||
{
|
||||
PIERCE(cx, wrapper, GET,
|
||||
NOTHING,
|
||||
Wrapper::iterate(cx, wrapper, flags, vp),
|
||||
DirectWrapper::iterate(cx, wrapper, flags, vp),
|
||||
CanReify(vp) ? Reify(cx, call.origin, vp) : call.origin->wrap(cx, vp));
|
||||
}
|
||||
|
||||
|
@ -647,7 +648,7 @@ CrossCompartmentWrapper::call(JSContext *cx, JSObject *wrapper_, unsigned argc,
|
|||
if (!call.destination->wrap(cx, &argv[n]))
|
||||
return false;
|
||||
}
|
||||
if (!Wrapper::call(cx, wrapper, argc, vp))
|
||||
if (!DirectWrapper::call(cx, wrapper, argc, vp))
|
||||
return false;
|
||||
|
||||
call.leave();
|
||||
|
@ -668,7 +669,7 @@ CrossCompartmentWrapper::construct(JSContext *cx, JSObject *wrapper_, unsigned a
|
|||
if (!call.destination->wrap(cx, &argv[n]))
|
||||
return false;
|
||||
}
|
||||
if (!Wrapper::construct(cx, wrapper, argc, argv, rval))
|
||||
if (!DirectWrapper::construct(cx, wrapper, argc, argv, rval))
|
||||
return false;
|
||||
|
||||
call.leave();
|
||||
|
@ -705,7 +706,7 @@ CrossCompartmentWrapper::nativeCall(JSContext *cx, JSObject *wrapper, Class *cla
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!Wrapper::nativeCall(cx, wrapper, clasp, native, dstArgs))
|
||||
if (!DirectWrapper::nativeCall(cx, wrapper, clasp, native, dstArgs))
|
||||
return false;
|
||||
|
||||
srcArgs.rval() = dstArgs.rval();
|
||||
|
@ -724,7 +725,7 @@ CrossCompartmentWrapper::hasInstance(JSContext *cx, JSObject *wrapper, const Val
|
|||
Value v = *vp;
|
||||
if (!call.destination->wrap(cx, &v))
|
||||
return false;
|
||||
return Wrapper::hasInstance(cx, wrapper, &v, bp);
|
||||
return DirectWrapper::hasInstance(cx, wrapper, &v, bp);
|
||||
}
|
||||
|
||||
JSString *
|
||||
|
@ -734,7 +735,7 @@ CrossCompartmentWrapper::obj_toString(JSContext *cx, JSObject *wrapper)
|
|||
if (!call.enter())
|
||||
return NULL;
|
||||
|
||||
JSString *str = Wrapper::obj_toString(cx, wrapper);
|
||||
JSString *str = DirectWrapper::obj_toString(cx, wrapper);
|
||||
if (!str)
|
||||
return NULL;
|
||||
|
||||
|
@ -751,7 +752,7 @@ CrossCompartmentWrapper::fun_toString(JSContext *cx, JSObject *wrapper, unsigned
|
|||
if (!call.enter())
|
||||
return NULL;
|
||||
|
||||
JSString *str = Wrapper::fun_toString(cx, wrapper, indent);
|
||||
JSString *str = DirectWrapper::fun_toString(cx, wrapper, indent);
|
||||
if (!str)
|
||||
return NULL;
|
||||
|
||||
|
@ -824,7 +825,7 @@ SecurityWrapper<Base>::regexp_toShared(JSContext *cx, JSObject *obj, RegExpGuard
|
|||
}
|
||||
|
||||
|
||||
template class js::SecurityWrapper<Wrapper>;
|
||||
template class js::SecurityWrapper<DirectWrapper>;
|
||||
template class js::SecurityWrapper<CrossCompartmentWrapper>;
|
||||
|
||||
class JS_FRIEND_API(DeadObjectProxy) : public BaseProxyHandler
|
||||
|
|
|
@ -78,14 +78,14 @@ class JS_FRIEND_API(AbstractWrapper) : public IndirectProxyHandler
|
|||
};
|
||||
|
||||
/* No-op wrapper handler base class. */
|
||||
class JS_FRIEND_API(Wrapper) : public AbstractWrapper
|
||||
class JS_FRIEND_API(DirectWrapper) : public AbstractWrapper
|
||||
{
|
||||
public:
|
||||
explicit Wrapper(unsigned flags);
|
||||
explicit DirectWrapper(unsigned flags);
|
||||
|
||||
typedef enum { PermitObjectAccess, PermitPropertyAccess, DenyAccess } Permission;
|
||||
|
||||
virtual ~Wrapper();
|
||||
virtual ~DirectWrapper();
|
||||
|
||||
/* ES5 Harmony derived wrapper traps. */
|
||||
virtual bool has(JSContext *cx, JSObject *wrapper, jsid id, bool *bp) MOZ_OVERRIDE;
|
||||
|
@ -106,10 +106,10 @@ class JS_FRIEND_API(Wrapper) : public AbstractWrapper
|
|||
|
||||
using AbstractWrapper::Action;
|
||||
|
||||
static Wrapper singleton;
|
||||
static DirectWrapper singleton;
|
||||
|
||||
static JSObject *New(JSContext *cx, JSObject *obj, JSObject *proto, JSObject *parent,
|
||||
Wrapper *handler);
|
||||
DirectWrapper *handler);
|
||||
|
||||
using AbstractWrapper::wrappedObject;
|
||||
using AbstractWrapper::wrapperHandler;
|
||||
|
@ -122,8 +122,14 @@ class JS_FRIEND_API(Wrapper) : public AbstractWrapper
|
|||
static void *getWrapperFamily();
|
||||
};
|
||||
|
||||
/*
|
||||
* This typedef is only here to avoid code churn in xpconnect. It will be
|
||||
* removed as soon as the Wrapper base class lands.
|
||||
*/
|
||||
typedef DirectWrapper Wrapper;
|
||||
|
||||
/* Base class for all cross compartment wrapper handlers. */
|
||||
class JS_FRIEND_API(CrossCompartmentWrapper) : public Wrapper
|
||||
class JS_FRIEND_API(CrossCompartmentWrapper) : public DirectWrapper
|
||||
{
|
||||
public:
|
||||
CrossCompartmentWrapper(unsigned flags);
|
||||
|
@ -183,7 +189,7 @@ class JS_FRIEND_API(SecurityWrapper) : public Base
|
|||
virtual bool regexp_toShared(JSContext *cx, JSObject *proxy, RegExpGuard *g) MOZ_OVERRIDE;
|
||||
};
|
||||
|
||||
typedef SecurityWrapper<Wrapper> SameCompartmentSecurityWrapper;
|
||||
typedef SecurityWrapper<DirectWrapper> SameCompartmentSecurityWrapper;
|
||||
typedef SecurityWrapper<CrossCompartmentWrapper> CrossCompartmentSecurityWrapper;
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче