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

Unified Diff: chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc

Issue 2379783002: Instant App Banner logic. (Closed)
Patch Set: Fixing tests. Created 4 years, 2 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/instantapps/instant_apps_infobar_delegate.cc
diff --git a/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc b/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc
index 7384076a81ab4514066988951de6715cb038cc55..4e993ccc18f5c05931b8720be64aea1dbe5e34c8 100644
--- a/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc
+++ b/chrome/browser/android/instantapps/instant_apps_infobar_delegate.cc
@@ -8,6 +8,7 @@
#include "base/android/jni_string.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/user_metrics.h"
+#include "chrome/browser/android/instantapps/instant_apps_settings.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/ui/android/infobars/instant_apps_infobar.h"
#include "components/infobars/core/infobar_delegate.h"
@@ -18,15 +19,16 @@ InstantAppsInfoBarDelegate::~InstantAppsInfoBarDelegate() {}
// static
void InstantAppsInfoBarDelegate::Create(InfoBarService* infobar_service,
- jobject jdata) {
+ const jobject jdata,
+ const std::string& url) {
infobar_service->AddInfoBar(base::MakeUnique<InstantAppsInfoBar>(
std::unique_ptr<InstantAppsInfoBarDelegate>(
- new InstantAppsInfoBarDelegate(jdata))));
- base::RecordAction(base::UserMetricsAction(
- "Android.InstantApps.BannerShown"));
+ new InstantAppsInfoBarDelegate(jdata, url))));
}
-InstantAppsInfoBarDelegate::InstantAppsInfoBarDelegate(jobject jdata) {
+InstantAppsInfoBarDelegate::InstantAppsInfoBarDelegate(const jobject jdata,
+ const std::string& url)
+ : url_(url) {
JNIEnv* env = base::android::AttachCurrentThread();
java_delegate_.Reset(Java_InstantAppsInfoBarDelegate_create(env));
data_.Reset(env, jdata);
@@ -59,6 +61,9 @@ bool InstantAppsInfoBarDelegate::EqualsDelegate(
void InstantAppsInfoBarDelegate::InfoBarDismissed() {
+ content::WebContents* web_contents =
+ InfoBarService::WebContentsFromInfoBar(infobar());
+ InstantAppsSettings::RecordInfoBarDismissEvent(web_contents, url_);
base::RecordAction(base::UserMetricsAction(
"Android.InstantApps.BannerDismissed"));
}
@@ -66,11 +71,17 @@ void InstantAppsInfoBarDelegate::InfoBarDismissed() {
void Launch(JNIEnv* env,
const base::android::JavaParamRef<jclass>& clazz,
const base::android::JavaParamRef<jobject>& jweb_contents,
- const base::android::JavaParamRef<jobject>& jdata) {
+ const base::android::JavaParamRef<jobject>& jdata,
+ const base::android::JavaParamRef<jstring>& jurl) {
auto web_contents = content::WebContents::FromJavaWebContents(jweb_contents);
+ std::string url(base::android::ConvertJavaStringToUTF8(env, jurl));
InstantAppsInfoBarDelegate::Create(
InfoBarService::FromWebContents(web_contents),
- jdata);
+ jdata,
+ url);
+ InstantAppsSettings::RecordInfoBarShowEvent(web_contents, url);
+ base::RecordAction(base::UserMetricsAction(
+ "Android.InstantApps.BannerShown"));
}
bool RegisterInstantAppsInfoBarDelegate(JNIEnv* env) {

Powered by Google App Engine
This is Rietveld 408576698