| Index: chrome/browser/android/webapk/webapk_update_manager.cc
|
| diff --git a/chrome/browser/android/webapk/webapk_update_manager.cc b/chrome/browser/android/webapk/webapk_update_manager.cc
|
| index 9af9a7b61e1576ef1e376bbc2b91d201257a56ec..10d3569f50f00983c13b23838ebbc41aa66930c1 100644
|
| --- a/chrome/browser/android/webapk/webapk_update_manager.cc
|
| +++ b/chrome/browser/android/webapk/webapk_update_manager.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/android/jni_string.h"
|
| #include "base/android/scoped_java_ref.h"
|
| #include "base/bind.h"
|
| +#include "base/files/file_path.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/strings/string16.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| @@ -33,10 +34,10 @@ using base::android::ScopedJavaGlobalRef;
|
|
|
| namespace {
|
|
|
| -// Called with the serialized proto to send to the WebAPK server.
|
| -void OnBuiltProto(const JavaRef<jobject>& java_callback,
|
| - std::unique_ptr<std::vector<uint8_t>> proto) {
|
| - base::android::RunCallbackAndroid(java_callback, *proto);
|
| +// Called after saving the update request proto either succeeds or fails.
|
| +void OnStoredUpdateRequest(const JavaRef<jobject>& java_callback,
|
| + bool success) {
|
| + base::android::RunCallbackAndroid(java_callback, success);
|
| }
|
|
|
| // Called after the update either succeeds or fails.
|
| @@ -52,9 +53,10 @@ void OnUpdated(const JavaRef<jobject>& java_callback,
|
| } // anonymous namespace
|
|
|
| // static JNI method.
|
| -static void BuildUpdateWebApkProto(
|
| +static void StoreWebApkUpdateRequestToDisk(
|
| JNIEnv* env,
|
| const JavaParamRef<jclass>& clazz,
|
| + const JavaParamRef<jstring>& java_file_path,
|
| const JavaParamRef<jstring>& java_start_url,
|
| const JavaParamRef<jstring>& java_scope,
|
| const JavaParamRef<jstring>& java_name,
|
| @@ -76,6 +78,8 @@ static void BuildUpdateWebApkProto(
|
| const JavaParamRef<jobject>& java_callback) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
| + std::string file_path = ConvertJavaStringToUTF8(env, java_file_path);
|
| +
|
| ShortcutInfo info(GURL(ConvertJavaStringToUTF8(env, java_start_url)));
|
| info.scope = GURL(ConvertJavaStringToUTF8(env, java_scope));
|
| info.name = ConvertJavaStringToUTF16(env, java_name);
|
| @@ -118,21 +122,20 @@ static void BuildUpdateWebApkProto(
|
| std::string webapk_package;
|
| ConvertJavaStringToUTF8(env, java_webapk_package, &webapk_package);
|
|
|
| - WebApkInstaller::BuildProto(
|
| - info, primary_icon, badge_icon, webapk_package,
|
| + WebApkInstaller::StoreUpdateRequestToDisk(
|
| + base::FilePath(file_path), info, primary_icon, badge_icon, webapk_package,
|
| std::to_string(java_webapk_version), icon_url_to_murmur2_hash,
|
| java_is_manifest_stale,
|
| - base::Bind(&OnBuiltProto, ScopedJavaGlobalRef<jobject>(java_callback)));
|
| + base::Bind(&OnStoredUpdateRequest,
|
| + ScopedJavaGlobalRef<jobject>(java_callback)));
|
| }
|
|
|
| // static JNI method.
|
| -static void UpdateWebApk(JNIEnv* env,
|
| - const JavaParamRef<jclass>& clazz,
|
| - const JavaParamRef<jstring>& java_webapk_package,
|
| - const JavaParamRef<jstring>& java_start_url,
|
| - const JavaParamRef<jstring>& java_short_name,
|
| - const JavaParamRef<jbyteArray>& java_serialized_proto,
|
| - const JavaParamRef<jobject>& java_callback) {
|
| +static void UpdateWebApkFromStoredRequest(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jclass>& clazz,
|
| + const JavaParamRef<jstring>& java_request_file_path,
|
| + const JavaParamRef<jobject>& java_callback) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
| ScopedJavaGlobalRef<jobject> callback_ref(java_callback);
|
| @@ -146,15 +149,8 @@ static void UpdateWebApk(JNIEnv* env,
|
| return;
|
| }
|
|
|
| - std::string webapk_package =
|
| - ConvertJavaStringToUTF8(env, java_webapk_package);
|
| - GURL start_url = GURL(ConvertJavaStringToUTF8(env, java_start_url));
|
| - base::string16 short_name = ConvertJavaStringToUTF16(env, java_short_name);
|
| - std::unique_ptr<std::vector<uint8_t>> serialized_proto =
|
| - base::MakeUnique<std::vector<uint8_t>>();
|
| - JavaByteArrayToByteVector(env, java_serialized_proto, serialized_proto.get());
|
| -
|
| + std::string request_file_path =
|
| + ConvertJavaStringToUTF8(env, java_request_file_path);
|
| WebApkInstallService::Get(profile)->UpdateAsync(
|
| - webapk_package, start_url, short_name, std::move(serialized_proto),
|
| - base::Bind(&OnUpdated, callback_ref));
|
| + base::FilePath(request_file_path), base::Bind(&OnUpdated, callback_ref));
|
| }
|
|
|