Chromium Code Reviews| Index: chrome/browser/android/banners/app_banner_infobar_delegate_android.cc |
| diff --git a/chrome/browser/android/banners/app_banner_infobar_delegate_android.cc b/chrome/browser/android/banners/app_banner_infobar_delegate_android.cc |
| index 462392375f785e004ca991ff1226f55d891e3002..ff358df4f3441c8dbc3ba4a1d181486946f4f214 100644 |
| --- a/chrome/browser/android/banners/app_banner_infobar_delegate_android.cc |
| +++ b/chrome/browser/android/banners/app_banner_infobar_delegate_android.cc |
| @@ -114,13 +114,15 @@ AppBannerInfoBarDelegateAndroid::~AppBannerInfoBarDelegateAndroid() { |
| if (!native_app_data_.is_null()) { |
| TrackUserResponse(USER_RESPONSE_NATIVE_APP_IGNORED); |
| } else { |
| - TrackUserResponse(USER_RESPONSE_WEB_APP_IGNORED); |
| + if (TriggeredFromBanner()) |
| + TrackUserResponse(USER_RESPONSE_WEB_APP_IGNORED); |
| if (is_webapk_) |
| webapk::TrackInstallEvent(webapk::INFOBAR_IGNORED); |
| } |
| } |
| - TrackDismissEvent(DISMISS_EVENT_DISMISSED); |
| + if (TriggeredFromBanner()) |
| + TrackDismissEvent(DISMISS_EVENT_DISMISSED); |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| Java_AppBannerInfoBarDelegateAndroid_destroy(env, java_delegate_); |
| java_delegate_.Reset(); |
| @@ -184,7 +186,8 @@ bool AppBannerInfoBarDelegateAndroid::Accept() { |
| content::WebContents* web_contents = |
| InfoBarService::WebContentsFromInfoBar(infobar()); |
| if (!web_contents) { |
| - TrackDismissEvent(DISMISS_EVENT_ERROR); |
| + if (TriggeredFromBanner()) |
| + TrackDismissEvent(DISMISS_EVENT_ERROR); |
| return true; |
| } |
| @@ -322,14 +325,17 @@ bool AppBannerInfoBarDelegateAndroid::AcceptWebApk( |
| return true; |
| } |
|
pkotwicz
2016/11/04 01:34:33
Nit: Move the comment on lines 337 - 338 here. The
dominickn
2016/11/04 01:44:51
Done.
|
| - // If the WebAPK is not installed and the "Add to Home Screen" button is |
| - // clicked, install the WebAPK. |
| + if (TriggeredFromBanner()) { |
| + TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); |
| + AppBannerSettingsHelper::RecordBannerInstallEvent( |
| + web_contents, shortcut_info_->url.spec(), AppBannerSettingsHelper::WEB); |
| + } |
| + |
| install_state_ = INSTALLING; |
| - TrackUserResponse(USER_RESPONSE_WEB_APP_ACCEPTED); |
| webapk::TrackInstallSource(webapk_install_source_); |
| - AppBannerSettingsHelper::RecordBannerInstallEvent( |
| - web_contents, shortcut_info_->url.spec(), AppBannerSettingsHelper::WEB); |
| + // If the WebAPK is not installed and the "Add to Home Screen" button is |
| + // clicked, install the WebAPK. |
| Java_AppBannerInfoBarDelegateAndroid_setWebApkInstallingState( |
| env, java_delegate_, true); |
| UpdateInstallState(env, nullptr); |
| @@ -346,8 +352,12 @@ bool AppBannerInfoBarDelegateAndroid::AcceptWebApk( |
| return false; |
| } |
| +bool AppBannerInfoBarDelegateAndroid::TriggeredFromBanner() const { |
| + return !is_webapk_ || webapk_install_source_ == webapk::INSTALL_SOURCE_BANNER; |
| +} |
| + |
| void AppBannerInfoBarDelegateAndroid::SendBannerAccepted() { |
| - if (weak_manager_) |
| + if (weak_manager_ && TriggeredFromBanner()) |
| weak_manager_->SendBannerAccepted(event_request_id_); |
| } |
| @@ -399,15 +409,18 @@ void AppBannerInfoBarDelegateAndroid::InfoBarDismissed() { |
| content::WebContents* web_contents = |
| InfoBarService::WebContentsFromInfoBar(infobar()); |
| - if (weak_manager_) |
| + if (weak_manager_ && TriggeredFromBanner()) |
| weak_manager_->SendBannerDismissed(event_request_id_); |
| if (native_app_data_.is_null()) { |
| if (is_webapk_) |
| TrackWebApkInstallationDismissEvents(install_state_); |
| - TrackUserResponse(USER_RESPONSE_WEB_APP_DISMISSED); |
| - AppBannerSettingsHelper::RecordBannerDismissEvent( |
| - web_contents, shortcut_info_->url.spec(), AppBannerSettingsHelper::WEB); |
| + if (TriggeredFromBanner()) { |
| + TrackUserResponse(USER_RESPONSE_WEB_APP_DISMISSED); |
| + AppBannerSettingsHelper::RecordBannerDismissEvent( |
| + web_contents, shortcut_info_->url.spec(), |
| + AppBannerSettingsHelper::WEB); |
| + } |
| } else { |
| TrackUserResponse(USER_RESPONSE_NATIVE_APP_DISMISSED); |
| AppBannerSettingsHelper::RecordBannerDismissEvent( |