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); |