Index: chrome/browser/android/webapk/webapk_installer.cc |
diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc |
index 07c07cc1b186e29f27837258dd0063eba285c9b4..d55303def587cde068d7fdfd67e35c8a53227739 100644 |
--- a/chrome/browser/android/webapk/webapk_installer.cc |
+++ b/chrome/browser/android/webapk/webapk_installer.cc |
@@ -147,17 +147,22 @@ WebApkInstaller::WebApkInstaller(const ShortcutInfo& shortcut_info, |
WebApkInstaller::~WebApkInstaller() {} |
-void WebApkInstaller::InstallAsync(content::BrowserContext* browser_context, |
- const FinishCallback& finish_callback) { |
+void WebApkInstaller::InstallAsync( |
+ content::BrowserContext* browser_context, |
+ const ShortcutHelper::WebApkPackageNameAvailableCallback& callback, |
+ const FinishCallback& finish_callback) { |
InstallAsyncWithURLRequestContextGetter( |
Profile::FromBrowserContext(browser_context)->GetRequestContext(), |
+ callback, |
finish_callback); |
} |
void WebApkInstaller::InstallAsyncWithURLRequestContextGetter( |
net::URLRequestContextGetter* request_context_getter, |
+ const ShortcutHelper::WebApkPackageNameAvailableCallback& callback, |
const FinishCallback& finish_callback) { |
request_context_getter_ = request_context_getter; |
+ package_available_callback_ = callback; |
finish_callback_ = finish_callback; |
task_type_ = INSTALL; |
@@ -375,6 +380,9 @@ void WebApkInstaller::OnWebApkMadeWorldReadable( |
return; |
} |
+ if (package_available_callback_) |
+ package_available_callback_.Run(package_name); |
+ |
JNIEnv* env = base::android::AttachCurrentThread(); |
base::android::ScopedJavaLocalRef<jstring> java_file_path = |
base::android::ConvertUTF8ToJavaString(env, file_path.value()); |
@@ -405,7 +413,10 @@ void WebApkInstaller::OnSuccess() { |
} |
void WebApkInstaller::OnFailure() { |
- FinishCallback callback = finish_callback_; |
+ ShortcutHelper::WebApkPackageNameAvailableCallback callback = |
+ package_available_callback_; |
+ FinishCallback finish_callback = finish_callback_; |
delete this; |
- callback.Run(false); |
+ callback.Run(""); |
+ finish_callback.Run(false); |
} |