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

Unified Diff: chrome/browser/android/webapk/chrome_webapk_host.cc

Issue 2675803004: Fall back to shortcut A2HS when Phonesky is out of date or unavailable. (Closed)
Patch Set: Update add_to_homescreen_data_fetcher_unittest.cc. Created 3 years, 10 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
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();
}

Powered by Google App Engine
This is Rietveld 408576698