Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: third_party/gsutil/third_party/protorpc/experimental/javascript/closure/xmlhttp.js

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/protorpc/experimental/javascript/closure/xmlhttp.js
diff --git a/third_party/gsutil/third_party/protorpc/experimental/javascript/closure/xmlhttp.js b/third_party/gsutil/third_party/protorpc/experimental/javascript/closure/xmlhttp.js
new file mode 100644
index 0000000000000000000000000000000000000000..d9d7e5b816cec44c13f371bf13b84ccbc99358b3
--- /dev/null
+++ b/third_party/gsutil/third_party/protorpc/experimental/javascript/closure/xmlhttp.js
@@ -0,0 +1,215 @@
+// Copyright 2006 The Closure Library Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS-IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/**
+ * @fileoverview Low level handling of XMLHttpRequest.
+ */
+
+goog.provide('goog.net.DefaultXmlHttpFactory');
+goog.provide('goog.net.XmlHttp');
+goog.provide('goog.net.XmlHttp.OptionType');
+goog.provide('goog.net.XmlHttp.ReadyState');
+
+goog.require('goog.net.WrapperXmlHttpFactory');
+goog.require('goog.net.XmlHttpFactory');
+
+
+/**
+ * Static class for creating XMLHttpRequest objects.
+ * @return {!(XMLHttpRequest|GearsHttpRequest)} A new XMLHttpRequest object.
+ */
+goog.net.XmlHttp = function() {
+ return goog.net.XmlHttp.factory_.createInstance();
+};
+
+
+/**
+ * Gets the options to use with the XMLHttpRequest objects obtained using
+ * the static methods.
+ * @return {Object} The options.
+ */
+goog.net.XmlHttp.getOptions = function() {
+ return goog.net.XmlHttp.factory_.getOptions();
+};
+
+
+/**
+ * Type of options that an XmlHttp object can have.
+ * @enum {number}
+ */
+goog.net.XmlHttp.OptionType = {
+ /**
+ * Whether a goog.nullFunction should be used to clear the onreadystatechange
+ * handler instead of null.
+ */
+ USE_NULL_FUNCTION: 0,
+
+ /**
+ * NOTE(user): In IE if send() errors on a *local* request the readystate
+ * is still changed to COMPLETE. We need to ignore it and allow the
+ * try/catch around send() to pick up the error.
+ */
+ LOCAL_REQUEST_ERROR: 1
+};
+
+
+/**
+ * Status constants for XMLHTTP, matches:
+ * http://msdn.microsoft.com/library/default.asp?url=/library/
+ * en-us/xmlsdk/html/0e6a34e4-f90c-489d-acff-cb44242fafc6.asp
+ * @enum {number}
+ */
+goog.net.XmlHttp.ReadyState = {
+ /**
+ * Constant for when xmlhttprequest.readyState is uninitialized
+ */
+ UNINITIALIZED: 0,
+
+ /**
+ * Constant for when xmlhttprequest.readyState is loading.
+ */
+ LOADING: 1,
+
+ /**
+ * Constant for when xmlhttprequest.readyState is loaded.
+ */
+ LOADED: 2,
+
+ /**
+ * Constant for when xmlhttprequest.readyState is in an interactive state.
+ */
+ INTERACTIVE: 3,
+
+ /**
+ * Constant for when xmlhttprequest.readyState is completed
+ */
+ COMPLETE: 4
+};
+
+
+/**
+ * The global factory instance for creating XMLHttpRequest objects.
+ * @type {goog.net.XmlHttpFactory}
+ * @private
+ */
+goog.net.XmlHttp.factory_;
+
+
+/**
+ * Sets the factories for creating XMLHttpRequest objects and their options.
+ * @param {Function} factory The factory for XMLHttpRequest objects.
+ * @param {Function} optionsFactory The factory for options.
+ * @deprecated Use setGlobalFactory instead.
+ */
+goog.net.XmlHttp.setFactory = function(factory, optionsFactory) {
+ goog.net.XmlHttp.setGlobalFactory(new goog.net.WrapperXmlHttpFactory(
+ (/** @type {function() : !(XMLHttpRequest|GearsHttpRequest)} */ factory),
+ (/** @type {function() : !Object}*/ optionsFactory)));
+};
+
+
+/**
+ * Sets the global factory object.
+ * @param {!goog.net.XmlHttpFactory} factory New global factory object.
+ */
+goog.net.XmlHttp.setGlobalFactory = function(factory) {
+ goog.net.XmlHttp.factory_ = factory;
+};
+
+
+
+/**
+ * Default factory to use when creating xhr objects. You probably shouldn't be
+ * instantiating this directly, but rather using it via goog.net.XmlHttp.
+ * @extends {goog.net.XmlHttpFactory}
+ * @constructor
+ */
+goog.net.DefaultXmlHttpFactory = function() {
+ goog.net.XmlHttpFactory.call(this);
+};
+goog.inherits(goog.net.DefaultXmlHttpFactory, goog.net.XmlHttpFactory);
+
+
+/** @inheritDoc */
+goog.net.DefaultXmlHttpFactory.prototype.createInstance = function() {
+ var progId = this.getProgId_();
+ if (progId) {
+ return new ActiveXObject(progId);
+ } else {
+ return new XMLHttpRequest();
+ }
+};
+
+
+/** @inheritDoc */
+goog.net.DefaultXmlHttpFactory.prototype.internalGetOptions = function() {
+ var progId = this.getProgId_();
+ var options = {};
+ if (progId) {
+ options[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION] = true;
+ options[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR] = true;
+ }
+ return options;
+};
+
+
+/**
+ * The ActiveX PROG ID string to use to create xhr's in IE. Lazily initialized.
+ * @type {?string}
+ * @private
+ */
+goog.net.DefaultXmlHttpFactory.prototype.ieProgId_ = null;
+
+
+/**
+ * Initialize the private state used by other functions.
+ * @return {string} The ActiveX PROG ID string to use to create xhr's in IE.
+ * @private
+ */
+goog.net.DefaultXmlHttpFactory.prototype.getProgId_ = function() {
+ // The following blog post describes what PROG IDs to use to create the
+ // XMLHTTP object in Internet Explorer:
+ // http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
+ // However we do not (yet) fully trust that this will be OK for old versions
+ // of IE on Win9x so we therefore keep the last 2.
+ if (!this.ieProgId_ && typeof XMLHttpRequest == 'undefined' &&
+ typeof ActiveXObject != 'undefined') {
+ // Candidate Active X types.
+ var ACTIVE_X_IDENTS = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.3.0',
+ 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
+ for (var i = 0; i < ACTIVE_X_IDENTS.length; i++) {
+ var candidate = ACTIVE_X_IDENTS[i];
+ /** @preserveTry */
+ try {
+ new ActiveXObject(candidate);
+ // NOTE(user): cannot assign progid and return candidate in one line
+ // because JSCompiler complaings: BUG 658126
+ this.ieProgId_ = candidate;
+ return candidate;
+ } catch (e) {
+ // do nothing; try next choice
+ }
+ }
+
+ // couldn't find any matches
+ throw Error('Could not create ActiveXObject. ActiveX might be disabled,' +
+ ' or MSXML might not be installed');
+ }
+
+ return /** @type {string} */ (this.ieProgId_);
+};
+
+
+//Set the global factory to an instance of the default factory.
+goog.net.XmlHttp.setGlobalFactory(new goog.net.DefaultXmlHttpFactory());

Powered by Google App Engine
This is Rietveld 408576698