title: browserify + chrome extension's getBackgroundPage()
body: <p>I'm using browserify to manage a Chrome extension, and while in general it appears to work well, there's a problem that comes with browserify embedding the library code in some wrappers. In particular, when accessing <code>chrome.extensions.getBackgroundPage()</code> from a Chrome extension plugin as described, e.g., <a href="https://stackoverflow.com/a/9538625/353337">here</a>, not all (none?) of the background page's local variables can be accessed. This can be reproduced by anyone by wrapping <code>background.js</code> in</p>
  
  <pre><code>(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&amp;&amp;require;if(!u&amp;&amp;a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&amp;&amp;require;for(var o=0;o&lt;r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
  //[...]
  },{}]},{},[1]);
  </code></pre>
  
  <p>as browserify does.</p>
  
  <p>I'm not sure what kind of magic (if any) is behind <code>chrome.extension.getBackgroundPage()</code>, but maybe someone else has an idea.</p>