76 lines
2.9 KiB
JavaScript
76 lines
2.9 KiB
JavaScript
|
/*TRANSPILED*//*
|
||
|
|
||
|
Copyright The Closure Library Authors.
|
||
|
SPDX-License-Identifier: Apache-2.0
|
||
|
*/
|
||
|
'use strict';
|
||
|
goog.provide("goog.net.DefaultXmlHttpFactory");
|
||
|
goog.provide("goog.net.XmlHttp");
|
||
|
goog.provide("goog.net.XmlHttp.OptionType");
|
||
|
goog.provide("goog.net.XmlHttp.ReadyState");
|
||
|
goog.provide("goog.net.XmlHttpDefines");
|
||
|
goog.require("goog.asserts");
|
||
|
goog.require("goog.net.WrapperXmlHttpFactory");
|
||
|
goog.require("goog.net.XmlHttpFactory");
|
||
|
goog.requireType("goog.net.XhrLike");
|
||
|
goog.net.XmlHttp = function() {
|
||
|
return goog.net.XmlHttp.factory_.createInstance();
|
||
|
};
|
||
|
goog.net.XmlHttp.ASSUME_NATIVE_XHR = goog.define("goog.net.XmlHttp.ASSUME_NATIVE_XHR", false);
|
||
|
goog.net.XmlHttpDefines = {};
|
||
|
goog.net.XmlHttpDefines.ASSUME_NATIVE_XHR = goog.define("goog.net.XmlHttpDefines.ASSUME_NATIVE_XHR", false);
|
||
|
goog.net.XmlHttp.getOptions = function() {
|
||
|
return goog.net.XmlHttp.factory_.getOptions();
|
||
|
};
|
||
|
goog.net.XmlHttp.OptionType = {USE_NULL_FUNCTION:0, LOCAL_REQUEST_ERROR:1,};
|
||
|
goog.net.XmlHttp.ReadyState = {UNINITIALIZED:0, LOADING:1, LOADED:2, INTERACTIVE:3, COMPLETE:4,};
|
||
|
goog.net.XmlHttp.factory_;
|
||
|
goog.net.XmlHttp.setFactory = function(factory, optionsFactory) {
|
||
|
goog.net.XmlHttp.setGlobalFactory(new goog.net.WrapperXmlHttpFactory(goog.asserts.assert(factory), goog.asserts.assert(optionsFactory)));
|
||
|
};
|
||
|
goog.net.XmlHttp.setGlobalFactory = function(factory) {
|
||
|
goog.net.XmlHttp.factory_ = factory;
|
||
|
};
|
||
|
goog.net.DefaultXmlHttpFactory = function() {
|
||
|
goog.net.XmlHttpFactory.call(this);
|
||
|
};
|
||
|
goog.inherits(goog.net.DefaultXmlHttpFactory, goog.net.XmlHttpFactory);
|
||
|
goog.net.DefaultXmlHttpFactory.prototype.createInstance = function() {
|
||
|
const progId = this.getProgId_();
|
||
|
if (progId) {
|
||
|
return new ActiveXObject(progId);
|
||
|
} else {
|
||
|
return new XMLHttpRequest();
|
||
|
}
|
||
|
};
|
||
|
goog.net.DefaultXmlHttpFactory.prototype.internalGetOptions = function() {
|
||
|
const progId = this.getProgId_();
|
||
|
const options = {};
|
||
|
if (progId) {
|
||
|
options[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION] = true;
|
||
|
options[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR] = true;
|
||
|
}
|
||
|
return options;
|
||
|
};
|
||
|
goog.net.DefaultXmlHttpFactory.prototype.ieProgId_;
|
||
|
goog.net.DefaultXmlHttpFactory.prototype.getProgId_ = function() {
|
||
|
if (goog.net.XmlHttp.ASSUME_NATIVE_XHR || goog.net.XmlHttpDefines.ASSUME_NATIVE_XHR) {
|
||
|
return "";
|
||
|
}
|
||
|
if (!this.ieProgId_ && typeof XMLHttpRequest == "undefined" && typeof ActiveXObject != "undefined") {
|
||
|
const ACTIVE_X_IDENTS = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP",];
|
||
|
for (let i = 0; i < ACTIVE_X_IDENTS.length; i++) {
|
||
|
const candidate = ACTIVE_X_IDENTS[i];
|
||
|
try {
|
||
|
new ActiveXObject(candidate);
|
||
|
this.ieProgId_ = candidate;
|
||
|
return candidate;
|
||
|
} catch (e) {
|
||
|
}
|
||
|
}
|
||
|
throw new Error("Could not create ActiveXObject. ActiveX might be disabled," + " or MSXML might not be installed");
|
||
|
}
|
||
|
return this.ieProgId_;
|
||
|
};
|
||
|
goog.net.XmlHttp.setGlobalFactory(new goog.net.DefaultXmlHttpFactory());
|