This code was probably working when the js was running in extensions space on extension nodes, but fails when the js is in extension space but the node is content. Blocks nothing, I wrote different code.
I was talking about this with Blake, and we see no reason to forbid deletes on an XPCNativeWrapper from deleting own properties. Brendan, jst, can you think of any such reasons?
Created attachment 405965 [details] [diff] [review] Proposed fix Note that unlike the other wrappers, XPCNativeWrapper doesn't forward the delete to its underlying object. If you delete an IDL-declared property, we'll simply re-resolve it the next time you ask for it. Expandos get nuked until you recreate them.
Comment on attachment 405965 [details] [diff] [review] Proposed fix r=bzbarsky
So is this a fix for this limitation: https://developer.mozilla.org/en/XPCNativeWrapper#Limitations_of_XPCNativeWrapper "16. Using the delete operator on "expando" properties of an XPCNativeWrapper throws a security exception." ?
Yes, it is.
Updated: https://developer.mozilla.org/en/XPCNativeWrapper Mentioned here: https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0