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..780752f310e6207c2591e6ef338f1a5f43211b02 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,35 @@ bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
return true; |
} |
+bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform, |
benwells
2015/05/11 08:08:39
Actually ... this probably shouldn't generate a 'n
dominickn (DO NOT USE)
2015/05/12 07:41:30
Done.
|
+ const std::string& id) { |
+ if (platform != kPlayPlatform) { |
+ banners::SendDebugMessage(web_contents(), |
+ "not shown: application not from Play platform"); |
+ return false; |
+ } else if (id.empty()) { |
benwells
2015/05/11 08:08:39
Nit: no else after return (and ditto later).
|
+ banners::SendDebugMessage(web_contents(), |
+ "not shown: application id is empty"); |
+ return false; |
+ } |
+ return true; |
+} |
+ |
+bool AppBannerManagerAndroid::CheckFetcherMatchesContents() { |
+ if (!data_fetcher()) { |
+ banners::SendDebugMessage(web_contents(), |
+ "not shown: data fetcher is not active"); |
benwells
2015/05/11 08:08:39
This error should be the same as the 'the user nav
dominickn (DO NOT USE)
2015/05/12 07:41:30
Done.
|
+ return false; |
+ } else if (!web_contents()) { |
+ return false; |
+ } else if (data_fetcher()->validated_url() != web_contents()->GetURL()) { |
+ banners::SendDebugMessage(web_contents(), |
+ "not shown: page URL does not match fetcher URL"); |
benwells
2015/05/11 08:08:39
Same, here, I think this only happens when the use
dominickn (DO NOT USE)
2015/05/12 07:41:30
Done.
|
+ return false; |
+ } |
+ return true; |
+} |
+ |
AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher( |
base::WeakPtr<Delegate> weak_delegate, |
const int ideal_icon_size) { |
@@ -84,10 +113,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); |