aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2016-02-09 16:35:38 +0100
committerMs2ger <ms2ger@gmail.com>2016-02-09 16:46:48 +0100
commitd79660e989eb445ac0378ac8aa20727d723dfdfa (patch)
tree3b2a1f44d7bbc806fe2c02e99fad5857a6eea40c /components/script
parent70423154b9b7b3ec4ca0fe4990f98d9a71bd60fb (diff)
downloadservo-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')
-rw-r--r--components/script/dom/browsingcontext.rs8
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);