| Index: chrome/browser/android/banners/app_banner_manager.cc
|
| diff --git a/chrome/browser/android/banners/app_banner_manager.cc b/chrome/browser/android/banners/app_banner_manager.cc
|
| index b3f1f565a84e9d924593074472abcee91177f957..b510b9e414befdb2dfb0f67d5f6c60f8238f80d4 100644
|
| --- a/chrome/browser/android/banners/app_banner_manager.cc
|
| +++ b/chrome/browser/android/banners/app_banner_manager.cc
|
| @@ -17,6 +17,7 @@
|
| #include "chrome/browser/banners/app_banner_settings_helper.h"
|
| #include "chrome/browser/bitmap_fetcher/bitmap_fetcher.h"
|
| #include "chrome/browser/infobars/infobar_service.h"
|
| +#include "chrome/browser/metrics/rappor/sampling.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/chrome_constants.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -237,8 +238,13 @@ void AppBannerManager::OnFetchComplete(BannerBitmapFetcher* fetcher,
|
| return;
|
| fetcher_ = nullptr;
|
|
|
| - if (!bitmap || url != app_icon_url_)
|
| + if (!web_contents()
|
| + || web_contents()->IsBeingDestroyed()
|
| + || validated_url_ != web_contents()->GetURL()
|
| + || !bitmap
|
| + || url != app_icon_url_) {
|
| return;
|
| + }
|
|
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| ScopedJavaLocalRef<jobject> jobj = weak_java_banner_view_manager_.get(env);
|
| @@ -259,6 +265,9 @@ void AppBannerManager::OnFetchComplete(BannerBitmapFetcher* fetcher,
|
| new SkBitmap(*bitmap),
|
| native_app_data_,
|
| native_app_package_);
|
| +
|
| + rappor::SampleDomainAndRegistryFromGURL("AppBanner.NativeApp.Shown",
|
| + web_contents()->GetURL());
|
| } else if (!web_app_data_.IsEmpty()){
|
| RecordCouldShowBanner(web_app_data_.start_url.spec());
|
| if (!CheckIfShouldShow(web_app_data_.start_url.spec()))
|
| @@ -269,6 +278,9 @@ void AppBannerManager::OnFetchComplete(BannerBitmapFetcher* fetcher,
|
| app_title_,
|
| new SkBitmap(*bitmap),
|
| web_app_data_);
|
| +
|
| + rappor::SampleDomainAndRegistryFromGURL("AppBanner.WebApp.Shown",
|
| + web_contents()->GetURL());
|
| }
|
|
|
| if (weak_infobar_ptr != nullptr)
|
|
|