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

Issue 2948713002: Update WebAPK after the user closes WebAPK

Created:
3 years, 6 months ago by pkotwicz
Modified:
3 years, 3 months ago
Reviewers:
Xi Han, fgorski1
CC:
chromium-reviews, dominickn+watch_chromium.org, pkotwicz+watch_chromium.org, zpeng+watch_chromium.org, asvitkine+watch_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Update WebAPK after the user closes WebAPK This CL hooks up updating WebAPKs to BackgroundTaskScheduler. This has the following benefits: - Preventing WebAPKs from being installed as a result of an update after a user uninstalls a WebAPK - Making WebAPKs always occur when the WebAPK is not running. Previously, updates were triggered as a result of WebApkActivity#onStop(). If the onStop()-triggered update failed 3 times, the WebAPK switched to triggering updates on launch. (on update completion the running WebAPK would crash). This CL also: - Renames the --check-for-web-manifest-update-on-startup to --debug-webapk-updates BUG=713655

Patch Set 1 #

Total comments: 7

Patch Set 2 : Merge branch 'background_updates4' into background_updates #

Patch Set 3 : Merge branch 'background_updates4' into background_updates #

Patch Set 4 : Merge branch 'background_updates4' into background_updates #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+346 lines, -219 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java View 1 1 chunk +5 lines, -4 lines 4 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java View 1 2 chunks +1 line, -4 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java View 1 2 3 8 chunks +61 lines, -95 lines 0 comments Download
A chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateTask.java View 1 1 chunk +130 lines, -0 lines 1 comment Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java View 1 2 4 chunks +1 line, -26 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java View 1 3 chunks +15 lines, -0 lines 0 comments Download
M chrome/android/java_sources.gni View 1 1 chunk +1 line, -0 lines 0 comments Download
M chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java View 1 3 chunks +5 lines, -3 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java View 1 14 chunks +111 lines, -82 lines 3 comments Download
M components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerUma.java View 1 2 chunks +4 lines, -1 line 0 comments Download
M components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/TaskIds.java View 1 1 chunk +1 line, -0 lines 0 comments Download
M components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerUmaTest.java View 1 1 chunk +3 lines, -1 line 0 comments Download
M tools/metrics/histograms/enums.xml View 1 2 chunks +8 lines, -3 lines 0 comments Download

Messages

Total messages: 7 (2 generated)
pkotwicz
Xi, can you please take a look? This CL depends on https://codereview.chromium.org/2943913002/
3 years, 6 months ago (2017-06-20 02:42:08 UTC) #2
Xi Han
Thanks for fixing this! https://codereview.chromium.org/2948713002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java (right): https://codereview.chromium.org/2948713002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java#newcode58 chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java:58: public static WebApkActivity getRunningActivity(String webApkPackageName) ...
3 years, 6 months ago (2017-06-20 19:18:01 UTC) #3
fgorski1
https://codereview.chromium.org/2948713002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java File chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java (right): https://codereview.chromium.org/2948713002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java#newcode195 chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java:195: info.webApkPackageName(), info.manifestStartUrl(), info.shortName()); Do you in general only allow ...
3 years, 4 months ago (2017-08-08 16:46:10 UTC) #5
pkotwicz
Xi and fgorski@ can you please take another look? Sorry for the long delay https://codereview.chromium.org/2948713002/diff/1/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java ...
3 years, 3 months ago (2017-09-08 03:42:34 UTC) #6
Xi Han
3 years, 3 months ago (2017-09-11 15:24:24 UTC) #7
Mostly nits!

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
File chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java
(right):

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java:61:
public static final String HISTOGRAM_UPDATE_REQUEST_SENT =
Nit: this isn't necessary now. Please also update histograms.xml.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java:64:
public static final String HISTOGRAM_UPDATE_REQUEST_QUEUED =
"WebApk.Update.RequestQueued";
Nit: this isn't necessary now. Please also update histograms.xml.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java:75:
public static void recordUpdateRequestSent(int type) {
You can remove this function now.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
chrome/android/java/src/org/chromium/chrome/browser/metrics/WebApkUma.java:86:
public static void recordUpdateRequestQueued(int times) {
You can remove this too.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
File
chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateTask.java
(right):

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/java/src...
chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateTask.java:25:
* Handles servicing of background WebAPK update requests coming via
background_task_scheduler
It is worthy mentioning that: the scheduled task will update all WebAPKs that
are out-of-date. It is possible that multiple background tasks are created when
there are multiple webapks are launched and need to be updated, and it is fine
since the background tasks will be executed one by one.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/junit/sr...
File
chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java
(right):

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/junit/sr...
chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java:324:
if (storeUpdateRequestCallback == null) return;
Nit: add a new line here, and remove line 326.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/junit/sr...
chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java:329:
if (updateCallback == null) return;
Nit: add a new line here.

https://codereview.chromium.org/2948713002/diff/60001/chrome/android/junit/sr...
chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java:511:
ManifestData manifestData = defaultManifestData();
The block from line 511 to line 518 looks the same as the block from line 536 to
line 548, can you put them in one helper function like: File
createPendingUpdateFile()?

If returning a File object doesn't work for the assumption in line 524, you can
simply return a string in the helper function.

Powered by Google App Engine
This is Rietveld 408576698