title: Firefox Add-On window.addEventListener error: window not defined
body: <p>i'm trying to follow this tutorial for creating a firefox addon that intercept when the url in the address bar change: </p>
  
  <p><a href="https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Progress_Listeners#Example:_Notification_when_the_value_in_Address_Bar_changes" rel="nofollow">https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Progress_Listeners#Example:_Notification_when_the_value_in_Address_Bar_changes</a></p>
  
  <p>I just copied the code, and just added an alert to see if it works, but i can't have it run in any way. </p>
  
  <p>My code is:</p>
  
  <pre><code>const {Cu} = require("chrome");
  Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
  
  var urlListener = {
      oldURL: null,
  
      init: function() {
          gBrowser.addProgressListener(this);
      },
  
      uninit: function() {
          gBrowser.removeProgressListener(this);
      },
  
      processNewURL: function(aURI) {
          if (aURI.spec == this.oldURL) return;
  
          // now we know the url is new...
          alert(aURI.spec);
          this.oldURL = aURI.spec;
      },
  
      // nsIWebProgressListener
      QueryInterface: XPCOMUtils.generateQI(["nsIWebProgressListener",
                                             "nsISupportsWeakReference"]),
  
      onLocationChange: function(aProgress, aRequest, aURI) {
      alert("Called");
          this.processNewURL(aURI);
      },
  
      onStateChange: function() {},
      onProgressChange: function() {},
      onStatusChange: function() {},
      onSecurityChange: function() {}
  };
  
    window.addEventListener("load", function() { urlListener.init() }, false);
    window.addEventListener("unload", function() { urlListener.uninit() }, false);
  </code></pre>
  
  <p>Whenever i try to start/test this extension i receive the following error: </p>
  
  <pre><code>Running tests on Firefox 24.3.0/Gecko 24.3.0 ({ec8030f7-c20a-464f-9b0e-13a3a9e97384}) under linux/x86-gcc3.
  Error: ReferenceError: window is not defined 
   Traceback (most recent call last):
    File "resource://jid1-u33krawc1uacsa-at-jetpack/amazon_rewriter/tests/test-main.js", line 1, in 
      var main = require("./main");
    File "resource://gre/modules/commonjs/sdk/loader/cuddlefish.js", line 133, in CuddlefishLoader/options&lt;.load
      result = load(loader, module);
    File "resource://jid1-u33krawc1uacsa-at-jetpack/amazon_rewriter/lib/main.js", line 38, in 
      window.addEventListener("load", function() { urlListener.init() }, false);
  0 of 1 tests passed.
  </code></pre>
  
  <p>Probably it's me that i don't understand something from the tutorial/extension creation process.</p>
  
  <p>Can you help me to understand what is missing? </p>
  
  <p><strong>EDIT</strong>
  After kapep answer, i resolved the window not defined error. But it seems that nothing happen when i change the url in the address bar. Any idea?</p>