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

Side by Side Diff: chrome/browser/android/banners/app_banner_manager_android.cc

Issue 1129103003: Log messages regarding why app banners aren't displayed to the console (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Factoring out debug log message function Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/banners/app_banner_manager_android.h" 5 #include "chrome/browser/android/banners/app_banner_manager_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "chrome/browser/android/banners/app_banner_data_fetcher_android.h" 10 #include "chrome/browser/android/banners/app_banner_data_fetcher_android.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 jobject obj, 44 jobject obj,
45 jobject jweb_contents) { 45 jobject jweb_contents) {
46 content::WebContents* web_contents = 46 content::WebContents* web_contents =
47 content::WebContents::FromJavaWebContents(jweb_contents); 47 content::WebContents::FromJavaWebContents(jweb_contents);
48 AppBannerManager::ReplaceWebContents(web_contents); 48 AppBannerManager::ReplaceWebContents(web_contents);
49 } 49 }
50 50
51 bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform, 51 bool AppBannerManagerAndroid::HandleNonWebApp(const std::string& platform,
52 const GURL& url, 52 const GURL& url,
53 const std::string& id) { 53 const std::string& id) {
54 if (platform != kPlayPlatform || id.empty()) 54 if (!CheckPlatformAndId(platform, id))
55 return false; 55 return false;
56 56
57 banners::TrackDisplayEvent(DISPLAY_EVENT_BANNER_REQUESTED); 57 banners::TrackDisplayEvent(DISPLAY_EVENT_BANNER_REQUESTED);
58 58
59 // Send the info to the Java side to get info about the app. 59 // Send the info to the Java side to get info about the app.
60 JNIEnv* env = base::android::AttachCurrentThread(); 60 JNIEnv* env = base::android::AttachCurrentThread();
61 ScopedJavaLocalRef<jobject> jobj = weak_java_banner_view_manager_.get(env); 61 ScopedJavaLocalRef<jobject> jobj = weak_java_banner_view_manager_.get(env);
62 if (jobj.is_null()) 62 if (jobj.is_null())
63 return false; 63 return false;
64 64
65 ScopedJavaLocalRef<jstring> jurl( 65 ScopedJavaLocalRef<jstring> jurl(
66 ConvertUTF8ToJavaString(env, data_fetcher()->validated_url().spec())); 66 ConvertUTF8ToJavaString(env, data_fetcher()->validated_url().spec()));
67 ScopedJavaLocalRef<jstring> jpackage( 67 ScopedJavaLocalRef<jstring> jpackage(
68 ConvertUTF8ToJavaString(env, id)); 68 ConvertUTF8ToJavaString(env, id));
69 Java_AppBannerManager_fetchAppDetails( 69 Java_AppBannerManager_fetchAppDetails(
70 env, jobj.obj(), jurl.obj(), jpackage.obj(), ideal_icon_size()); 70 env, jobj.obj(), jurl.obj(), jpackage.obj(), ideal_icon_size());
71 return true; 71 return true;
72 } 72 }
73 73
74 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.
75 const std::string& id) {
76 if (platform != kPlayPlatform) {
77 banners::SendDebugMessage(web_contents(),
78 "not shown: application not from Play platform");
79 return false;
80 } else if (id.empty()) {
benwells 2015/05/11 08:08:39 Nit: no else after return (and ditto later).
81 banners::SendDebugMessage(web_contents(),
82 "not shown: application id is empty");
83 return false;
84 }
85 return true;
86 }
87
88 bool AppBannerManagerAndroid::CheckFetcherMatchesContents() {
89 if (!data_fetcher()) {
90 banners::SendDebugMessage(web_contents(),
91 "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.
92 return false;
93 } else if (!web_contents()) {
94 return false;
95 } else if (data_fetcher()->validated_url() != web_contents()->GetURL()) {
96 banners::SendDebugMessage(web_contents(),
97 "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.
98 return false;
99 }
100 return true;
101 }
102
74 AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher( 103 AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher(
75 base::WeakPtr<Delegate> weak_delegate, 104 base::WeakPtr<Delegate> weak_delegate,
76 const int ideal_icon_size) { 105 const int ideal_icon_size) {
77 return new AppBannerDataFetcherAndroid(web_contents(), weak_delegate, 106 return new AppBannerDataFetcherAndroid(web_contents(), weak_delegate,
78 ideal_icon_size); 107 ideal_icon_size);
79 } 108 }
80 109
81 bool AppBannerManagerAndroid::OnAppDetailsRetrieved(JNIEnv* env, 110 bool AppBannerManagerAndroid::OnAppDetailsRetrieved(JNIEnv* env,
82 jobject obj, 111 jobject obj,
83 jobject japp_data, 112 jobject japp_data,
84 jstring japp_title, 113 jstring japp_title,
85 jstring japp_package, 114 jstring japp_package,
86 jstring jicon_url) { 115 jstring jicon_url) {
87 if (!data_fetcher() || !web_contents() 116 if (!CheckFetcherMatchesContents())
88 || data_fetcher()->validated_url() != web_contents()->GetURL()) {
89 return false; 117 return false;
90 }
91 118
92 base::android::ScopedJavaLocalRef<jobject> native_app_data; 119 base::android::ScopedJavaLocalRef<jobject> native_app_data;
93 native_app_data.Reset(env, japp_data); 120 native_app_data.Reset(env, japp_data);
94 GURL image_url = GURL(ConvertJavaStringToUTF8(env, jicon_url)); 121 GURL image_url = GURL(ConvertJavaStringToUTF8(env, jicon_url));
95 122
96 AppBannerDataFetcherAndroid* android_fetcher = 123 AppBannerDataFetcherAndroid* android_fetcher =
97 static_cast<AppBannerDataFetcherAndroid*>(data_fetcher().get()); 124 static_cast<AppBannerDataFetcherAndroid*>(data_fetcher().get());
98 return android_fetcher->ContinueFetching( 125 return android_fetcher->ContinueFetching(
99 ConvertJavaStringToUTF16(env, japp_title), 126 ConvertJavaStringToUTF16(env, japp_title),
100 ConvertJavaStringToUTF8(env, japp_package), 127 ConvertJavaStringToUTF8(env, japp_package),
(...skipping 21 matching lines...) Expand all
122 149
123 void DisableSecureSchemeCheckForTesting(JNIEnv* env, jclass clazz) { 150 void DisableSecureSchemeCheckForTesting(JNIEnv* env, jclass clazz) {
124 AppBannerManager::DisableSecureSchemeCheckForTesting(); 151 AppBannerManager::DisableSecureSchemeCheckForTesting();
125 } 152 }
126 153
127 jboolean IsEnabled(JNIEnv* env, jclass clazz) { 154 jboolean IsEnabled(JNIEnv* env, jclass clazz) {
128 return AppBannerManager::IsEnabled(); 155 return AppBannerManager::IsEnabled();
129 } 156 }
130 157
131 } // namespace banners 158 } // namespace banners
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698