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

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

Issue 568823003: Merge Android RetrieveWebappInformation and Extensions GetApplicationInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@manifest_manager_content
Patch Set: 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') | chrome/browser/extensions/tab_helper.h » ('j') | 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 71f32233dc23e6ed0ca71f39a044c3d11698ea7a..00ccdb87411e72814c04f9307df1a01e9be38688 100644
--- a/chrome/browser/android/shortcut_helper.cc
+++ b/chrome/browser/android/shortcut_helper.cc
@@ -16,7 +16,9 @@
#include "chrome/browser/android/tab_android.h"
#include "chrome/browser/favicon/favicon_service.h"
#include "chrome/browser/favicon/favicon_service_factory.h"
+#include "chrome/common/chrome_constants.h"
#include "chrome/common/render_messages.h"
+#include "chrome/common/web_application_info.h"
#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
@@ -44,38 +46,30 @@ ShortcutHelper::ShortcutHelper(JNIEnv* env,
: WebContentsObserver(web_contents),
java_ref_(env, obj),
url_(web_contents->GetURL()),
- shortcut_type_(BOOKMARK) {
+ web_app_capable_(WebApplicationInfo::MOBILE_CAPABLE_UNSPECIFIED) {
}
void ShortcutHelper::Initialize() {
// Send a message to the renderer to retrieve information about the page.
- Send(new ChromeViewMsg_RetrieveWebappInformation(routing_id(), url_));
+ Send(new ChromeViewMsg_GetWebApplicationInfo(routing_id()));
}
ShortcutHelper::~ShortcutHelper() {
}
-void ShortcutHelper::OnDidRetrieveWebappInformation(
- bool success,
- bool is_mobile_webapp_capable,
- bool is_apple_mobile_webapp_capable,
- const GURL& expected_url) {
- // This should silently fail.
- if (!success) {
- LOG(ERROR) << "Failed to parse webpage.";
- } else if (expected_url != url_) {
- LOG(ERROR) << "Unexpected URL returned.";
- }
+void ShortcutHelper::OnDidGetWebApplicationInfo(
+ const WebApplicationInfo& received_web_app_info) {
+ // Sanitize received_web_app_info.
+ WebApplicationInfo web_app_info = received_web_app_info;
+ web_app_info.title =
+ web_app_info.title.substr(0, chrome::kMaxMetaTagAttributeLength);
+ web_app_info.description =
+ web_app_info.description.substr(0, chrome::kMaxMetaTagAttributeLength);
- if (is_apple_mobile_webapp_capable && !is_mobile_webapp_capable) {
- shortcut_type_ = APP_SHORTCUT_APPLE;
- } else if (is_apple_mobile_webapp_capable || is_mobile_webapp_capable) {
- shortcut_type_ = APP_SHORTCUT;
- } else {
- shortcut_type_ = BOOKMARK;
- }
+ web_app_capable_ = web_app_info.mobile_capable;
- title_ = web_contents()->GetTitle();
+ title_ = web_app_info.title.empty() ? web_contents()->GetTitle()
+ : web_app_info.title;
JNIEnv* env = base::android::AttachCurrentThread();
ScopedJavaLocalRef<jobject> j_obj = java_ref_.get(env);
@@ -137,7 +131,7 @@ void ShortcutHelper::FinishAddingShortcut(
base::Bind(&ShortcutHelper::AddShortcutInBackground,
url_,
title_,
- shortcut_type_,
+ web_app_capable_,
icon_),
true);
@@ -148,8 +142,8 @@ bool ShortcutHelper::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(ShortcutHelper, message)
- IPC_MESSAGE_HANDLER(ChromeViewHostMsg_DidRetrieveWebappInformation,
- OnDidRetrieveWebappInformation)
+ IPC_MESSAGE_HANDLER(ChromeViewHostMsg_DidGetWebApplicationInfo,
+ OnDidGetWebApplicationInfo)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -167,7 +161,7 @@ bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) {
void ShortcutHelper::AddShortcutInBackground(
const GURL& url,
const base::string16& title,
- ShortcutType shortcut_type,
+ WebApplicationInfo::MobileCapable web_app_capable,
const favicon_base::FaviconRawBitmapResult& bitmap_result) {
DCHECK(base::WorkerPool::RunsTasksOnCurrentThread());
@@ -195,27 +189,28 @@ void ShortcutHelper::AddShortcutInBackground(
if (favicon_bitmap.getSize())
java_bitmap = gfx::ConvertToJavaBitmap(&favicon_bitmap);
- Java_ShortcutHelper_addShortcut(env,
- base::android::GetApplicationContext(),
- java_url.obj(),
- java_title.obj(),
- java_bitmap.obj(),
- r_value,
- g_value,
- b_value,
- shortcut_type != BOOKMARK);
+ Java_ShortcutHelper_addShortcut(
+ env,
+ base::android::GetApplicationContext(),
+ java_url.obj(),
+ java_title.obj(),
+ java_bitmap.obj(),
+ r_value,
+ g_value,
+ b_value,
+ web_app_capable != WebApplicationInfo::MOBILE_CAPABLE_UNSPECIFIED);
// Record what type of shortcut was added by the user.
- switch (shortcut_type) {
- case APP_SHORTCUT:
+ switch (web_app_capable) {
+ case WebApplicationInfo::MOBILE_CAPABLE:
content::RecordAction(
base::UserMetricsAction("webapps.AddShortcut.AppShortcut"));
break;
- case APP_SHORTCUT_APPLE:
+ case WebApplicationInfo::MOBILE_CAPABLE_APPLE:
content::RecordAction(
base::UserMetricsAction("webapps.AddShortcut.AppShortcutApple"));
break;
- case BOOKMARK:
+ case WebApplicationInfo::MOBILE_CAPABLE_UNSPECIFIED:
content::RecordAction(
base::UserMetricsAction("webapps.AddShortcut.Bookmark"));
break;
« no previous file with comments | « chrome/browser/android/shortcut_helper.h ('k') | chrome/browser/extensions/tab_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698