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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java

Issue 2331773002: Take Murmur2 hash of untransformed icon when creating WebAPK part 2/2 (Closed)
Patch Set: Merge branch 'master' into icon_hasher2 Created 4 years, 3 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java
index 46d7afbfd87abc3f367f8cd556f32907b9841b2b..a0ffd9e2078f833088572265ee2d76ce3b46dd2c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java
@@ -40,7 +40,7 @@ public class ManifestUpgradeDetector implements ManifestUpgradeDetectorFetcher.C
// Hash of untransformed icon bytes. The hash should have been taken prior to any
// encoding/decoding.
- public long iconMurmur2Hash;
+ public String iconMurmur2Hash;
public Bitmap icon;
public int displayMode;
@@ -59,7 +59,7 @@ public class ManifestUpgradeDetector implements ManifestUpgradeDetectorFetcher.C
private String mManifestUrl;
private String mStartUrl;
private String mIconUrl;
- private long mIconMurmur2Hash;
+ private String mIconMurmur2Hash;
/**
* Fetches the WebAPK's Web Manifest from the web.
@@ -68,22 +68,21 @@ public class ManifestUpgradeDetector implements ManifestUpgradeDetectorFetcher.C
private Callback mCallback;
/**
- * Gets the long value from a Bundle. The long should be terminated with 'L'.
- * According to https://developer.android.com/guide/topics/manifest/meta-data-element.html
- * numeric <meta-data> values can only be retrieved via {@link Bundle#getInt()} and
- * {@link Bundle#getFloat()}. We cannot use {@link Bundle#getFloat()} due to loss of precision.
- * Returns 0 if the value cannot be parsed.
+ * Gets the Murmur2 hash from a Bundle. Returns an empty string if the value could not be
+ * parsed.
*/
- private static long getLongFromBundle(Bundle bundle, String key) {
- String value = IntentUtils.safeGetString(bundle, key);
+ private static String getMurmur2HashFromBundle(Bundle bundle) {
+ String value = bundle.getString(WebApkMetaDataKeys.ICON_MURMUR2_HASH);
+
+ // The Murmur2 hash should be terminated with 'L' to force the value to be a string.
+ // According to https://developer.android.com/guide/topics/manifest/meta-data-element.html
+ // numeric <meta-data> values can only be retrieved via {@link Bundle#getInt()} and
+ // {@link Bundle#getFloat()}. We cannot use {@link Bundle#getFloat()} due to loss of
+ // precision.
if (value == null || !value.endsWith("L")) {
- return 0;
+ return "";
}
- try {
- return Long.parseLong(value.substring(0, value.length() - 1));
- } catch (NumberFormatException e) {
- }
- return 0;
+ return value.substring(0, value.length() - 1);
}
/**
@@ -137,7 +136,7 @@ public class ManifestUpgradeDetector implements ManifestUpgradeDetectorFetcher.C
mManifestUrl = IntentUtils.safeGetString(metadata, WebApkMetaDataKeys.WEB_MANIFEST_URL);
mStartUrl = IntentUtils.safeGetString(metadata, WebApkMetaDataKeys.START_URL);
mIconUrl = IntentUtils.safeGetString(metadata, WebApkMetaDataKeys.ICON_URL);
- mIconMurmur2Hash = getLongFromBundle(metadata, WebApkMetaDataKeys.ICON_MURMUR2_HASH);
+ mIconMurmur2Hash = getMurmur2HashFromBundle(metadata);
}
/**
@@ -155,7 +154,7 @@ public class ManifestUpgradeDetector implements ManifestUpgradeDetectorFetcher.C
*/
@Override
public void onGotManifestData(String startUrl, String scopeUrl, String name, String shortName,
- String iconUrl, long iconMurmur2Hash, Bitmap iconBitmap, int displayMode,
+ String iconUrl, String iconMurmur2Hash, Bitmap iconBitmap, int displayMode,
int orientation, long themeColor, long backgroundColor) {
mFetcher.destroy();
mFetcher = null;
@@ -187,15 +186,9 @@ public class ManifestUpgradeDetector implements ManifestUpgradeDetectorFetcher.C
* Checks whether the WebAPK needs to be upgraded provided the fetched manifest data.
*/
private boolean requireUpgrade(FetchedManifestData fetchedData) {
- /**
- * Only check whether icon URL differs if Chrome was able to fetch the bitmap at the icon
- * URL (no 404).
- */
- if (fetchedData.icon != null) {
- if (!TextUtils.equals(mIconUrl, fetchedData.iconUrl)
- || mIconMurmur2Hash != fetchedData.iconMurmur2Hash) {
- return true;
- }
+ if (!TextUtils.equals(mIconUrl, fetchedData.iconUrl)
+ || !mIconMurmur2Hash.equals(fetchedData.iconMurmur2Hash)) {
+ return true;
}
boolean scopeMatch = mWebappInfo.scopeUri().toString().equals(fetchedData.scopeUrl);
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698