| Index: appengine_apps/trooper_o_matic/lib/net.html
|
| diff --git a/appengine_apps/trooper_o_matic/lib/net.html b/appengine_apps/trooper_o_matic/lib/net.html
|
| deleted file mode 100644
|
| index be23b456bbdd7dc151ee0a6ae6c033a9196c03cf..0000000000000000000000000000000000000000
|
| --- a/appengine_apps/trooper_o_matic/lib/net.html
|
| +++ /dev/null
|
| @@ -1,130 +0,0 @@
|
| -<!--
|
| -Copyright (C) 2011 Google Inc. All rights reserved.
|
| -
|
| -Redistribution and use in source and binary forms, with or without
|
| -modification, are permitted provided that the following conditions
|
| -are met:
|
| -1. Redistributions of source code must retain the above copyright
|
| - notice, this list of conditions and the following disclaimer.
|
| -2. Redistributions in binary form must reproduce the above copyright
|
| - notice, this list of conditions and the following disclaimer in the
|
| - documentation and/or other materials provided with the distribution.
|
| -
|
| -THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
| -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
| -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
| -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
| -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
| -THE POSSIBILITY OF SUCH DAMAGE.
|
| --->
|
| -
|
| -<script>
|
| -// TODO: Move sheriff-o-matic to this repository and merge the net
|
| -// library.
|
| -
|
| -var net = net || {};
|
| -
|
| -(function () {
|
| -var cache = {};
|
| -var cacheURLs = [];
|
| -var cacheLimit = 1000;
|
| -
|
| -function updateCache(url, text)
|
| -{
|
| - var alreadyExists = url in cache;
|
| - cache[url] = text;
|
| - if (alreadyExists)
|
| - return;
|
| - cacheURLs.push(url);
|
| - if (cacheURLs.length > cacheLimit)
|
| - delete cache[cacheURLs.shift()];
|
| -}
|
| -
|
| -function clearCache(url)
|
| -{
|
| - cacheURLs.remove(cacheURLs.indexOf(url))
|
| - delete cache[url];
|
| -}
|
| -
|
| -net.json = function(options)
|
| -{
|
| - return net.ajax(options).then(JSON.parse);
|
| -};
|
| -
|
| -net.ajax = function(options)
|
| -{
|
| - return new Promise(function(resolve, reject) {
|
| - if (options.url in cache) {
|
| - if (options.cache) {
|
| - resolve(cache[options.url]);
|
| - return;
|
| - } else {
|
| - clearCache(options.url);
|
| - }
|
| - }
|
| - var xhr = new XMLHttpRequest();
|
| - var method = options.type || 'GET';
|
| - var async = true;
|
| - xhr.open(method, options.url, async);
|
| - xhr.onload = function() {
|
| - if (xhr.status == 200) {
|
| - if (options.cache)
|
| - updateCache(options.url, xhr.responseText);
|
| - resolve(xhr.responseText);
|
| - } else if (xhr.status != 200) {
|
| - reject(Error(xhr.statusText));
|
| - }
|
| - };
|
| - xhr.onerror = function(error) {
|
| - reject(error);
|
| - };
|
| - var data = options.data || null;
|
| - if (data)
|
| - xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
|
| - xhr.send(data);
|
| - });
|
| -};
|
| -
|
| -net.probe = function(url)
|
| -{
|
| - return net.ajax({
|
| - url: url,
|
| - type: 'HEAD',
|
| - });
|
| -};
|
| -
|
| -net._parseJSONP = function(jsonp)
|
| -{
|
| - if (!jsonp)
|
| - return {};
|
| -
|
| - if (!jsonp.match(/^[^{[]*\(/))
|
| - return JSON.parse(jsonp);
|
| -
|
| - var startIndex = jsonp.indexOf('(') + 1;
|
| - var endIndex = jsonp.lastIndexOf(')');
|
| - if (startIndex == 0 || endIndex == -1)
|
| - return {};
|
| - return JSON.parse(jsonp.substr(startIndex, endIndex - startIndex));
|
| -};
|
| -
|
| -// We use XMLHttpRequest and CORS to fetch JSONP rather than using script tags.
|
| -// That's better for security and performance, but we need the server to cooperate
|
| -// by setting CORS headers.
|
| -net.jsonp = function(options)
|
| -{
|
| - return net.ajax(options).then(function(jsonp) {
|
| - return net._parseJSONP(jsonp);
|
| - }).catch(function(error) {
|
| - return {};
|
| - });
|
| -};
|
| -
|
| -})();
|
| -
|
| -</script>
|
|
|