aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/fs/fs.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/fs/fs.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/fs/fs.js248
1 files changed, 0 insertions, 248 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/fs/fs.js b/contexts/data/lib/closure-library/closure/goog/fs/fs.js
deleted file mode 100644
index ceb324b..0000000
--- a/contexts/data/lib/closure-library/closure/goog/fs/fs.js
+++ /dev/null
@@ -1,248 +0,0 @@
-// Copyright 2011 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 Wrappers for the HTML5 File API. These wrappers closely mirror
- * the underlying APIs, but use Closure-style events and Deferred return values.
- * Their existence also makes it possible to mock the FileSystem API for testing
- * in browsers that don't support it natively.
- *
- * When adding public functions to anything under this namespace, be sure to add
- * its mock counterpart to goog.testing.fs.
- *
- */
-
-goog.provide('goog.fs');
-
-goog.require('goog.async.Deferred');
-goog.require('goog.events');
-goog.require('goog.fs.Error');
-goog.require('goog.fs.FileReader');
-goog.require('goog.fs.FileSystem');
-goog.require('goog.userAgent');
-
-
-/**
- * Get a wrapped FileSystem object.
- *
- * @param {goog.fs.FileSystemType_} type The type of the filesystem to get.
- * @param {number} size The size requested for the filesystem, in bytes.
- * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileSystem}. If an
- * error occurs, the errback is called with a {@link goog.fs.Error}.
- * @private
- */
-goog.fs.get_ = function(type, size) {
- var requestFileSystem = goog.global.requestFileSystem ||
- goog.global.webkitRequestFileSystem;
-
- if (!goog.isFunction(requestFileSystem)) {
- return goog.async.Deferred.fail(new Error('File API unsupported'));
- }
-
- var d = new goog.async.Deferred();
- requestFileSystem(type, size, function(fs) {
- d.callback(new goog.fs.FileSystem(fs));
- }, function(err) {
- d.errback(new goog.fs.Error(err.code, 'requesting filesystem'));
- });
- return d;
-};
-
-
-/**
- * The two types of filesystem.
- *
- * @enum {number}
- * @private
- */
-goog.fs.FileSystemType_ = {
- /**
- * A temporary filesystem may be deleted by the user agent at its discretion.
- */
- TEMPORARY: 0,
- /**
- * A persistent filesystem will never be deleted without the user's or
- * application's authorization.
- */
- PERSISTENT: 1
-};
-
-
-/**
- * Returns a temporary FileSystem object. A temporary filesystem may be deleted
- * by the user agent at its discretion.
- *
- * @param {number} size The size requested for the filesystem, in bytes.
- * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileSystem}. If an
- * error occurs, the errback is called with a {@link goog.fs.Error}.
- */
-goog.fs.getTemporary = function(size) {
- return goog.fs.get_(goog.fs.FileSystemType_.TEMPORARY, size);
-};
-
-
-/**
- * Returns a persistent FileSystem object. A persistent filesystem will never be
- * deleted without the user's or application's authorization.
- *
- * @param {number} size The size requested for the filesystem, in bytes.
- * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileSystem}. If an
- * error occurs, the errback is called with a {@link goog.fs.Error}.
- */
-goog.fs.getPersistent = function(size) {
- return goog.fs.get_(goog.fs.FileSystemType_.PERSISTENT, size);
-};
-
-
-/**
- * Creates a blob URL for a blob object.
- *
- * @param {!Blob} blob The object for which to create the URL.
- * @return {string} The URL for the object.
- */
-goog.fs.createObjectUrl = function(blob) {
- return goog.fs.getUrlObject_().createObjectURL(blob);
-};
-
-
-/**
- * Revokes a URL created by {@link goog.fs.createObjectUrl}.
- *
- * @param {string} url The URL to revoke.
- */
-goog.fs.revokeObjectUrl = function(url) {
- goog.fs.getUrlObject_().revokeObjectURL(url);
-};
-
-
-/**
- * @typedef {!{createObjectURL: (function(!Blob): string),
- * revokeObjectURL: function(string): void}}
- */
-goog.fs.UrlObject_;
-
-
-/**
- * Get the object that has the createObjectURL and revokeObjectURL functions for
- * this browser.
- *
- * @return {goog.fs.UrlObject_} The object for this browser.
- * @private
- */
-goog.fs.getUrlObject_ = function() {
- // This is what the spec says to do
- // http://dev.w3.org/2006/webapi/FileAPI/#dfn-createObjectURL
- if (goog.isDef(goog.global.URL) &&
- goog.isDef(goog.global.URL.createObjectURL)) {
- return /** @type {goog.fs.UrlObject_} */ (goog.global.URL);
- // This is what Chrome does (as of 10.0.648.6 dev)
- } else if (goog.isDef(goog.global.webkitURL) &&
- goog.isDef(goog.global.webkitURL.createObjectURL)) {
- return /** @type {goog.fs.UrlObject_} */ (goog.global.webkitURL);
- // This is what the spec used to say to do
- } else if (goog.isDef(goog.global.createObjectURL)) {
- return /** @type {goog.fs.UrlObject_} */ (goog.global);
- } else {
- throw Error('This browser doesn\'t seem to support blob URLs');
- }
-};
-
-
-/**
- * Concatenates one or more values together and converts them to a Blob.
- *
- * @param {...(string|!Blob|!ArrayBuffer)} var_args The values that will make up
- * the resulting blob.
- * @return {!Blob} The blob.
- */
-goog.fs.getBlob = function(var_args) {
- var BlobBuilder = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder;
- var bb = new BlobBuilder();
- for (var i = 0; i < arguments.length; i++) {
- bb.append(arguments[i]);
- }
- return bb.getBlob();
-};
-
-
-/**
- * Converts a Blob or a File into a string. This should only be used when the
- * blob is known to be small.
- *
- * @param {!Blob} blob The blob to convert.
- * @param {string=} opt_encoding The name of the encoding to use.
- * @return {!goog.async.Deferred} The deferred string. If an error occurrs, the
- * errback is called with a {@link goog.fs.Error}.
- * @deprecated Use {@link goog.fs.FileReader.readAsText} instead.
- */
-goog.fs.blobToString = function(blob, opt_encoding) {
- return goog.fs.FileReader.readAsText(blob, opt_encoding);
-};
-
-
-/**
- * Slices the blob. The returned blob contains data from the start byte
- * (inclusive) till the end byte (exclusive). Negative indices can be used
- * to count bytes from the end of the blob (-1 == blob.size - 1). Indices
- * are always clamped to blob range. If end is omitted, all the data till
- * the end of the blob is taken.
- *
- * @param {!Blob} blob The blob to be sliced.
- * @param {number} start Index of the starting byte.
- * @param {number=} opt_end Index of the ending byte.
- * @return {Blob} The blob slice or null if not supported.
- */
-goog.fs.sliceBlob = function(blob, start, opt_end) {
- if (!goog.isDef(opt_end)) {
- opt_end = blob.size;
- }
- if (blob.webkitSlice) {
- // Natively accepts negative indices, clamping to the blob range and
- // range end is optional. See http://trac.webkit.org/changeset/83873
- return blob.webkitSlice(start, opt_end);
- } else if (blob.mozSlice) {
- // Natively accepts negative indices, clamping to the blob range and
- // range end is optional. See https://developer.mozilla.org/en/DOM/Blob
- // and http://hg.mozilla.org/mozilla-central/rev/dae833f4d934
- return blob.mozSlice(start, opt_end);
- } else if (blob.slice) {
- // Old versions of Firefox and Chrome use the original specification.
- // Negative indices are not accepted, only range end is clamped and
- // range end specification is obligatory.
- // See http://www.w3.org/TR/2009/WD-FileAPI-20091117/
- if ((goog.userAgent.GECKO && !goog.userAgent.isVersion('13.0')) ||
- (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('537.1'))) {
- if (start < 0) {
- start += blob.size;
- }
- if (start < 0) {
- start = 0;
- }
- if (opt_end < 0) {
- opt_end += blob.size;
- }
- if (opt_end < start) {
- opt_end = start;
- }
- return blob.slice(start, opt_end - start);
- }
- // IE and the latest versions of Firefox and Chrome use the new
- // specification. Natively accepts negative indices, clamping to the blob
- // range and range end is optional.
- // See http://dev.w3.org/2006/webapi/FileAPI/
- return blob.slice(start, opt_end);
- }
- return null;
-};
-