| Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
|
| index 81bb2d147516f070c339313ad75badcc9d2cf7fa..3bc287a0a851beb8d4891f41ad1825dc0ce74503 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java
|
| @@ -4,7 +4,11 @@
|
|
|
| package org.chromium.chrome.browser.webapps;
|
|
|
| +import org.chromium.base.ApplicationState;
|
| +import org.chromium.base.ApplicationStatus;
|
| +import org.chromium.base.ContextUtils;
|
| import org.chromium.base.library_loader.LibraryLoader;
|
| +import org.chromium.webapk.lib.client.WebApkIdentityServiceClient;
|
| import org.chromium.webapk.lib.client.WebApkValidator;
|
|
|
| /**
|
| @@ -23,6 +27,27 @@ public class ChromeWebApkHost {
|
| return LibraryLoader.isInitialized() && nativeCanLaunchRendererInWebApkProcess();
|
| }
|
|
|
| + /*
|
| + * Registers an application listener to disconnect WebApkIdentityServiceClient when Chrome isn't
|
| + * visible.
|
| + */
|
| + public static void initializeWithNative() {
|
| + ApplicationStatus.registerApplicationStateListener(createApplicationStateListener());
|
| + }
|
| +
|
| + /** Unbinds to the WebAPK Identity services once Chrome doesn't have any visible activity. */
|
| + private static ApplicationStatus.ApplicationStateListener createApplicationStateListener() {
|
| + return new ApplicationStatus.ApplicationStateListener() {
|
| + @Override
|
| + public void onApplicationStateChange(int newState) {
|
| + if (newState == ApplicationState.HAS_STOPPED_ACTIVITIES
|
| + || newState == ApplicationState.HAS_DESTROYED_ACTIVITIES) {
|
| + WebApkIdentityServiceClient.getInstance().disconnect(
|
| + ContextUtils.getApplicationContext());
|
| + }
|
| + }
|
| + };
|
| + }
|
|
|
| private static native boolean nativeCanLaunchRendererInWebApkProcess();
|
| }
|
|
|