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 36b4045e8876af1e3bc75535891683b2ead6c8eb..2b93374f3edc757704b36b8c32ec417c3036d83f 100644 |
| --- a/chrome/browser/android/banners/app_banner_manager_android.cc |
| +++ b/chrome/browser/android/banners/app_banner_manager_android.cc |
| @@ -10,6 +10,7 @@ |
| #include "chrome/browser/android/shortcut_helper.h" |
| #include "chrome/browser/banners/app_banner_metrics.h" |
| #include "chrome/common/chrome_constants.h" |
| +#include "content/public/browser/render_frame_host.h" |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/common/frame_navigate_params.h" |
| #include "jni/AppBannerManager_jni.h" |
| @@ -56,8 +57,9 @@ void AppBannerManagerAndroid::ReplaceWebContents( |
| bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
| const GURL& url, |
| - const std::string& id) { |
| - if (!CheckPlatformAndId(platform, id)) |
| + const std::string& id, |
| + bool is_debug_mode) { |
| + if (!CheckPlatformAndId(platform, id, is_debug_mode)) |
| return false; |
| banners::TrackDisplayEvent(DISPLAY_EVENT_NATIVE_APP_BANNER_REQUESTED); |
| @@ -70,8 +72,8 @@ bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
| std::string id_from_app_url = ExtractQueryValueForName(url, kIdName); |
| if (id_from_app_url.size() && id != id_from_app_url) { |
| - banners::OutputDeveloperDebugMessage(web_contents(), |
| - banners::kIgnoredIdsDoNotMatch); |
| + banners::OutputDeveloperDebugMessage( |
| + web_contents(), banners::kIgnoredIdsDoNotMatch, is_debug_mode); |
| return false; |
| } |
| @@ -99,27 +101,31 @@ bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, |
| } |
| bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform, |
| - const std::string& id) { |
| + const std::string& id, |
| + bool is_debug_mode) { |
| if (platform != kPlayPlatform) { |
| banners::OutputDeveloperDebugMessage( |
| - web_contents(), platform + banners::kIgnoredNotSupportedOnAndroid); |
| + web_contents(), platform + banners::kIgnoredNotSupportedOnAndroid, |
| + is_debug_mode); |
| return false; |
| } |
| if (id.empty()) { |
| - banners::OutputDeveloperDebugMessage(web_contents(), banners::kIgnoredNoId); |
| + banners::OutputDeveloperDebugMessage(web_contents(), banners::kIgnoredNoId, |
| + is_debug_mode); |
| return false; |
| } |
| return true; |
| } |
| -bool AppBannerManagerAndroid::CheckFetcherMatchesContents() { |
| +bool AppBannerManagerAndroid::CheckFetcherMatchesContents(bool is_debug_mode) { |
| if (!web_contents()) |
| return false; |
| if (!data_fetcher() || |
| data_fetcher()->validated_url() != web_contents()->GetURL()) { |
| banners::OutputDeveloperNotShownMessage( |
| - web_contents(), banners::kUserNavigatedBeforeBannerShown); |
| + web_contents(), banners::kUserNavigatedBeforeBannerShown, |
| + is_debug_mode); |
| return false; |
| } |
| return true; |
| @@ -142,14 +148,14 @@ std::string AppBannerManagerAndroid::ExtractQueryValueForName( |
| } |
| AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher( |
| - base::WeakPtr<Delegate> weak_delegate) { |
| + base::WeakPtr<Delegate> weak_delegate, |
| + bool is_debug_mode) { |
| return new AppBannerDataFetcherAndroid( |
| - web_contents(), |
| - weak_delegate, |
| + web_contents(), weak_delegate, |
| ShortcutHelper::GetIdealHomescreenIconSizeInDp(), |
| ShortcutHelper::GetMinimumHomescreenIconSizeInDp(), |
| ShortcutHelper::GetIdealSplashImageSizeInDp(), |
| - ShortcutHelper::GetMinimumSplashImageSizeInDp()); |
| + ShortcutHelper::GetMinimumSplashImageSizeInDp(), is_debug_mode); |
| } |
| bool AppBannerManagerAndroid::OnAppDetailsRetrieved( |
| @@ -159,13 +165,13 @@ bool AppBannerManagerAndroid::OnAppDetailsRetrieved( |
| const JavaParamRef<jstring>& japp_title, |
| const JavaParamRef<jstring>& japp_package, |
| const JavaParamRef<jstring>& jicon_url) { |
| - if (!CheckFetcherMatchesContents()) |
| + AppBannerDataFetcherAndroid* android_fetcher = |
| + static_cast<AppBannerDataFetcherAndroid*>(data_fetcher().get()); |
| + if (!CheckFetcherMatchesContents(android_fetcher->is_debug_mode())) |
| return false; |
| GURL image_url = GURL(ConvertJavaStringToUTF8(env, jicon_url)); |
| - AppBannerDataFetcherAndroid* android_fetcher = |
| - static_cast<AppBannerDataFetcherAndroid*>(data_fetcher().get()); |
| return android_fetcher->ContinueFetching( |
| ConvertJavaStringToUTF16(env, japp_title), |
| ConvertJavaStringToUTF8(env, japp_package), japp_data, image_url); |
| @@ -177,6 +183,13 @@ bool AppBannerManagerAndroid::IsFetcherActive( |
| return AppBannerManager::IsFetcherActive(); |
| } |
| +void AppBannerManagerAndroid::OpenAppBanner(JNIEnv* env, |
| + const JavaParamRef<jobject>& obj) { |
| + content::RenderFrameHost* frame = web_contents()->GetMainFrame(); |
| + AppBannerManager::TriggerAppBannerFetch(frame, frame->GetLastCommittedURL(), |
| + true); |
|
dominickn
2016/01/17 23:20:18
Nit: could you call this as:
AppBannerManager::T
horo
2016/01/18 06:28:56
Done.
|
| +} |
| + |
| // static |
| bool AppBannerManagerAndroid::Register(JNIEnv* env) { |
| return RegisterNativesImpl(env); |