Extensions can still get access to the underlying object (modulo safe
wrappers) by using .wrappedJSObject (or the newly-introduced
XPCNativeWrapper.unwrap). In fact, from a security standpoint, it's better to
use .wrappedJSObject anyway, as it more clearly marks code that deals directly
with content properties (e.g. consider document.cookie ===
document.wrappedJSObject.cookie, where the first gives chrome code access to
the document's cookie data, and the second gives chrome code access to a
content-defined bit of data that may or may not be the same thing).
The motivation for doing this change now, as opposed to some time in the
future, is that I'd like to decouple the decision of what wrapper to create
from the filename of the code that uses it. This means that what sort of
wrappers to create becomes a function of the scopes involved only, which are
easier to find than the filename that we're wrapping for.
--
Blake Kaplan
On what branch, and for what Gecko version, is this intended to take
effect? I need to make sure this gets documented. Is there a bug
number?
Sheppy
Given that this has the extremely large potential to break extensions, this
probably wants to land on trunk ASAP and hit the first release off of trunk
(so possibly not 3.7 if that's based on the 1.9.2 branch). This is
<https://bugzilla.mozilla.org/show_bug.cgi?id=533592>.
--
Blake Kaplan