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

Unified Diff: chrome/browser/resources/file_manager/js/util.js

Issue 12304013: Introduce Image loader extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Simplified. Created 7 years, 10 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: chrome/browser/resources/file_manager/js/util.js
diff --git a/chrome/browser/resources/file_manager/js/util.js b/chrome/browser/resources/file_manager/js/util.js
index 4f502c09b323fa22dfb9122cdbc1d6b39d5373c0..f4da95361d737344bdeaddfbbef00b6413e8e583 100644
--- a/chrome/browser/resources/file_manager/js/util.js
+++ b/chrome/browser/resources/file_manager/js/util.js
@@ -1159,76 +1159,32 @@ util.AppCache.cleanup_ = function(map) {
};
/**
- * RemoteImageLoader loads an image from a remote url.
+ * Load an image.
*
- * Fetches a blob via XHR, converts it to a data: url and assigns to img.src.
- * @constructor
- */
-util.RemoteImageLoader = function() {};
-
-/**
* @param {Image} image Image element.
- * @param {string} url Remote url to load into the image.
- */
-util.RemoteImageLoader.prototype.load = function(image, url) {
- this.onSuccess_ = function(dataURL) { image.src = dataURL };
- this.onError_ = function() { image.onerror() };
-
- var xhr = new XMLHttpRequest();
- xhr.responseType = 'blob';
- xhr.onload = function() {
- if (xhr.status == 200) {
- var reader = new FileReader;
- reader.onload = function(e) {
- this.onSuccess_(e.target.result);
- }.bind(this);
- reader.onerror = this.onError_;
- reader.readAsDataURL(xhr.response);
- } else {
- this.onError_();
- }
- }.bind(this);
- xhr.onerror = this.onError_;
-
- try {
- xhr.open('GET', url, true);
- xhr.send();
- } catch (e) {
- console.log(e);
- this.onError_();
- }
-};
-
-/**
- * Cancels the loading.
+ * @param {string} url Source url.
+ * @param {Object=} opt_options Hash array of options, eg. width, height,
+ * maxWidth, maxHeight, scale, cache.
+ * @param {function()=} opt_isValid Function returning false iff the task
+ * is not valid and should be aborted.
+ * @return {?number} Task identifier or null if fetched immediately from
+ * cache.
*/
-util.RemoteImageLoader.prototype.cancel = function() {
- // We cannot really cancel the XHR.send and FileReader.readAsDataURL,
- // silencing the callbacks instead.
- this.onSuccess_ = this.onError_ = function() {};
+util.loadImage = function(image, url, opt_options, opt_isValid) {
+ return ImageLoader.Client.loadToImage(url,
+ image,
+ opt_options || {},
+ function() { },
+ function() { image.onerror(); },
+ opt_isValid);
};
/**
- * Load an image.
- *
- * In packaged apps img.src is not allowed to point to http(s)://.
- * For such urls util.RemoteImageLoader is used.
- *
- * @param {Image} image Image element.
- * @param {string} url Source url.
- * @return {util.RemoteImageLoader?} RemoteImageLoader object reference, use it
- * to cancel the loading.
+ * Cancels loading an image.
+ * @param {number} taskId Task identifier returned by util.loadImage().
*/
-util.loadImage = function(image, url) {
- if (util.platform.v2() && url.match(/^http(s):/)) {
- var imageLoader = new util.RemoteImageLoader();
- imageLoader.load(image, url);
- return imageLoader;
- }
-
- // OK to load directly.
- image.src = url;
- return null;
+util.cancelLoadImage = function(taskId) {
+ ImageLoader.Client.getInstance().cancel(taskId);
};
/**
« no previous file with comments | « chrome/browser/resources/file_manager/js/photo/ribbon.js ('k') | chrome/browser/resources/file_manager/main.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698