| Index: chrome/browser/android/webapk/chrome_webapk_host.cc
|
| diff --git a/chrome/browser/android/webapk/chrome_webapk_host.cc b/chrome/browser/android/webapk/chrome_webapk_host.cc
|
| index 1ebfe489246fc3076d391f0c714144da27011ca7..ae7eaebde138d170ee76cfd357de8eb90f31ac32 100644
|
| --- a/chrome/browser/android/webapk/chrome_webapk_host.cc
|
| +++ b/chrome/browser/android/webapk/chrome_webapk_host.cc
|
| @@ -4,7 +4,10 @@
|
|
|
| #include "chrome/browser/android/webapk/chrome_webapk_host.h"
|
|
|
| +#include "base/android/jni_android.h"
|
| +#include "base/bind.h"
|
| #include "chrome/browser/android/chrome_feature_list.h"
|
| +#include "chrome/browser/android/webapk/webapk_install_service.h"
|
| #include "components/variations/variations_associated_data.h"
|
| #include "jni/ChromeWebApkHost_jni.h"
|
|
|
| @@ -13,6 +16,11 @@ namespace {
|
| // Variations flag to enable installing WebAPKs using Google Play.
|
| const char* kPlayInstall = "play_install";
|
|
|
| +bool IsGooglePlayInstallAllowed() {
|
| + return variations::GetVariationParamValueByFeature(
|
| + chrome::android::kImprovedA2HS, kPlayInstall) == "true";
|
| +}
|
| +
|
| } // anonymous namespace
|
|
|
| // static
|
| @@ -30,6 +38,41 @@ bool ChromeWebApkHost::AreWebApkEnabled() {
|
| jboolean CanUseGooglePlayToInstallWebApk(
|
| JNIEnv* env,
|
| const base::android::JavaParamRef<jclass>& clazz) {
|
| - return variations::GetVariationParamValueByFeature(
|
| - chrome::android::kImprovedA2HS, kPlayInstall) == "true";
|
| + return IsGooglePlayInstallAllowed();
|
| +}
|
| +
|
| +// static
|
| +bool ChromeWebApkHost::CanUseGooglePlayToInstallWebApk() {
|
| + return IsGooglePlayInstallAllowed();
|
| +}
|
| +
|
| +ChromeWebApkHost::ChromeWebApkHost() {
|
| + CreateJavaRef();
|
| +}
|
| +
|
| +void ChromeWebApkHost::CanUseGooglePlayInstallApi(
|
| + const CanUseGooglePlayInstallApiCallback& callback) {
|
| + callback_ = callback;
|
| + Java_ChromeWebApkHost_canUseGooglePlayInstallApi(
|
| + base::android::AttachCurrentThread(), java_ref_);
|
| +}
|
| +
|
| +void ChromeWebApkHost::OnCanUseGooglePlayInstallApi(
|
| + JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj,
|
| + jboolean is_available) {
|
| + callback_.Run(is_available);
|
| + delete this;
|
| +}
|
| +
|
| +void ChromeWebApkHost::CreateJavaRef() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + java_ref_.Reset(Java_ChromeWebApkHost_create(
|
| + env, reinterpret_cast<intptr_t>(this)));
|
| +}
|
| +
|
| +ChromeWebApkHost::~ChromeWebApkHost() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + Java_ChromeWebApkHost_destroy(env, java_ref_);
|
| + java_ref_.Reset();
|
| }
|
|
|