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

Issue 2453423002: Send all of the icon URLs listed in Web Manifest to WebAPK Server. (Closed)

Created:
4 years, 1 month ago by Xi Han
Modified:
4 years, 1 month ago
Reviewers:
dominickn, pkotwicz
CC:
chromium-reviews, dominickn+watch_chromium.org, pkotwicz+watch_chromium.org, zpeng+watch_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Send all of the icon URLs listed in Web Manifest to WebAPK Server. So far, Chrome only sends the best icon URL to WebAPK Minter Server to create/install WebAPKs. However, in the multiple icon world, it isn't correct to still keep the "best icon URL" and the "best icon hash" in AndroidManifest.xml. This is because the best icon URL will be different for devices with different resolution. For example, a nexus 5 and an Android one device will have different best icon URL. To prevent creating a WebAPK for a device with a wrong baked metadata, the "best icon URL" and "best Icon Hash" are removed from the metadata. Instead, all of the icon URLs, as well as all of the icon Hashs are baked in the AndroidManifest.xml. These icon URLs and Hashes are stored as a space separated single <meta-data> tag, as: "URL1 hash1 URL2 hash2 URL3 hash3..." Another change in this CL is to send all the icon URLs to the server, since the server wants to check if any of these icon URLs changed before starting a fetch of the raw icon data. Some behavior changes are involved: 1) For creating a WebAPK, Chrome sends all icon URLs + (the best icon URL + best icon hash + best icon raw image) to the Server. The reason to still send the best icon is for one-off WebAPKs which use the image from Chrome, since server will fail to fetch any of them. Server generates all the icon Hashs and bakes them in the WebAPK's metadata in AndroidManifest.xml. 2) When checking updates, Chrome compute the best icon URL and hash when fetching the Web Manifest, and compare the new computed hash with the one backed in the metadata to see whether the image is updated. The icon URL and icon Hash pairs are stored in a map in WebApkMetaData. BUG=627593 Committed: https://crrev.com/75ca9beb7e7fcd03feb23bb1e246be3ff5de6b6e Cr-Commit-Position: refs/heads/master@{#433215}

Patch Set 1 #

Total comments: 48

Patch Set 2 : Remove best_icon_url and best_icon_hash from metadata, but add all icon urls and icon hashs in. #

Total comments: 60

Patch Set 3 : pkotwicz@'s comments. #

Total comments: 28

Patch Set 4 : Store icon Urls and murmur2 hashes in one single metadata tag. #

Total comments: 8

Patch Set 5 : use space to separate icon_url and icon_hash. #

Total comments: 22

Patch Set 6 : dominickn@'s comments. #

Patch Set 7 : Remove icon urls comparison when checking updates. #

Total comments: 10

Patch Set 8 : Use String[] for icon urls. #

Total comments: 6

Patch Set 9 : Nits. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+403 lines, -245 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java View 1 2 3 4 5 6 4 chunks +9 lines, -64 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java View 1 2 3 4 5 6 7 3 chunks +47 lines, -7 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaData.java View 1 2 3 2 chunks +3 lines, -2 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java View 1 2 3 4 5 5 chunks +47 lines, -3 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java View 1 2 3 4 5 6 7 6 chunks +21 lines, -15 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java View 1 2 3 4 5 3 chunks +4 lines, -6 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java View 1 2 3 4 5 3 chunks +10 lines, -5 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java View 1 2 3 4 5 6 7 12 chunks +78 lines, -43 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtilsTest.java View 1 2 3 4 5 6 7 2 chunks +53 lines, -5 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataKeys.java View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M chrome/android/webapk/shell_apk/AndroidManifest.xml View 1 2 3 1 chunk +1 line, -2 lines 0 comments Download
M chrome/android/webapk/shell_apk/BUILD.gn View 1 2 3 4 3 chunks +7 lines, -10 lines 0 comments Download
M chrome/browser/android/banners/app_banner_manager_android.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/android/shortcut_helper.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M chrome/browser/android/shortcut_info.h View 1 2 3 4 5 6 7 2 chunks +4 lines, -1 line 0 comments Download
M chrome/browser/android/shortcut_info.cc View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/browser/android/webapk/manifest_upgrade_detector_fetcher.h View 1 2 chunks +4 lines, -4 lines 0 comments Download
M chrome/browser/android/webapk/manifest_upgrade_detector_fetcher.cc View 1 2 3 4 5 6 7 8 4 chunks +20 lines, -15 lines 0 comments Download
M chrome/browser/android/webapk/webapk_installer.cc View 1 2 3 4 5 6 7 8 4 chunks +19 lines, -6 lines 0 comments Download
M chrome/browser/android/webapk/webapk_installer_unittest.cc View 1 2 3 9 chunks +22 lines, -20 lines 0 comments Download
M chrome/browser/android/webapk/webapk_update_manager.cc View 1 2 3 4 5 6 7 8 4 chunks +34 lines, -26 lines 0 comments Download
M chrome/browser/android/webapps/add_to_homescreen_data_fetcher.cc View 3 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 73 (51 generated)
Xi Han
Hi Peter, could you please take a look? Thanks!
4 years, 1 month ago (2016-10-28 19:45:55 UTC) #11
pkotwicz
Nits and a few comments for follow up CLs https://codereview.chromium.org/2453423002/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java (right): https://codereview.chromium.org/2453423002/diff/40001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java#newcode156 chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java:156: ...
4 years, 1 month ago (2016-11-01 00:29:50 UTC) #14
Xi Han
Hi Peter, I update this CL according to the decision to put all the icon ...
4 years, 1 month ago (2016-11-07 16:51:43 UTC) #24
pkotwicz
A few more comments. Mostly nits. Sorry for taking so long to review the CL ...
4 years, 1 month ago (2016-11-11 21:04:20 UTC) #30
Xi Han
PTAL, thanks! https://codereview.chromium.org/2453423002/diff/40001/chrome/browser/android/shortcut_info.cc File chrome/browser/android/shortcut_info.cc (right): https://codereview.chromium.org/2453423002/diff/40001/chrome/browser/android/shortcut_info.cc#newcode69 chrome/browser/android/shortcut_info.cc:69: for (const auto& icon : manifest.icons) On ...
4 years, 1 month ago (2016-11-14 19:36:10 UTC) #34
pkotwicz
LGTM with nits https://codereview.chromium.org/2453423002/diff/120001/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java (right): https://codereview.chromium.org/2453423002/diff/120001/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java#newcode127 chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java:127: * single meta data tag in ...
4 years, 1 month ago (2016-11-14 22:43:11 UTC) #35
Xi Han
Hi Peter, I merge the icon urls and murmur2 hash into one single metadata tag, ...
4 years, 1 month ago (2016-11-15 20:07:08 UTC) #42
pkotwicz
Still LGTM https://codereview.chromium.org/2453423002/diff/340001/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java (right): https://codereview.chromium.org/2453423002/diff/340001/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java#newcode130 chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java:130: * WebAPK's AndroidManifest.xml as followings: Nit: followings ...
4 years, 1 month ago (2016-11-15 22:04:47 UTC) #47
Xi Han
Hi Dominick, could you please take a look? Thanks! https://codereview.chromium.org/2453423002/diff/340001/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java (right): https://codereview.chromium.org/2453423002/diff/340001/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java#newcode130 chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkMetaDataUtils.java:130: ...
4 years, 1 month ago (2016-11-15 22:33:30 UTC) #49
dominickn
Why is it necessary for all of the icon URLs to match for an upgrade ...
4 years, 1 month ago (2016-11-17 02:34:39 UTC) #50
Xi Han
I change the update rule for icons: Chrome only sends update request if the best ...
4 years, 1 month ago (2016-11-17 18:09:58 UTC) #55
dominickn
https://codereview.chromium.org/2453423002/diff/360001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java (right): https://codereview.chromium.org/2453423002/diff/360001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java#newcode63 chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java:63: public Set<String> iconUrls; On 2016/11/17 18:09:58, Xi Han wrote: ...
4 years, 1 month ago (2016-11-17 18:50:54 UTC) #56
Xi Han
PTAL, thanks! https://codereview.chromium.org/2453423002/diff/360001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java (right): https://codereview.chromium.org/2453423002/diff/360001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java#newcode63 chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetector.java:63: public Set<String> iconUrls; On 2016/11/17 18:50:53, dominickn ...
4 years, 1 month ago (2016-11-17 20:42:38 UTC) #58
dominickn
Just a couple of things. https://codereview.chromium.org/2453423002/diff/400001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java (right): https://codereview.chromium.org/2453423002/diff/400001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java#newcode47 chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java:47: public Set<String> iconUrls; On ...
4 years, 1 month ago (2016-11-17 21:16:44 UTC) #59
Xi Han
PTAL, thanks! https://codereview.chromium.org/2453423002/diff/400001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java (right): https://codereview.chromium.org/2453423002/diff/400001/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java#newcode47 chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java:47: public Set<String> iconUrls; On 2016/11/17 21:16:43, dominickn ...
4 years, 1 month ago (2016-11-17 21:34:10 UTC) #60
dominickn
lgtm
4 years, 1 month ago (2016-11-17 21:35:36 UTC) #61
dominickn
On 2016/11/17 21:35:36, dominickn wrote: > lgtm Thanks for bearing with me!
4 years, 1 month ago (2016-11-17 21:36:02 UTC) #62
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2453423002/460001
4 years, 1 month ago (2016-11-18 13:50:04 UTC) #65
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/183663)
4 years, 1 month ago (2016-11-18 15:20:38 UTC) #67
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2453423002/460001
4 years, 1 month ago (2016-11-18 15:41:30 UTC) #69
commit-bot: I haz the power
Committed patchset #9 (id:460001)
4 years, 1 month ago (2016-11-18 16:23:30 UTC) #71
commit-bot: I haz the power
4 years, 1 month ago (2016-11-18 16:25:30 UTC) #73
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/75ca9beb7e7fcd03feb23bb1e246be3ff5de6b6e
Cr-Commit-Position: refs/heads/master@{#433215}

Powered by Google App Engine
This is Rietveld 408576698