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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java

Issue 1969233002: [OfflinePages] Make website settings popup rely on asynchronous API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
index e15e901b282ecccb34cdc1daedcf31757850d780..b623a95283481b56b58150c89ffe3ec0165ea444 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java
@@ -98,6 +98,16 @@ public class OfflinePageBridge {
}
/**
+ * Callback that delivers information about one offline page entry.
+ *
+ * The returned item will be null if no items are found.
+ */
+ public interface SingleOfflinePageItemCallback {
+ @CalledByNative("SingleOfflinePageItemCallback")
+ void onResult(OfflinePageItem item);
+ }
+
+ /**
* Callback used when determining whether we have any offline pages.
*/
public interface HasPagesCallback {
@@ -346,34 +356,31 @@ public class OfflinePageBridge {
@VisibleForTesting
public void getPagesByOfflineUrl(
final String offlineUrl, final MultipleOfflinePageItemCallback callback) {
dewittj 2016/05/16 21:07:46 Let's just remove this method, since we have the c
chili 2016/05/16 23:06:41 Done.
- runWhenLoaded(new Runnable() {
- @Override
- public void run() {
- List<OfflinePageItem> result = new ArrayList<>();
-
- // TODO(http://crbug.com/589526) This native API returns only one item, but in the
- // future will return a list.
- OfflinePageItem item =
- nativeGetPageByOfflineUrl(mNativeOfflinePageBridge, offlineUrl);
- if (item != null) {
- result.add(item);
- }
-
- callback.onResult(result);
- }
- });
+ nativeGetPageByOfflineUrl(
+ mNativeOfflinePageBridge,
+ offlineUrl,
+ new SingleOfflinePageItemCallback() {
+ @Override
+ public void onResult(OfflinePageItem item) {
+ List<OfflinePageItem> result = new ArrayList<>();
+ if (item != null) {
+ result.add(item);
+ }
+ callback.onResult(result);
+ }
+ });
}
/**
- * Gets an offline page associated with a provided offline URL.
- * This method is deprecated. Use OfflinePageBridge#getPagesByOnlineUrl.
+ * Get the offline page associated with the provided offline URL.
*
* @param string URL pointing to the offline copy of the web page.
- * @return An {@link OfflinePageItem} matching the offline URL or
- * <code>null</code> if not found.
+ * @param SingleOfflinePageItemCallback callback to pass back the
+ * matching {@link OfflinePageItem}, if any.
dewittj 2016/05/16 21:07:46 nit: please mention that null is possible in the c
chili 2016/05/16 23:06:41 Assuming you mean to add @Nullable reference in ca
dewittj 2016/05/17 17:36:02 I was thinking in this comment. But you did that
*/
- public OfflinePageItem getPageByOfflineUrl(String offlineUrl) {
- return nativeGetPageByOfflineUrl(mNativeOfflinePageBridge, offlineUrl);
+ public void getPageByOfflineUrl(
+ String offlineUrl, SingleOfflinePageItemCallback callback) {
+ nativeGetPageByOfflineUrl(mNativeOfflinePageBridge, offlineUrl, callback);
}
/**
@@ -628,8 +635,10 @@ public class OfflinePageBridge {
native OfflinePageItem nativeGetPageByOfflineId(long nativeOfflinePageBridge, long offlineId);
private native OfflinePageItem nativeGetBestPageForOnlineURL(
long nativeOfflinePageBridge, String onlineURL);
- private native OfflinePageItem nativeGetPageByOfflineUrl(
- long nativeOfflinePageBridge, String offlineUrl);
+ private native void nativeGetPageByOfflineUrl(
+ long nativeOfflinePageBridge,
+ String offlineUrl,
+ SingleOfflinePageItemCallback callback);
private native void nativeSavePage(long nativeOfflinePageBridge, SavePageCallback callback,
WebContents webContents, String clientNamespace, String clientId);
private native void nativeSavePageLater(

Powered by Google App Engine
This is Rietveld 408576698