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

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

Issue 1308533006: webapps: allow callers of icon downloader/selector to specify a minimum size (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webapps-splashscreen-icon
Patch Set: Fix test failure Created 5 years, 3 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 "chrome/browser/android/banners/app_banner_data_fetcher_android.h" 9 #include "chrome/browser/android/banners/app_banner_data_fetcher_android.h"
10 #include "chrome/browser/android/shortcut_helper.h"
10 #include "chrome/browser/banners/app_banner_metrics.h" 11 #include "chrome/browser/banners/app_banner_metrics.h"
11 #include "chrome/common/chrome_constants.h" 12 #include "chrome/common/chrome_constants.h"
12 #include "content/public/browser/web_contents.h" 13 #include "content/public/browser/web_contents.h"
13 #include "content/public/common/frame_navigate_params.h" 14 #include "content/public/common/frame_navigate_params.h"
14 #include "jni/AppBannerManager_jni.h" 15 #include "jni/AppBannerManager_jni.h"
15 16
16 using base::android::ConvertJavaStringToUTF8; 17 using base::android::ConvertJavaStringToUTF8;
17 using base::android::ConvertJavaStringToUTF16; 18 using base::android::ConvertJavaStringToUTF16;
18 using base::android::ConvertUTF8ToJavaString; 19 using base::android::ConvertUTF8ToJavaString;
19 using base::android::ConvertUTF16ToJavaString; 20 using base::android::ConvertUTF16ToJavaString;
20 21
21 namespace { 22 namespace {
22 23
23 const char kPlayPlatform[] = "play"; 24 const char kPlayPlatform[] = "play";
24 const char kReferrerName[] = "referrer"; 25 const char kReferrerName[] = "referrer";
25 const char kIdName[] = "id"; 26 const char kIdName[] = "id";
26 const char kPlayInlineReferrer[] = "playinline=chrome_inline"; 27 const char kPlayInlineReferrer[] = "playinline=chrome_inline";
27 28
28 } // anonymous namespace 29 } // anonymous namespace
29 30
30 namespace banners { 31 namespace banners {
31 32
32 AppBannerManagerAndroid::AppBannerManagerAndroid( 33 AppBannerManagerAndroid::AppBannerManagerAndroid(
33 JNIEnv* env, 34 JNIEnv* env,
34 jobject obj, 35 jobject obj)
35 int ideal_splash_image_size_in_dp, 36 : AppBannerManager(),
36 int ideal_icon_size_in_dp)
37 : AppBannerManager(ideal_icon_size_in_dp),
38 ideal_splash_image_size_in_dp_(ideal_splash_image_size_in_dp),
39 weak_java_banner_view_manager_(env, obj) { 37 weak_java_banner_view_manager_(env, obj) {
40 } 38 }
41 39
42 AppBannerManagerAndroid::~AppBannerManagerAndroid() { 40 AppBannerManagerAndroid::~AppBannerManagerAndroid() {
43 } 41 }
44 42
45 void AppBannerManagerAndroid::Destroy(JNIEnv* env, jobject obj) { 43 void AppBannerManagerAndroid::Destroy(JNIEnv* env, jobject obj) {
46 delete this; 44 delete this;
47 } 45 }
48 46
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 referrer = kPlayInlineReferrer; 82 referrer = kPlayInlineReferrer;
85 else 83 else
86 referrer.append("&").append(kPlayInlineReferrer); 84 referrer.append("&").append(kPlayInlineReferrer);
87 85
88 ScopedJavaLocalRef<jstring> jurl( 86 ScopedJavaLocalRef<jstring> jurl(
89 ConvertUTF8ToJavaString(env, data_fetcher()->validated_url().spec())); 87 ConvertUTF8ToJavaString(env, data_fetcher()->validated_url().spec()));
90 ScopedJavaLocalRef<jstring> jpackage( 88 ScopedJavaLocalRef<jstring> jpackage(
91 ConvertUTF8ToJavaString(env, id)); 89 ConvertUTF8ToJavaString(env, id));
92 ScopedJavaLocalRef<jstring> jreferrer( 90 ScopedJavaLocalRef<jstring> jreferrer(
93 ConvertUTF8ToJavaString(env, referrer)); 91 ConvertUTF8ToJavaString(env, referrer));
94 Java_AppBannerManager_fetchAppDetails(env, jobj.obj(), jurl.obj(), 92 Java_AppBannerManager_fetchAppDetails(
95 jpackage.obj(), jreferrer.obj(), 93 env, jobj.obj(), jurl.obj(),
96 ideal_icon_size_in_dp()); 94 jpackage.obj(), jreferrer.obj(),
95 ShortcutHelper::GetIdealHomescreenIconSizeInDp());
97 return true; 96 return true;
98 } 97 }
99 98
100 bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform, 99 bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform,
101 const std::string& id) { 100 const std::string& id) {
102 if (platform != kPlayPlatform) { 101 if (platform != kPlayPlatform) {
103 banners::OutputDeveloperDebugMessage( 102 banners::OutputDeveloperDebugMessage(
104 web_contents(), platform + banners::kIgnoredNotSupportedOnAndroid); 103 web_contents(), platform + banners::kIgnoredNotSupportedOnAndroid);
105 return false; 104 return false;
106 } 105 }
(...skipping 27 matching lines...) Expand all
134 while (url::ExtractQueryKeyValue(url_spec, &query, &key, &value)) { 133 while (url::ExtractQueryKeyValue(url_spec, &query, &key, &value)) {
135 std::string key_str(url_spec, key.begin, key.len); 134 std::string key_str(url_spec, key.begin, key.len);
136 std::string value_str(url_spec, value.begin, value.len); 135 std::string value_str(url_spec, value.begin, value.len);
137 if (key_str == name) 136 if (key_str == name)
138 return value_str; 137 return value_str;
139 } 138 }
140 return ""; 139 return "";
141 } 140 }
142 141
143 AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher( 142 AppBannerDataFetcher* AppBannerManagerAndroid::CreateAppBannerDataFetcher(
144 base::WeakPtr<Delegate> weak_delegate, 143 base::WeakPtr<Delegate> weak_delegate) {
145 const int ideal_icon_size_in_dp) { 144 return new AppBannerDataFetcherAndroid(
146 return new AppBannerDataFetcherAndroid(web_contents(), weak_delegate, 145 web_contents(),
147 ideal_splash_image_size_in_dp_, 146 weak_delegate,
148 ideal_icon_size_in_dp); 147 ShortcutHelper::GetIdealHomescreenIconSizeInDp(),
148 ShortcutHelper::GetMinimumHomescreenIconSizeInDp(),
149 ShortcutHelper::GetIdealSplashImageSizeInDp(),
150 ShortcutHelper::GetMinimumSplashImageSizeInDp());
149 } 151 }
150 152
151 bool AppBannerManagerAndroid::OnAppDetailsRetrieved(JNIEnv* env, 153 bool AppBannerManagerAndroid::OnAppDetailsRetrieved(JNIEnv* env,
152 jobject obj, 154 jobject obj,
153 jobject japp_data, 155 jobject japp_data,
154 jstring japp_title, 156 jstring japp_title,
155 jstring japp_package, 157 jstring japp_package,
156 jstring jicon_url) { 158 jstring jicon_url) {
157 if (!CheckFetcherMatchesContents()) 159 if (!CheckFetcherMatchesContents())
158 return false; 160 return false;
(...skipping 13 matching lines...) Expand all
172 bool AppBannerManagerAndroid::IsFetcherActive(JNIEnv* env, jobject obj) { 174 bool AppBannerManagerAndroid::IsFetcherActive(JNIEnv* env, jobject obj) {
173 return AppBannerManager::IsFetcherActive(); 175 return AppBannerManager::IsFetcherActive();
174 } 176 }
175 177
176 // static 178 // static
177 bool AppBannerManagerAndroid::Register(JNIEnv* env) { 179 bool AppBannerManagerAndroid::Register(JNIEnv* env) {
178 return RegisterNativesImpl(env); 180 return RegisterNativesImpl(env);
179 } 181 }
180 182
181 jlong Init(JNIEnv* env, 183 jlong Init(JNIEnv* env,
182 const JavaParamRef<jobject>& obj, 184 const JavaParamRef<jobject>& obj) {
183 jint ideal_splash_image_size_in_dp, 185 AppBannerManagerAndroid* manager = new AppBannerManagerAndroid(env, obj);
184 jint ideal_icon_size_in_dp) {
185 AppBannerManagerAndroid* manager =
186 new AppBannerManagerAndroid(env, obj,
187 ideal_splash_image_size_in_dp, ideal_icon_size_in_dp);
188 return reinterpret_cast<intptr_t>(manager); 186 return reinterpret_cast<intptr_t>(manager);
189 } 187 }
190 188
191 void SetTimeDeltaForTesting(JNIEnv* env, 189 void SetTimeDeltaForTesting(JNIEnv* env,
192 const JavaParamRef<jclass>& clazz, 190 const JavaParamRef<jclass>& clazz,
193 jint days) { 191 jint days) {
194 AppBannerDataFetcher::SetTimeDeltaForTesting(days); 192 AppBannerDataFetcher::SetTimeDeltaForTesting(days);
195 } 193 }
196 194
197 void DisableSecureSchemeCheckForTesting(JNIEnv* env, 195 void DisableSecureSchemeCheckForTesting(JNIEnv* env,
198 const JavaParamRef<jclass>& clazz) { 196 const JavaParamRef<jclass>& clazz) {
199 AppBannerManager::DisableSecureSchemeCheckForTesting(); 197 AppBannerManager::DisableSecureSchemeCheckForTesting();
200 } 198 }
201 199
202 void SetEngagementWeights(JNIEnv* env, 200 void SetEngagementWeights(JNIEnv* env,
203 const JavaParamRef<jclass>& clazz, 201 const JavaParamRef<jclass>& clazz,
204 jdouble direct_engagement, 202 jdouble direct_engagement,
205 jdouble indirect_engagement) { 203 jdouble indirect_engagement) {
206 AppBannerManager::SetEngagementWeights(direct_engagement, 204 AppBannerManager::SetEngagementWeights(direct_engagement,
207 indirect_engagement); 205 indirect_engagement);
208 } 206 }
209 207
210 } // namespace banners 208 } // namespace banners
OLDNEW
« no previous file with comments | « chrome/browser/android/banners/app_banner_manager_android.h ('k') | chrome/browser/android/shortcut_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698