Bug 965898 - All properties from cross-origin objects are "configurable", non-enumerable, and non-writable. r=gabor

This commit is contained in:
Bobby Holley 2014-07-29 21:35:30 -07:00
parent 7724a65eb8
commit 1ddc37dfd7

View File

@ -189,6 +189,13 @@ CrossOriginXrayWrapper::getPropertyDescriptor(JSContext *cx,
if (desc.object()) { if (desc.object()) {
// All properties on cross-origin DOM objects are |own|. // All properties on cross-origin DOM objects are |own|.
desc.object().set(wrapper); desc.object().set(wrapper);
// All properties on cross-origin DOM objects are non-enumerable and
// "configurable". Any value attributes are read-only.
desc.attributesRef() &= ~JSPROP_ENUMERATE;
desc.attributesRef() &= ~JSPROP_PERMANENT;
if (!desc.getter() && !desc.setter())
desc.attributesRef() |= JSPROP_READONLY;
} }
return true; return true;
} }