| Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
|
| similarity index 60%
|
| rename from chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java
|
| rename to chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
|
| index f6f58954ed2c0f81d5d92e9cfe67432854723e25..12f827d4362cc7985c028c8509ea0b02f3cbe950 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
|
| @@ -18,50 +18,56 @@ import java.util.HashMap;
|
| * Downloads the Web Manifest if the web site still uses the {@link manifestUrl} passed to the
|
| * constructor.
|
| */
|
| -public class ManifestUpgradeDetectorFetcher extends EmptyTabObserver {
|
| +public class WebApkUpdateDataFetcher extends EmptyTabObserver {
|
| + /** Observes fetching of the Web Manifest. */
|
| + public interface Observer {
|
| + /**
|
| + * Called when the Web Manifest for the initial URL load has been fetched (successfully or
|
| + * unsuccessfully).
|
| + * TODO(pkotwicz): Add calls to {@link #onFinishedFetchingWebManifestForInitialUrl()}.
|
| + * @param fetchedInfo The fetched Web Manifest data. Null if the initial URL does not point
|
| + * to a Web Manifest.
|
| + * @param bestIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
|
| + * suited for use as the launcher icon on this device.
|
| + */
|
| + void onFinishedFetchingWebManifestForInitialUrl(WebApkInfo fetchedInfo, String bestIconUrl);
|
|
|
| - /**
|
| - * Called once the Web Manifest has been downloaded.
|
| - */
|
| - public interface Callback {
|
| /**
|
| - * @param fetchedInfo The fetched Web Manifest data.
|
| - * @param bestIconUrl Icon URL in {@link data} which is best suited for use as the launcher
|
| - * icon on this device.
|
| + * Called when the Web Manifest has been successfully fetched (including on the initial URL
|
| + * load).
|
| + * @param fetchedInfo The fetched Web Manifest data.
|
| + * @param bestIconUrl The icon URL in {@link fetchedInfo#iconUrlToMurmur2HashMap()} best
|
| + * suited for use as the launcher icon on this device.
|
| */
|
| void onGotManifestData(WebApkInfo fetchedInfo, String bestIconUrl);
|
| }
|
|
|
| /**
|
| - * Pointer to the native side ManifestUpgradeDetectorFetcher. The Java side owns the native side
|
| - * ManifestUpgradeDetectorFetcher.
|
| + * Pointer to the native side WebApkUpdateDataFetcher. The Java side owns the native side
|
| + * WebApkUpdateDataFetcher.
|
| */
|
| private long mNativePointer;
|
|
|
| /** The tab that is being observed. */
|
| private Tab mTab;
|
|
|
| - /**
|
| - * Web Manifest data at time that the WebAPK was generated.
|
| - */
|
| + /** Web Manifest data at the time that the WebAPK was generated. */
|
| private WebApkInfo mOldInfo;
|
|
|
| - private Callback mCallback;
|
| + private Observer mObserver;
|
|
|
| - /**
|
| - * Starts fetching the web manifest resources.
|
| - * @param callback Called once the Web Manifest has been downloaded.
|
| - */
|
| - public boolean start(Tab tab, WebApkInfo oldInfo, Callback callback) {
|
| + /** Starts observing page loads in order to fetch the Web Manifest after each page load. */
|
| + public boolean start(Tab tab, WebApkInfo oldInfo, Observer observer) {
|
| if (tab.getWebContents() == null || TextUtils.isEmpty(oldInfo.manifestUrl())) {
|
| return false;
|
| }
|
|
|
| mTab = tab;
|
| mOldInfo = oldInfo;
|
| - mNativePointer = nativeInitialize(mOldInfo.scopeUri().toString(), mOldInfo.manifestUrl());
|
| - mCallback = callback;
|
| + mObserver = observer;
|
| +
|
| mTab.addObserver(this);
|
| + mNativePointer = nativeInitialize(mOldInfo.scopeUri().toString(), mOldInfo.manifestUrl());
|
| nativeStart(mNativePointer, mTab.getWebContents());
|
| return true;
|
| }
|
| @@ -87,7 +93,7 @@ public class ManifestUpgradeDetectorFetcher extends EmptyTabObserver {
|
| }
|
|
|
| /**
|
| - * Updates which WebContents the native ManifestUpgradeDetectorFetcher is monitoring.
|
| + * Updates which WebContents the native WebApkUpdateDataFetcher is monitoring.
|
| */
|
| private void updatePointers() {
|
| nativeReplaceWebContents(mNativePointer, mTab.getWebContents());
|
| @@ -112,13 +118,12 @@ public class ManifestUpgradeDetectorFetcher extends EmptyTabObserver {
|
| mOldInfo.source(), themeColor, backgroundColor, mOldInfo.webApkPackageName(),
|
| mOldInfo.shellApkVersion(), mOldInfo.manifestUrl(), startUrl,
|
| iconUrlToMurmur2HashMap);
|
| - mCallback.onGotManifestData(info, bestIconUrl);
|
| + mObserver.onGotManifestData(info, bestIconUrl);
|
| }
|
|
|
| private native long nativeInitialize(String scope, String webManifestUrl);
|
| private native void nativeReplaceWebContents(
|
| - long nativeManifestUpgradeDetectorFetcher, WebContents webContents);
|
| - private native void nativeDestroy(long nativeManifestUpgradeDetectorFetcher);
|
| - private native void nativeStart(
|
| - long nativeManifestUpgradeDetectorFetcher, WebContents webContents);
|
| + long nativeWebApkUpdateDataFetcher, WebContents webContents);
|
| + private native void nativeDestroy(long nativeWebApkUpdateDataFetcher);
|
| + private native void nativeStart(long nativeWebApkUpdateDataFetcher, WebContents webContents);
|
| }
|
|
|