Components.utils.unload

  • Revision slug: Components.utils.unload
  • Revision title: Components.utils.unload
  • Revision id: 289002
  • Created:
  • Creator: mnoorenberghe
  • Is current revision? No
  • Comment

Revision Content

{{ Gecko_minversion_header("7.0") }}

This method was introduced in Firefox 7 and is used to unload JavaScript code modules. This can be particularly handy with restartless (boostrapped) extensions, so that you can unload an old version of a code module when a new version of your add-on is installed.

Once this method has been called, references to the module will continue to work but any subsequent import of the module will reload it and give a new reference. If the JavaScript code module has not yet been imported then this method will do nothing.

You should not unload modules that are part of the application (anything under resource://gre/ or resource:/// or resource://app/) as these may be in use by other extensions and the application. Only unload modules you include as part of your extension.

Syntax

Components.utils.unload( url );

Parameters

url
The "resource://" URL of the script to unload. This must be the same URL that was used to load the script.

Example

You can unload a module called MyModule.jsm using the following line of code:

Components.utils.unload("resource://myaddon/modules/MyModule.jsm");

See also

  • {{ bug("481603") }}
  • The documentation in {{ Source("js/xpconnect/idl/xpccomponents.idl", "xpccomponents.idl") }}
  • The tests in {{ Source("js/xpconnect/tests/unit/") }}

Revision Source

<p>{{ Gecko_minversion_header("7.0") }}</p>
<p>This method was introduced in <a href="/en/Firefox_7_for_developers" title="en/Firefox_7_for_developers">Firefox 7</a> and is used to unload <a href="/en/JavaScript_code_modules" title="en/JavaScript code modules">JavaScript code modules</a>. This can be particularly handy with <a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped_extensions">restartless (boostrapped) extensions</a>, so that you can unload an old version of a code module when a new version of your add-on is installed.</p>
<p>Once this method has been called, references to the module will continue to work but any subsequent import of the module will reload it and give a new reference. If the JavaScript code module has not yet been imported then this method will do nothing.</p>
<p>You should not unload modules that are part of the application (anything under <code><a class=" external" href="resource://gre/" rel="freelink">resource://gre/</a></code> or <code>resource:///</code> or <code><a class=" external" href="resource://app/" rel="freelink">resource://app/</a></code>) as these may be in use by other extensions and the application. Only unload modules you include as part of your extension.</p>
<h3 id="Syntax" name="Syntax">Syntax</h3>
<pre>Components.utils.unload( <em>url</em> );
</pre>
<h3 id="Parameters" name="Parameters">Parameters</h3>
<dl> <dt><code>url</code></dt> <dd>The "resource://" URL of the script to unload. This must be the same URL that was used to load the script.</dd>
</dl>
<h3 id="Example" name="Example">Example</h3>
<p>You can unload a module called MyModule.jsm using the following line of code:</p>
<pre class="eval">Components.utils.unload("<span class="nowiki">resource://myaddon/modules/MyModule.jsm</span>");
</pre>
<h3 id="See_also">See also</h3>
<ul>
  <li>{{ bug("481603") }}</li>
  <li>The documentation in {{ Source("js/xpconnect/idl/xpccomponents.idl", "xpccomponents.idl") }}</li>
  <li>The tests in {{ Source("js/xpconnect/tests/unit/") }}</li>
</ul>
Revert to this revision