| 'use strict'; | 
|   | 
| var inherits = require('inherits') | 
|   , AjaxBasedTransport = require('./lib/ajax-based') | 
|   , XhrReceiver = require('./receiver/xhr') | 
|   , XDRObject = require('./sender/xdr') | 
|   ; | 
|   | 
| // According to: | 
| //   http://stackoverflow.com/questions/1641507/detect-browser-support-for-cross-domain-xmlhttprequests | 
| //   http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ | 
|   | 
| function XdrStreamingTransport(transUrl) { | 
|   if (!XDRObject.enabled) { | 
|     throw new Error('Transport created when disabled'); | 
|   } | 
|   AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XDRObject); | 
| } | 
|   | 
| inherits(XdrStreamingTransport, AjaxBasedTransport); | 
|   | 
| XdrStreamingTransport.enabled = function(info) { | 
|   if (info.cookie_needed || info.nullOrigin) { | 
|     return false; | 
|   } | 
|   return XDRObject.enabled && info.sameScheme; | 
| }; | 
|   | 
| XdrStreamingTransport.transportName = 'xdr-streaming'; | 
| XdrStreamingTransport.roundTrips = 2; // preflight, ajax | 
|   | 
| module.exports = XdrStreamingTransport; |