aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/net/networktester.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/net/networktester.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/net/networktester.js383
1 files changed, 0 insertions, 383 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/net/networktester.js b/contexts/data/lib/closure-library/closure/goog/net/networktester.js
deleted file mode 100644
index 972abab..0000000
--- a/contexts/data/lib/closure-library/closure/goog/net/networktester.js
+++ /dev/null
@@ -1,383 +0,0 @@
-// Copyright 2007 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 Definition of goog.net.NetworkTester.
- */
-
-goog.provide('goog.net.NetworkTester');
-goog.require('goog.Timer');
-goog.require('goog.Uri');
-goog.require('goog.debug.Logger');
-
-
-
-/**
- * Creates an instance of goog.net.NetworkTester which can be used to test
- * for internet connectivity by seeing if an image can be loaded from
- * google.com. It can also be tested with other URLs.
- * @param {Function} callback Callback that is called when the test completes.
- * The callback takes a single boolean parameter. True indicates the URL
- * was reachable, false indicates it wasn't.
- * @param {Object=} opt_handler Handler object for the callback.
- * @param {goog.Uri=} opt_uri URI to use for testing.
- * @constructor
- */
-goog.net.NetworkTester = function(callback, opt_handler, opt_uri) {
- /**
- * Callback that is called when the test completes.
- * The callback takes a single boolean parameter. True indicates the URL was
- * reachable, false indicates it wasn't.
- * @type {Function}
- * @private
- */
- this.callback_ = callback;
-
- /**
- * Handler object for the callback.
- * @type {Object|undefined}
- * @private
- */
- this.handler_ = opt_handler;
-
- if (!opt_uri) {
- // set the default URI to be based on the cleardot image at google.com
- // We need to add a 'rand' to make sure the response is not fulfilled
- // by browser cache. Use protocol-relative URLs to avoid insecure content
- // warnings in IE.
- opt_uri = new goog.Uri('//www.google.com/images/cleardot.gif');
- opt_uri.makeUnique();
- }
-
- /**
- * Uri to use for test. Defaults to using an image off of google.com
- * @type {goog.Uri}
- * @private
- */
- this.uri_ = opt_uri;
-};
-
-
-/**
- * Default timeout
- * @type {number}
- */
-goog.net.NetworkTester.DEFAULT_TIMEOUT_MS = 10000;
-
-
-/**
- * Logger object
- * @type {goog.debug.Logger}
- * @private
- */
-goog.net.NetworkTester.prototype.logger_ =
- goog.debug.Logger.getLogger('goog.net.NetworkTester');
-
-
-/**
- * Timeout for test
- * @type {number}
- * @private
- */
-goog.net.NetworkTester.prototype.timeoutMs_ =
- goog.net.NetworkTester.DEFAULT_TIMEOUT_MS;
-
-
-/**
- * Whether we've already started running.
- * @type {boolean}
- * @private
- */
-goog.net.NetworkTester.prototype.running_ = false;
-
-
-/**
- * Number of retries to attempt
- * @type {number}
- * @private
- */
-goog.net.NetworkTester.prototype.retries_ = 0;
-
-
-/**
- * Attempt number we're on
- * @type {number}
- * @private
- */
-goog.net.NetworkTester.prototype.attempt_ = 0;
-
-
-/**
- * Pause between retries in milliseconds.
- * @type {number}
- * @private
- */
-goog.net.NetworkTester.prototype.pauseBetweenRetriesMs_ = 0;
-
-
-/**
- * Timer for timeouts.
- * @type {?number}
- * @private
- */
-goog.net.NetworkTester.prototype.timeoutTimer_ = null;
-
-
-/**
- * Timer for pauses between retries.
- * @type {?number}
- * @private
- */
-goog.net.NetworkTester.prototype.pauseTimer_ = null;
-
-
-/**
- * Returns the timeout in milliseconds.
- * @return {number} Timeout in milliseconds.
- */
-goog.net.NetworkTester.prototype.getTimeout = function() {
- return this.timeoutMs_;
-};
-
-
-/**
- * Sets the timeout in milliseconds.
- * @param {number} timeoutMs Timeout in milliseconds.
- */
-goog.net.NetworkTester.prototype.setTimeout = function(timeoutMs) {
- this.timeoutMs_ = timeoutMs;
-};
-
-
-/**
- * Returns the numer of retries to attempt.
- * @return {number} Number of retries to attempt.
- */
-goog.net.NetworkTester.prototype.getNumRetries = function() {
- return this.retries_;
-};
-
-
-/**
- * Sets the timeout in milliseconds.
- * @param {number} retries Number of retries to attempt.
- */
-goog.net.NetworkTester.prototype.setNumRetries = function(retries) {
- this.retries_ = retries;
-};
-
-
-/**
- * Returns the pause between retries in milliseconds.
- * @return {number} Pause between retries in milliseconds.
- */
-goog.net.NetworkTester.prototype.getPauseBetweenRetries = function() {
- return this.pauseBetweenRetriesMs_;
-};
-
-
-/**
- * Sets the pause between retries in milliseconds.
- * @param {number} pauseMs Pause between retries in milliseconds.
- */
-goog.net.NetworkTester.prototype.setPauseBetweenRetries = function(pauseMs) {
- this.pauseBetweenRetriesMs_ = pauseMs;
-};
-
-
-/**
- * Returns the uri to use for the test.
- * @return {goog.Uri} The uri for the test.
- */
-goog.net.NetworkTester.prototype.getUri = function() {
- return this.uri_;
-};
-
-
-/**
- * Sets the uri to use for the test.
- * @param {goog.Uri} uri The uri for the test.
- */
-goog.net.NetworkTester.prototype.setUri = function(uri) {
- this.uri_ = uri;
-};
-
-
-/**
- * Returns whether the tester is currently running.
- * @return {boolean} True if it's running, false if it's not running.
- */
-goog.net.NetworkTester.prototype.isRunning = function() {
- return this.running_;
-};
-
-
-/**
- * Starts the process of testing the network.
- */
-goog.net.NetworkTester.prototype.start = function() {
- if (this.running_) {
- throw Error('NetworkTester.start called when already running');
- }
- this.running_ = true;
-
- this.logger_.info('Starting');
- this.attempt_ = 0;
- this.startNextAttempt_();
-};
-
-
-/**
- * Stops the testing of the network. This is a noop if not running.
- */
-goog.net.NetworkTester.prototype.stop = function() {
- this.cleanupCallbacks_();
- this.running_ = false;
-};
-
-
-/**
- * Starts the next attempt to load an image.
- * @private
- */
-goog.net.NetworkTester.prototype.startNextAttempt_ = function() {
- this.attempt_++;
-
- if (goog.net.NetworkTester.getNavigatorOffline_()) {
- this.logger_.info('Browser is set to work offline.');
- // Call in a timeout to make async like the rest.
- goog.Timer.callOnce(goog.bind(this.onResult, this, false), 0);
- } else {
- this.logger_.info('Loading image (attempt ' + this.attempt_ +
- ') at ' + this.uri_);
- this.image_ = new Image();
- this.image_.onload = goog.bind(this.onImageLoad_, this);
- this.image_.onerror = goog.bind(this.onImageError_, this);
- this.image_.onabort = goog.bind(this.onImageAbort_, this);
-
- this.timeoutTimer_ = goog.Timer.callOnce(this.onImageTimeout_,
- this.timeoutMs_, this);
- this.image_.src = String(this.uri_);
- }
-};
-
-
-/**
- * @return {boolean} Whether navigator.onLine returns false.
- * @private
- */
-goog.net.NetworkTester.getNavigatorOffline_ = function() {
- return 'onLine' in navigator && !navigator.onLine;
-};
-
-
-/**
- * Callback for the image successfully loading.
- * @private
- */
-goog.net.NetworkTester.prototype.onImageLoad_ = function() {
- this.logger_.info('Image loaded');
- this.onResult(true);
-};
-
-
-/**
- * Callback for the image failing to load.
- * @private
- */
-goog.net.NetworkTester.prototype.onImageError_ = function() {
- this.logger_.info('Image load error');
- this.onResult(false);
-};
-
-
-/**
- * Callback for the image load being aborted.
- * @private
- */
-goog.net.NetworkTester.prototype.onImageAbort_ = function() {
- this.logger_.info('Image load aborted');
- this.onResult(false);
-};
-
-
-/**
- * Callback for the image load timing out.
- * @private
- */
-goog.net.NetworkTester.prototype.onImageTimeout_ = function() {
- this.logger_.info('Image load timed out');
- this.onResult(false);
-};
-
-
-/**
- * Handles a successful or failed result.
- * @param {boolean} succeeded Whether the image load succeeded.
- */
-goog.net.NetworkTester.prototype.onResult = function(succeeded) {
- this.cleanupCallbacks_();
-
- if (succeeded) {
- this.running_ = false;
- this.callback_.call(this.handler_, true);
- } else {
- if (this.attempt_ <= this.retries_) {
- if (this.pauseBetweenRetriesMs_) {
- this.pauseTimer_ = goog.Timer.callOnce(this.onPauseFinished_,
- this.pauseBetweenRetriesMs_, this);
- } else {
- this.startNextAttempt_();
- }
- } else {
- this.running_ = false;
- this.callback_.call(this.handler_, false);
- }
- }
-};
-
-
-/**
- * Callback for the pause between retry timer.
- * @private
- */
-goog.net.NetworkTester.prototype.onPauseFinished_ = function() {
- this.pauseTimer_ = null;
- this.startNextAttempt_();
-};
-
-
-/**
- * Cleans up the handlers and timer associated with the image.
- * @private
- */
-goog.net.NetworkTester.prototype.cleanupCallbacks_ = function() {
- // clear handlers to avoid memory leaks
- // NOTE(user): Nullified individually to avoid compiler warnings
- // (BUG 658126)
- if (this.image_) {
- this.image_.onload = null;
- this.image_.onerror = null;
- this.image_.onabort = null;
- this.image_ = null;
- }
- if (this.timeoutTimer_) {
- goog.Timer.clear(this.timeoutTimer_);
- this.timeoutTimer_ = null;
- }
- if (this.pauseTimer_) {
- goog.Timer.clear(this.pauseTimer_);
- this.pauseTimer_ = null;
- }
-};