Chromium Code Reviews| Index: chrome/browser/android/banners/app_banner_manager_android.cc |
| diff --git a/chrome/browser/android/banners/app_banner_manager_android.cc b/chrome/browser/android/banners/app_banner_manager_android.cc |
| index 829b0b019296829cc6feabd9b4eaf49d56749ae7..a84a811eae9a527671ae6474c96f2830afef3303 100644 |
| --- a/chrome/browser/android/banners/app_banner_manager_android.cc |
| +++ b/chrome/browser/android/banners/app_banner_manager_android.cc |
| @@ -51,7 +51,7 @@ void AppBannerManagerAndroid::ReplaceWebContents(JNIEnv* env, |
| bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
| const GURL& url, |
| const std::string& id) { |
| - if (platform != kPlayPlatform || id.empty()) |
| + if (!CheckPlatformAndId(platform, id)) |
| return false; |
| banners::TrackDisplayEvent(DISPLAY_EVENT_BANNER_REQUESTED); |
| @@ -71,6 +71,33 @@ bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
| return true; |
| } |
| +bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform, |
| + const std::string& id) { |
| + if (platform != kPlayPlatform) { |
| + banners::OutputDeveloperDebugMessage( |
| + web_contents(), platform + banners::kIgnoredNotSupportedOnAndroid); |
| + return false; |
| + } else if (id.empty()) { |
|
benwells
2015/05/13 02:55:20
Nit (here and elsewhere): no else after return.
dominickn (DO NOT USE)
2015/05/13 03:08:06
Done.
|
| + banners::OutputDeveloperDebugMessage(web_contents(), banners::kIgnoredNoId); |
| + return false; |
| + } else { |
| + return true; |
| + } |
| +} |
| + |
| +bool AppBannerManagerAndroid::CheckFetcherMatchesContents() { |
| + if (!web_contents()) { |
| + return false; |
| + } else if (!data_fetcher() || |
| + data_fetcher()->validated_url() != web_contents()->GetURL()) { |
| + banners::OutputDeveloperNotShownMessage( |
| + web_contents(), banners::kUserNavigatedBeforeBannerShown); |
| + return false; |
| + } else { |
| + return true; |
| + } |
| +} |
| + |
| AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher( |
| base::WeakPtr<Delegate> weak_delegate, |
| const int ideal_icon_size) { |
| @@ -84,10 +111,8 @@ bool AppBannerManagerAndroid::OnAppDetailsRetrieved(JNIEnv* env, |
| jstring japp_title, |
| jstring japp_package, |
| jstring jicon_url) { |
| - if (!data_fetcher() || !web_contents() |
| - || data_fetcher()->validated_url() != web_contents()->GetURL()) { |
| + if (!CheckFetcherMatchesContents()) |
| return false; |
| - } |
| base::android::ScopedJavaLocalRef<jobject> native_app_data; |
| native_app_data.Reset(env, japp_data); |