Chromium Code Reviews| Index: chrome/browser/resources/file_manager/js/image_editor/image_util.js |
| diff --git a/chrome/browser/resources/file_manager/js/image_editor/image_util.js b/chrome/browser/resources/file_manager/js/image_editor/image_util.js |
| index 33c527d53f028defe6abe241022fbf5973f64a4e..74aa9741727c2277060e7382d6052c10e2cdf5af 100644 |
| --- a/chrome/browser/resources/file_manager/js/image_editor/image_util.js |
| +++ b/chrome/browser/resources/file_manager/js/image_editor/image_util.js |
| @@ -482,21 +482,30 @@ ImageUtil.ImageLoader.prototype.load = function( |
| // The clients of this class sometimes request the same url repeatedly. |
| // The onload fires only if the src is different from the previous value. |
| - // To work around that we reset the src temporarily to an 1x1 pixel. |
| - // Load an empty 1x1 pixel image first. |
| + // To work around that we reset the src temporarily to an 1x1 pixel to force |
| + // garbage collecting, and then resetting src to an empty value. |
| var resetImage = function(callback) { |
| - this.image_.onload = callback; |
| - this.image_.onerror = onError.bind(this, 'IMAGE_ERROR'); |
| - this.image_.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAA' + |
| + var clearSrc = function() { |
| + this.image_.onload = callback; |
| + this.image_.onerror = callback; |
| + this.image_.src = ''; |
| + }.bind(this); |
| + var emptyImage = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAA' + |
| 'AAABAAEAAAICTAEAOw=='; |
| + if (this.image_.src != emptyImage) { |
| + // Load an empty image, then clear src. |
| + this.image_.onload = clearSrc; |
| + this.image_.onerror = onError.bind(this, 'IMAGE_ERROR'); |
| + this.image_.src = emptyImage; |
| + } else { |
| + // Empty image already loaded, so clear src immediately. |
| + clearSrc(); |
| + } |
| }.bind(this); |
| - // Loads the image. If already loaded, then forces reloads. |
| + // Loads the image. If already loaded, then forces a reload. |
| var startLoad = function() { |
|
yoshiki
2013/06/11 06:45:39
nit:
var startLoad = resetImage.bind(null, loadIma
mtomasz
2013/06/11 08:14:13
Done.
|
| - if (this.image_.src == url) |
| - resetImage(loadImage); |
| - else |
| - loadImage(); |
| + resetImage(loadImage); |
| }.bind(this); |
| if (opt_delay) { |