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