Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java |
index dfbfcaa5765bc690abb7fd03e50d3fc125246737..46f5d090c24ccccb511383f339521b1e4d4b79d8 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java |
@@ -137,8 +137,16 @@ public class OfflinePageDownloadBridge implements DownloadServiceDelegate, Offli |
@Override |
public void resumeDownload(DownloadItem item, boolean hasUserGesture) { |
+ // If the resumption was an user action then we have to resume the specific download item. |
+ // Otherwise it can only be called when Chrome starts and we would like to resume all |
+ // pending requests. |
+ // TODO(romax): it's based on the assumption that if this method is called with |
+ // |hasUserGesture| == false then we're trying to resume all pending requests. This |
+ // assumption may change. |
if (hasUserGesture) { |
resumeDownload(item.getId()); |
+ } else { |
+ nativeResumePendingRequestImmediately(mNativeOfflinePageDownloadBridge); |
} |
} |
@@ -296,4 +304,5 @@ public class OfflinePageDownloadBridge implements DownloadServiceDelegate, Offli |
native void nativeDeleteItemByGuid(long nativeOfflinePageDownloadBridge, String guid); |
native long nativeGetOfflineIdByGuid(long nativeOfflinePageDownloadBridge, String guid); |
native void nativeStartDownload(long nativeOfflinePageDownloadBridge, Tab tab); |
+ native void nativeResumePendingRequestImmediately(long nativeOfflinePageDownloadBridge); |
} |