extensions/wtf-injector-firefox/lib/main.js
function(url, worker) {
  /**
   * Page URL.
   * @type {string}
   */
  this.url = url;

  /**
   * Firefox tab handle.
   * @type {!Tab}
   */
  this.tab = worker.tab;

  /**
   * Page worker running the content script.
   * @type {!Worker}
   */
  this.worker = worker;

  /**
   * Pending debugger records.
   * These are batched up so that we don't throw too many messages at the page.
   * @type {!Array.<!Object>}
   * @private
   */
  this.debuggerRecords_ = [];

  /**
   * Periodic timer to transmit debugger data.
   * @type {number}
   * @private
   */
  this.debuggerTransmitId_ = timers.setInterval((function() {
    var records = this.debuggerRecords_;
    if (records.length) {
      this.debuggerRecords_ = [];
      this.worker.port.emit('extension-event', JSON.stringify({
        'command': 'debugger_data',
        'records': records
      }));
    }
  }).bind(this), 1000);

  // Start watching GC events.
  acquireMemoryObserver();
}
function(url, worker) {
  /**
   * Page URL.
   * @type {string}
   */
  this.url = url;

  /**
   * Firefox tab handle.
   * @type {!Tab}
   */
  this.tab = worker.tab;

  /**
   * Page worker running the content script.
   * @type {!Worker}
   */
  this.worker = worker;

  /**
   * Pending debugger records.
   * These are batched up so that we don't throw too many messages at the page.
   * @type {!Array.<!Object>}
   * @private
   */
  this.debuggerRecords_ = [];

  /**
   * Periodic timer to transmit debugger data.
   * @type {number}
   * @private
   */
  this.debuggerTransmitId_ = timers.setInterval((function() {
    var records = this.debuggerRecords_;
    if (records.length) {
      this.debuggerRecords_ = [];
      this.worker.port.emit('extension-event', JSON.stringify({
        'command': 'debugger_data',
        'records': records
      }));
    }
  }).bind(this), 1000);

  // Start watching GC events.
  acquireMemoryObserver();
}
function ( url , worker ) { /**
   * Page URL.
   * @type {string}
   */ this . url = url ; /**
   * Firefox tab handle.
   * @type {!Tab}
   */ this . tab = worker . tab ; /**
   * Page worker running the content script.
   * @type {!Worker}
   */ this . worker = worker ; /**
   * Pending debugger records.
   * These are batched up so that we don't throw too many messages at the page.
   * @type {!Array.<!Object>}
   * @private
   */ this . debuggerRecords_ = [ ] ; /**
   * Periodic timer to transmit debugger data.
   * @type {number}
   * @private
   */ this . debuggerTransmitId_ = timers . setInterval ( ( function ( ) { var records = this . debuggerRecords_ ; if ( records . length ) { this . debuggerRecords_ = [ ] ; this . worker . port . emit ( 'extension-event' , JSON . stringify ( { 'command' : 'debugger_data' , 'records' : records } ) ) ; } } ) . bind ( this ) , 1000 ) ; // Start watching GC events. acquireMemoryObserver ( ) ; }
Injected tab wrapper.
@param {string} url Canonical page URL.
@param {!Worker} worker Content script worker.
@constructor
Injected tab wrapper .