33 lines
		
	
	
		
			984 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			984 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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;
 |