Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(730)

Unified Diff: chrome/browser/android/banners/app_banner_manager_android.cc

Issue 1569893003: Add "Request app banner" context menu in DevTools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Android support Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698