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) { |