| 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 2ece59fd98d3ec1995e1d9ff16086f85d2771c85..99d9b315c3a1b43ae201d7631b994376cac01e6b 100644
|
| --- a/chrome/browser/android/banners/app_banner_manager.cc
|
| +++ b/chrome/browser/android/banners/app_banner_manager.cc
|
| @@ -69,7 +69,9 @@ void AppBannerManager::BlockBanner(JNIEnv* env,
|
|
|
| GURL url(ConvertJavaStringToUTF8(env, jurl));
|
| std::string package_name = ConvertJavaStringToUTF8(env, jpackage);
|
| - AppBannerSettingsHelper::Block(web_contents(), url, package_name);
|
| + AppBannerSettingsHelper::RecordBannerEvent(
|
| + web_contents(), url, package_name,
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, base::Time::Now());
|
| }
|
|
|
| void AppBannerManager::Block() const {
|
| @@ -77,9 +79,10 @@ void AppBannerManager::Block() const {
|
| return;
|
|
|
| if (!web_app_data_.IsEmpty()) {
|
| - AppBannerSettingsHelper::Block(web_contents(),
|
| - web_contents()->GetURL(),
|
| - web_app_data_.start_url.spec());
|
| + AppBannerSettingsHelper::RecordBannerEvent(
|
| + web_contents(), web_contents()->GetURL(),
|
| + web_app_data_.start_url.spec(),
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, base::Time::Now());
|
| }
|
| }
|
|
|
| @@ -92,6 +95,12 @@ bool AppBannerManager::OnButtonClicked() const {
|
| return true;
|
|
|
| if (!web_app_data_.IsEmpty()) {
|
| + AppBannerSettingsHelper::RecordBannerEvent(
|
| + web_contents(), web_contents()->GetURL(),
|
| + web_app_data_.start_url.spec(),
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN,
|
| + base::Time::Now());
|
| +
|
| InstallManifestApp(web_app_data_, *app_icon_.get());
|
| return true;
|
| }
|
| @@ -183,10 +192,35 @@ void AppBannerManager::OnDidCheckHasServiceWorker(bool has_service_worker) {
|
| if (icon_url.is_empty())
|
| return;
|
|
|
| + RecordCouldShowBanner(web_app_data_.start_url.spec());
|
| + if (!CheckIfShouldShow(web_app_data_.start_url.spec()))
|
| + return;
|
| +
|
| FetchIcon(icon_url);
|
| }
|
| }
|
|
|
| +void AppBannerManager::RecordCouldShowBanner(
|
| + const std::string& package_or_start_url) {
|
| + AppBannerSettingsHelper::RecordBannerEvent(
|
| + web_contents(), validated_url_, package_or_start_url,
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_COULD_SHOW, base::Time::Now());
|
| +}
|
| +
|
| +bool AppBannerManager::CheckIfShouldShow(
|
| + const std::string& package_or_start_url) {
|
| + if (!AppBannerSettingsHelper::ShouldShowBanner(web_contents(), validated_url_,
|
| + package_or_start_url,
|
| + base::Time::Now())) {
|
| + return false;
|
| + }
|
| +
|
| + AppBannerSettingsHelper::RecordBannerEvent(
|
| + web_contents(), validated_url_, package_or_start_url,
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, base::Time::Now());
|
| + return true;
|
| +}
|
| +
|
| bool AppBannerManager::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(AppBannerManager, message)
|
| @@ -237,11 +271,9 @@ void AppBannerManager::OnDidRetrieveMetaTagContent(
|
|
|
| banners::TrackDisplayEvent(DISPLAY_BANNER_REQUESTED);
|
|
|
| - if (!AppBannerSettingsHelper::IsAllowed(web_contents(),
|
| - expected_url,
|
| - tag_content)) {
|
| + RecordCouldShowBanner(tag_content);
|
| + if (!CheckIfShouldShow(tag_content))
|
| return;
|
| - }
|
|
|
| // Send the info to the Java side to get info about the app.
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
|
|