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

Unified Diff: chrome/browser/android/shortcut_helper.cc

Issue 573073002: Use Web Manifest when creating a shortcut on Chrome Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: weakptr Created 6 years, 3 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
« no previous file with comments | « chrome/browser/android/shortcut_helper.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/shortcut_helper.cc
diff --git a/chrome/browser/android/shortcut_helper.cc b/chrome/browser/android/shortcut_helper.cc
index 00ccdb87411e72814c04f9307df1a01e9be38688..2a2f2a3fb7fac4514323465c91a5e16aa8706157 100644
--- a/chrome/browser/android/shortcut_helper.cc
+++ b/chrome/browser/android/shortcut_helper.cc
@@ -23,6 +23,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/frame_navigate_params.h"
+#include "content/public/common/manifest.h"
#include "jni/ShortcutHelper_jni.h"
#include "ui/gfx/android/java_bitmap.h"
#include "ui/gfx/codec/png_codec.h"
@@ -46,7 +47,8 @@ ShortcutHelper::ShortcutHelper(JNIEnv* env,
: WebContentsObserver(web_contents),
java_ref_(env, obj),
url_(web_contents->GetURL()),
- web_app_capable_(WebApplicationInfo::MOBILE_CAPABLE_UNSPECIFIED) {
+ web_app_capable_(WebApplicationInfo::MOBILE_CAPABLE_UNSPECIFIED),
+ weak_ptr_factory_(this) {
}
void ShortcutHelper::Initialize() {
@@ -71,6 +73,25 @@ void ShortcutHelper::OnDidGetWebApplicationInfo(
title_ = web_app_info.title.empty() ? web_contents()->GetTitle()
: web_app_info.title;
+ web_contents()->GetManifest(base::Bind(&ShortcutHelper::OnDidGetManifest,
+ weak_ptr_factory_.GetWeakPtr()));
+}
+
+void ShortcutHelper::OnDidGetManifest(const content::Manifest& manifest) {
+ // Set the title based on the manifest value, if any.
+ if (!manifest.short_name.is_null())
+ title_ = manifest.short_name.string();
+ else if (!manifest.name.is_null())
+ title_ = manifest.name.string();
+
+ // Set the url based on the manifest value, if any.
+ if (manifest.start_url.is_valid())
+ url_ = manifest.start_url;
+
+ // The ShortcutHelper is now able to notify its Java counterpart that it is
+ // initialized. OnInitialized method is not conceptually part of getting the
+ // manifest data but it happens that the initialization is finalized when
+ // these data are available.
JNIEnv* env = base::android::AttachCurrentThread();
ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env);
ScopedJavaLocalRef<jstring> j_title =
« no previous file with comments | « chrome/browser/android/shortcut_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698