XPCNativeWrapper

  • Revision slug: XPCNativeWrapper
  • Revision title: XPCNativeWrapper
  • Revision id: 92987
  • Created:
  • Creator: Bzbarsky
  • Is current revision? No
  • Comment

Revision Content

XPCNativeWrapper is a way to wrap up an object so that it's safe to access from privileged code. It can be used in all Firefox versions, though the behavior changed somewhat starting with Firefox 1.1.

XPCNativeWrapper in Firefox versions prior to 1.1

In Firefox versions prior to 1.1, use of XPCNativeWrapper requires manually constructing an XPCNativeWrapper and passing it the object to be wrapped and the names of the methods/properties to be exposed as arguments. The resulting object exposes ONLY the methods/properties whose methods were passed as arguments. This is described in more detail in the the entry for XPCNativeWrapper at the MozillaZine KnowledgeBase.

XPCNativeWrapper in Firefox versions starting with 1.1

bz: Three types, or two? Still sorting this out. See https://bugzilla.mozilla.org/show_bug.cgi?id=295782

There are three slightly different types of XPCNativeWrapper in Firefox 1.1.

Explicit XPCNativeWrapper with string arguments

Explicit XPCNativeWrapper with no string arguments

Implicit XPCNativeWrapper

Revision Source

<p><code>XPCNativeWrapper</code> is a way to wrap up an object so that it's safe to access from privileged code.  It can be used in all Firefox versions, though the 
behavior changed somewhat starting with Firefox 1.1.
</p>
<h3 name="XPCNativeWrapper_in_Firefox_versions_prior_to_1.1"> <code>XPCNativeWrapper</code> in Firefox versions prior to 1.1 </h3>
<p>In Firefox versions prior to 1.1, use of <code>XPCNativeWrapper</code> requires manually constructing an <code>XPCNativeWrapper</code> and passing it the object to be wrapped and the names of the methods/properties to be exposed as arguments.  The resulting object exposes ONLY the methods/properties whose methods were passed as arguments.  This is described in more detail in the <a class="external" href="http://kb.mozillazine.org/XPCNativeWrapper">the entry for <code>XPCNativeWrapper</code> at the MozillaZine KnowledgeBase</a>.
</p>
<h3 name="XPCNativeWrapper_in_Firefox_versions_starting_with_1.1"> <code>XPCNativeWrapper</code> in Firefox versions starting with 1.1 </h3>
<p><i>bz: Three types, or two?  Still sorting this out.  See https://bugzilla.mozilla.org/show_bug.cgi?id=295782</i>
</p><p>There are three slightly different types of <code>XPCNativeWrapper</code> in Firefox 1.1. 
</p>
<h4 name="Explicit_XPCNativeWrapper_with_string_arguments"> Explicit <code>XPCNativeWrapper</code> with string arguments </h4>
<h4 name="Explicit_XPCNativeWrapper_with_no_string_arguments"> Explicit <code>XPCNativeWrapper</code> with no string arguments </h4>
<h4 name="Implicit_XPCNativeWrapper"> Implicit <code>XPCNativeWrapper</code> </h4>
Revert to this revision