Index: chrome/browser/android/shortcut_helper.cc |
diff --git a/chrome/browser/android/shortcut_helper.cc b/chrome/browser/android/shortcut_helper.cc |
index 87da518f77f8828ecc8a92ce6339985c2bae80ca..2381fdcbfa760d7fcfe1f86bbe5ef88c06617ae5 100644 |
--- a/chrome/browser/android/shortcut_helper.cc |
+++ b/chrome/browser/android/shortcut_helper.cc |
@@ -14,6 +14,7 @@ |
#include "base/command_line.h" |
#include "base/strings/string16.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "chrome/browser/android/webapk/webapk_builder.h" |
#include "chrome/browser/manifest/manifest_icon_downloader.h" |
#include "chrome/common/chrome_switches.h" |
#include "content/public/browser/browser_thread.h" |
@@ -62,6 +63,7 @@ void GetHomescreenIconAndSplashImageSizes() { |
// static |
void ShortcutHelper::AddShortcutInBackgroundWithSkBitmap( |
+ content::BrowserContext* browser_context, |
const ShortcutInfo& info, |
const std::string& webapp_id, |
const SkBitmap& icon_bitmap, |
@@ -72,7 +74,7 @@ void ShortcutHelper::AddShortcutInBackgroundWithSkBitmap( |
info.display == blink::WebDisplayModeFullscreen) { |
if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableWebApk)) { |
- AddWebApkInBackgroundWithSkBitmap(info, webapp_id, icon_bitmap); |
+ AddWebApkInBackgroundWithSkBitmap(browser_context, info, icon_bitmap); |
return; |
} |
AddWebappInBackgroundWithSkBitmap(info, webapp_id, icon_bitmap, |
@@ -84,43 +86,13 @@ void ShortcutHelper::AddShortcutInBackgroundWithSkBitmap( |
// static |
void ShortcutHelper::AddWebApkInBackgroundWithSkBitmap( |
+ content::BrowserContext* browser_context, |
const ShortcutInfo& info, |
- const std::string& webapp_id, |
const SkBitmap& icon_bitmap) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
- |
- // TODO(pkotwicz): Send request to WebAPK server to generate WebAPK. |
- |
- JNIEnv* env = base::android::AttachCurrentThread(); |
- ScopedJavaLocalRef<jstring> java_url = |
- base::android::ConvertUTF8ToJavaString(env, info.url.spec()); |
- ScopedJavaLocalRef<jstring> java_scope_url = |
- base::android::ConvertUTF8ToJavaString(env, info.scope.spec()); |
- ScopedJavaLocalRef<jstring> java_name = |
- base::android::ConvertUTF16ToJavaString(env, info.name); |
- ScopedJavaLocalRef<jstring> java_short_name = |
- base::android::ConvertUTF16ToJavaString(env, info.short_name); |
- ScopedJavaLocalRef<jstring> java_icon_url = |
- base::android::ConvertUTF8ToJavaString(env, info.icon_url.spec()); |
- ScopedJavaLocalRef<jobject> java_bitmap; |
- if (icon_bitmap.getSize()) |
- java_bitmap = gfx::ConvertToJavaBitmap(&icon_bitmap); |
- ScopedJavaLocalRef<jstring> java_manifest_url = |
- base::android::ConvertUTF8ToJavaString(env, info.manifest_url.spec()); |
- |
- Java_ShortcutHelper_installWebApk( |
- env, |
- java_url.obj(), |
- java_scope_url.obj(), |
- java_name.obj(), |
- java_short_name.obj(), |
- java_icon_url.obj(), |
- java_bitmap.obj(), |
- info.display, |
- info.orientation, |
- info.theme_color, |
- info.background_color, |
- java_manifest_url.obj()); |
+ WebApkBuilder* builder = |
+ new WebApkBuilder(browser_context, info, icon_bitmap); |
Yaron
2016/07/13 00:24:00
brief comment on ownership please
pkotwicz
2016/07/13 02:15:30
Done.
|
+ builder->BuildAsync(base::Bind(&ShortcutHelper::OnBuiltWebApk)); |
} |
// static |
@@ -193,6 +165,17 @@ void ShortcutHelper::AddBookmarkShortcutInBackgroundWithSkBitmap( |
java_bitmap.obj(), info.source); |
} |
+void ShortcutHelper::OnBuiltWebApk(bool success) { |
Yaron
2016/07/13 00:24:01
without any state on what was successful (Shortcut
pkotwicz
2016/07/13 02:15:30
Yes ShortcutHelper::OnBuiltWebApk() should take mo
|
+ if (success) { |
+ LOG(ERROR) |
+ << "Sent request to create WebAPK to server. Seems to have worked."; |
+ } else { |
+ LOG(ERROR) << "Server request to create WebAPK failed."; |
+ } |
+ // TODO(pkotwicz): Figure out what to do when building WebAPK fails. |
+ // (crbug.com/626950) |
+} |
+ |
int ShortcutHelper::GetIdealHomescreenIconSizeInDp() { |
if (kIdealHomescreenIconSize == -1) |
GetHomescreenIconAndSplashImageSizes(); |