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

Unified Diff: chrome/browser/android/banners/app_banner_manager_android.cc

Issue 2259553002: Make AppBannerInfoBar install WebAPK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
Index: chrome/browser/android/banners/app_banner_manager_android.cc
diff --git a/chrome/browser/android/banners/app_banner_manager_android.cc b/chrome/browser/android/banners/app_banner_manager_android.cc
index b25d564d663b6d50cfd32691a46bfdb8d2285565..b19588a2afacb96f3b21d499c5a45523b5ca62aa 100644
--- a/chrome/browser/android/banners/app_banner_manager_android.cc
+++ b/chrome/browser/android/banners/app_banner_manager_android.cc
@@ -8,6 +8,7 @@
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
+#include "base/command_line.h"
#include "base/memory/ptr_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/android/banners/app_banner_infobar_delegate_android.h"
@@ -18,6 +19,7 @@
#include "chrome/browser/manifest/manifest_icon_selector.h"
#include "chrome/browser/ui/android/infobars/app_banner_infobar_android.h"
#include "chrome/common/chrome_constants.h"
+#include "chrome/common/chrome_switches.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/frame_navigate_params.h"
#include "jni/AppBannerManager_jni.h"
@@ -38,6 +40,12 @@ const char kReferrerName[] = "referrer";
const char kIdName[] = "id";
const char kPlayInlineReferrer[] = "playinline=chrome_inline";
+bool isWebApk(const GURL& start_url) {
+ const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
Xi Han 2016/08/19 12:50:09 I will change the command line check in another CL
+ bool enable_webapk = cmdline->HasSwitch(switches::kEnableWebApk);
+ return enable_webapk && start_url.SchemeIs("https");
+}
+
} // anonymous namespace
namespace banners {
@@ -177,17 +185,24 @@ void AppBannerManagerAndroid::ShowBanner() {
infobars::InfoBar* infobar = nullptr;
if (native_app_data_.is_null()) {
+ bool is_webapk = isWebApk(manifest_.start_url);
std::unique_ptr<AppBannerInfoBarDelegateAndroid> delegate(
new AppBannerInfoBarDelegateAndroid(
GetWeakPtr(), app_title_, manifest_url_, manifest_, icon_url_,
- std::move(icon_), event_request_id()));
+ std::move(icon_), event_request_id(), is_webapk));
infobar = new AppBannerInfoBarAndroid(std::move(delegate),
manifest_.start_url);
if (infobar) {
- RecordDidShowBanner("AppBanner.WebApp.Shown");
- TrackDisplayEvent(DISPLAY_EVENT_WEB_APP_BANNER_CREATED);
- ReportStatus(contents, SHOWING_WEB_APP_BANNER);
+ if (is_webapk) {
+ RecordDidShowBanner("AppBanner.WebApk.Shown");
+ TrackDisplayEvent(DISPLAY_EVENT_WEBAPK_BANNER_CREATED);
+ ReportStatus(contents, SHOWING_WEBAPK_BANNER);
+ } else {
+ RecordDidShowBanner("AppBanner.WebApp.Shown");
+ TrackDisplayEvent(DISPLAY_EVENT_WEB_APP_BANNER_CREATED);
+ ReportStatus(contents, SHOWING_WEB_APP_BANNER);
+ }
} else {
ReportStatus(contents, FAILED_TO_CREATE_BANNER);
}
« no previous file with comments | « chrome/browser/android/banners/app_banner_infobar_delegate_android.cc ('k') | chrome/browser/android/shortcut_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698