diff options
author | Ms2ger <ms2ger@gmail.com> | 2016-02-09 16:35:38 +0100 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2016-02-09 16:46:48 +0100 |
commit | d79660e989eb445ac0378ac8aa20727d723dfdfa (patch) | |
tree | 3b2a1f44d7bbc806fe2c02e99fad5857a6eea40c /components/script/dom/browsingcontext.rs | |
parent | 70423154b9b7b3ec4ca0fe4990f98d9a71bd60fb (diff) | |
download | servo-d79660e989eb445ac0378ac8aa20727d723dfdfa.tar.gz servo-d79660e989eb445ac0378ac8aa20727d723dfdfa.zip |
Give WindowProxy objects an innerObject hook.
This ensures that UncheckedUnwrap(obj, /* stopAtOuter = */ true) will indeed
stop at the WindowProxy ("outer window", in older SpiderMonkey jargon), which
is necessary to prevent raw Window ("inner window") objects becoming visible
to JavaScript code, or tripping assertions that we don't do that.
Diffstat (limited to 'components/script/dom/browsingcontext.rs')
-rw-r--r-- | components/script/dom/browsingcontext.rs | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/components/script/dom/browsingcontext.rs b/components/script/dom/browsingcontext.rs index b63fbaa6fc5..d9b75153a1f 100644 --- a/components/script/dom/browsingcontext.rs +++ b/components/script/dom/browsingcontext.rs @@ -12,7 +12,7 @@ use dom::document::Document; use dom::element::Element; use dom::window::Window; use js::JSCLASS_IS_GLOBAL; -use js::glue::{CreateWrapperProxyHandler, ProxyTraps, WrapperNew}; +use js::glue::{CreateWrapperProxyHandler, ProxyTraps, NewWindowProxy}; use js::glue::{GetProxyPrivate, SetProxyExtra}; use js::jsapi::{Handle, JS_ForwardSetPropertyTo, ObjectOpResult, RootedObject, RootedValue}; use js::jsapi::{HandleId, HandleObject, MutableHandle, MutableHandleValue}; @@ -56,11 +56,7 @@ impl BrowsingContext { assert!(((*JS_GetClass(parent.get())).flags & JSCLASS_IS_GLOBAL) != 0); let _ac = JSAutoCompartment::new(cx, parent.get()); let window_proxy = RootedObject::new(cx, - WrapperNew(cx, - parent, - handler, - ptr::null(), - true)); + NewWindowProxy(cx, parent, handler)); assert!(!window_proxy.ptr.is_null()); let object = box BrowsingContext::new_inherited(document, frame_element); |