code: function() {
    // TODO(benvanik): make an option?
    var port = 9222;
    var url = 'ws://localhost:' + port + '/devtools/browser';
  
    /**
     * Target remote debugging port URL.
     * @type {string}
     * @private
     */
    this.url_ = url;
  
    /**
     * Whether tracing is available at all.
     * @type {boolean}
     * @private
     */
    this.available_ = false;
  
    /**
     * Whether the tracing is active.
     * @type {boolean}
     * @private
     */
    this.active_ = false;
  
    /**
     * Tab ID that requested the tracing.
     * This is used to shut down tracing when the tab closes.
     * @type {number|undefined}
     * @private
     */
    this.requestingTabId_ = undefined;
  
    /**
     * Next request ID.
     * @type {number}
     * @private
     */
    this.nextRequestId_ = 0;
  
    /**
     * Pending get requests.
     * @type {!Array.<{callback: function(Object), scope: Object}>}
     * @private
     */
    this.pendingGets_ = [];
  
    /**
     * Data buffer.
     * @type {!Array.<string>}
     * @private
     */
    this.dataBuffer_ = [];
  
    /**
     * Web socket connected to the browser debug channel.
     * @type {WebSocket}
     * @private
     */
    this.socket_ = null;
  
    /**
     * Current number of connection attempts.
     * @type {number}
     * @private
     */
    this.connectionAttempts_ = 0;
  
    this.attemptConnection_();
  }
docs: @fileoverview Tracing data proxy.
  
  @author benvanik@google.com (Ben Vanik)
   
  Tracing data proxy.
  This allows a tab to enable chrome:tracing data in its session using the
  remote debugger API. The Chrome instance must have been launched with
  --remote-debugging-port=9222.
  
  @constructor