Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java |
index 2802dd3d1d4e1ea1e78bfd1c8f75ea0b42784a28..01800a7f569708ccbc8e377d5762bb4af7e3faa9 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java |
@@ -13,6 +13,7 @@ |
import org.chromium.base.annotations.CalledByNative; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.util.IntentUtils; |
+import org.chromium.chrome.browser.webapps.WebappRegistry.FetchWebappDataStorageCallback; |
import org.chromium.webapk.lib.client.WebApkVersion; |
import org.chromium.webapk.lib.common.WebApkConstants; |
import org.chromium.webapk.lib.common.WebApkMetaDataKeys; |
@@ -66,24 +67,32 @@ |
mUpgradeDetector = new ManifestUpgradeDetector(tab, info, metadata, this); |
- WebappDataStorage storage = WebappRegistry.getInstance().getWebappDataStorage(info.id()); |
- if (forceUpgrade(storage)) mForceUpgrade = true; |
+ WebappRegistry.FetchWebappDataStorageCallback callback = |
+ new WebappRegistry.FetchWebappDataStorageCallback() { |
+ @Override |
+ public void onWebappDataStorageRetrieved(WebappDataStorage storage) { |
+ if (forceUpgrade(storage)) { |
+ mForceUpgrade = true; |
+ } |
- // TODO(pkotwicz|hanxi): Request upgrade if ShellAPK version changes if |
- // ManifestUpgradeDetector cannot fetch the Web Manifest. For instance, the |
- // web developer may have removed the Web Manifest from their site. |
- // (http://crbug.com/639536) |
+ // TODO(pkotwicz|hanxi): Request upgrade if ShellAPK version changes if |
+ // ManifestUpgradeDetector cannot fetch the Web Manifest. For instance, the |
+ // web developer may have removed the Web Manifest from their site. |
+ // (http://crbug.com/639536) |
- long sinceLastCheckDuration = System.currentTimeMillis() |
- - storage.getLastCheckForWebManifestUpdateTime(); |
- if (sinceLastCheckDuration > FULL_CHECK_UPDATE_INTERVAL || mForceUpgrade) { |
- if (mUpgradeDetector.start()) { |
- // crbug.com/636525. The timestamp of the last check for updated |
- // Web Manifest should be updated after the detector finds the |
- // Web Manifest, not when the detector is started. |
- storage.updateTimeOfLastCheckForUpdatedWebManifest(); |
- } |
- } |
+ long sinceLastCheckDuration = System.currentTimeMillis() |
+ - storage.getLastCheckForWebManifestUpdateTime(); |
+ if (sinceLastCheckDuration > FULL_CHECK_UPDATE_INTERVAL || mForceUpgrade) { |
+ if (mUpgradeDetector.start()) { |
+ // crbug.com/636525. The timestamp of the last check for updated |
+ // Web Manifest should be updated after the detector finds the |
+ // Web Manifest, not when the detector is started. |
+ storage.updateTimeOfLastCheckForUpdatedWebManifest(); |
+ } |
+ } |
+ } |
+ }; |
+ WebappRegistry.getWebappDataStorage(info.id(), callback); |
} |
@Override |
@@ -151,12 +160,16 @@ |
*/ |
@CalledByNative |
private static void onBuiltWebApk(final boolean success, String webapkPackage) { |
- WebappDataStorage storage = WebappRegistry.getInstance().getWebappDataStorage( |
- WebApkConstants.WEBAPK_ID_PREFIX + webapkPackage); |
- // Update the request time and result together. It prevents getting a |
- // correct request time but a result from the previous request. |
- storage.updateTimeOfLastWebApkUpdateRequestCompletion(); |
- storage.updateDidLastWebApkUpdateRequestSucceed(success); |
+ WebappRegistry.getWebappDataStorage(WebApkConstants.WEBAPK_ID_PREFIX + webapkPackage, |
+ new FetchWebappDataStorageCallback() { |
+ @Override |
+ public void onWebappDataStorageRetrieved(WebappDataStorage storage) { |
+ // Update the request time and result together. It prevents getting a |
+ // correct request time but a result from the previous request. |
+ storage.updateTimeOfLastWebApkUpdateRequestCompletion(); |
+ storage.updateDidLastWebApkUpdateRequestSucceed(success); |
+ } |
+ }); |
} |
private static native void nativeUpdateAsync(String startUrl, String scope, String name, |