| '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; |