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

Unified Diff: chrome/browser/resources/file_manager/js/image_editor/image_view.js

Issue 9664045: [File Manager] Use content url for playing media files from a gdata directory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 8 years, 9 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/image_editor/image_view.js
diff --git a/chrome/browser/resources/file_manager/js/image_editor/image_view.js b/chrome/browser/resources/file_manager/js/image_editor/image_view.js
index 83ddfdccc99e9df206bab8b832c0fedb6f85fcc0..e85e7050db28e7a13bb1bee87e0e65bdec37f8fc 100644
--- a/chrome/browser/resources/file_manager/js/image_editor/image_view.js
+++ b/chrome/browser/resources/file_manager/js/image_editor/image_view.js
@@ -180,21 +180,19 @@ ImageView.prototype.load = function(
if (metadata.thumbnailURL) {
video.setAttribute('poster', metadata.thumbnailURL);
}
- if (!metadata.thumbnailOnly) {
- video.src = source;
- video.load();
- }
- displayMainImage(ImageView.LOAD_TYPE_TOTAL, video);
+ video.src = metadata.contentURL || source;
+ video.load();
+ displayMainImage(ImageView.LOAD_TYPE_TOTAL, slide, video);
return;
}
var readyContent = this.getReadyContent(id, source);
if (readyContent) {
- displayMainImage(ImageView.LOAD_TYPE_CACHED_FULL, readyContent);
+ displayMainImage(ImageView.LOAD_TYPE_CACHED_FULL, slide, readyContent);
} else {
var cachedScreen = this.screenCache_.getItem(id);
if (cachedScreen) {
// We have a cached screen-scale canvas, use it instead of a thumbnail.
- displayThumbnail(ImageView.LOAD_TYPE_CACHED_SCREEN, cachedScreen);
+ displayThumbnail(ImageView.LOAD_TYPE_CACHED_SCREEN, slide, cachedScreen);
// As far as the user can tell the image is loaded. We still need to load
// the full res image to make editing possible, but we can report now.
ImageUtil.metrics.recordInterval(ImageUtil.getMetricName('DisplayTime'));
@@ -202,48 +200,51 @@ ImageView.prototype.load = function(
this.imageLoader_.load(
metadata.thumbnailURL,
metadata.thumbnailTransform,
- displayThumbnail.bind(null, ImageView.LOAD_TYPE_FILE));
+ displayThumbnail.bind(null, ImageView.LOAD_TYPE_FILE, slide));
} else {
- loadMainImage(ImageView.LOAD_TYPE_FILE, 0);
+ loadMainImage(ImageView.LOAD_TYPE_FILE, slide, source, 0);
}
}
- function displayThumbnail(loadType, canvas) {
+ function displayThumbnail(loadType, slide, canvas) {
// The thumbnail may have different aspect ratio than the main image.
// Force the main image proportions to avoid flicker.
var time = Date.now();
var mainImageLoadDelay = ImageView.ANIMATION_WAIT_INTERVAL;
+ var mainImageSlide = slide;
// Do not do slide-in animation when scrolling very fast.
if (self.lastLoadTime_ &&
(time - self.lastLoadTime_) < ImageView.FAST_SCROLL_INTERVAL) {
- slide = 0;
+ mainImageSlide = 0;
}
self.lastLoadTime_ = time;
- if (metadata.thumbnailOnly) {
+ var contentURL;
+ if (metadata.contentURL) {
+ contentURL = metadata.contentURL;
// We do not know the main image size, but chances are that it is large
// enough. Show the thumbnail at the maximum possible scale.
var bounds = self.viewport_.getScreenBounds();
var scale = Math.min (bounds.width / canvas.width,
bounds.height / canvas.height);
self.replace(canvas, slide, canvas.width * scale, canvas.height * scale);
- if (opt_callback) opt_callback(ImageView.LOAD_TYPE_TOTAL);
- return;
+ } else {
+ contentURL = source;
+ self.replace(canvas, slide, metadata.width, metadata.height);
}
-
- self.replace(canvas, slide, metadata.width, metadata.height);
- if (!slide) mainImageLoadDelay = 0;
- slide = 0;
- loadMainImage(loadType, mainImageLoadDelay);
+ if (!mainImageSlide) mainImageLoadDelay = 0;
+ mainImageSlide = 0;
+ loadMainImage(loadType, mainImageSlide, contentURL, mainImageLoadDelay);
}
- function loadMainImage(loadType, delay) {
- if (self.prefetchLoader_.isLoading(source)) {
+ function loadMainImage(loadType, slide, contentURL, delay) {
+ if (self.prefetchLoader_.isLoading(contentURL)) {
// The image we need is already being prefetched. Initiating another load
// would be a waste. Hijack the load instead by overriding the callback.
- self.prefetchLoader_.setCallback(displayMainImage.bind(null, loadType));
+ self.prefetchLoader_.setCallback(
+ displayMainImage.bind(null, loadType, slide));
// Swap the loaders so that the self.isLoading works correctly.
var temp = self.prefetchLoader_;
@@ -254,13 +255,13 @@ ImageView.prototype.load = function(
self.prefetchLoader_.cancel(); // The prefetch was doing something useless.
self.imageLoader_.load(
- source,
+ contentURL,
metadata.imageTransform,
- displayMainImage.bind(null, loadType),
+ displayMainImage.bind(null, loadType, slide),
delay);
}
- function displayMainImage(loadType, content) {
+ function displayMainImage(loadType, slide, content) {
self.replace(content, slide);
ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('LoadMode'),
loadType, ImageView.LOAD_TYPE_TOTAL);

Powered by Google App Engine
This is Rietveld 408576698