| OLD | NEW |
| 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 <utility> | 5 #include <utility> |
| 6 | 6 |
| 7 #include "chrome/browser/android/banners/app_banner_manager_android.h" | 7 #include "chrome/browser/android/banners/app_banner_manager_android.h" |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 namespace banners { | 43 namespace banners { |
| 44 | 44 |
| 45 AppBannerManagerAndroid::AppBannerManagerAndroid( | 45 AppBannerManagerAndroid::AppBannerManagerAndroid( |
| 46 content::WebContents* web_contents) | 46 content::WebContents* web_contents) |
| 47 : AppBannerManager(web_contents) { | 47 : AppBannerManager(web_contents) { |
| 48 CreateJavaBannerManager(); | 48 CreateJavaBannerManager(); |
| 49 } | 49 } |
| 50 | 50 |
| 51 AppBannerManagerAndroid::~AppBannerManagerAndroid() { | 51 AppBannerManagerAndroid::~AppBannerManagerAndroid() { |
| 52 JNIEnv* env = base::android::AttachCurrentThread(); | 52 JNIEnv* env = base::android::AttachCurrentThread(); |
| 53 Java_AppBannerManager_destroy(env, java_banner_manager_.obj()); | 53 Java_AppBannerManager_destroy(env, java_banner_manager_); |
| 54 java_banner_manager_.Reset(); | 54 java_banner_manager_.Reset(); |
| 55 } | 55 } |
| 56 | 56 |
| 57 base::Closure AppBannerManagerAndroid::FetchWebappSplashScreenImageCallback( | 57 base::Closure AppBannerManagerAndroid::FetchWebappSplashScreenImageCallback( |
| 58 const std::string& webapp_id) { | 58 const std::string& webapp_id) { |
| 59 content::WebContents* contents = web_contents(); | 59 content::WebContents* contents = web_contents(); |
| 60 DCHECK(contents); | 60 DCHECK(contents); |
| 61 | 61 |
| 62 int ideal_splash_image_size_in_dp = | 62 int ideal_splash_image_size_in_dp = |
| 63 ShortcutHelper::GetIdealSplashImageSizeInDp(); | 63 ShortcutHelper::GetIdealSplashImageSizeInDp(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 | 97 |
| 98 return ManifestIconDownloader::Download( | 98 return ManifestIconDownloader::Download( |
| 99 web_contents(), icon_url_, GetIdealIconSizeInDp(), | 99 web_contents(), icon_url_, GetIdealIconSizeInDp(), |
| 100 GetMinimumIconSizeInDp(), | 100 GetMinimumIconSizeInDp(), |
| 101 base::Bind(&AppBannerManager::OnAppIconFetched, GetWeakPtr())); | 101 base::Bind(&AppBannerManager::OnAppIconFetched, GetWeakPtr())); |
| 102 } | 102 } |
| 103 | 103 |
| 104 void AppBannerManagerAndroid::RequestAppBanner(const GURL& validated_url, | 104 void AppBannerManagerAndroid::RequestAppBanner(const GURL& validated_url, |
| 105 bool is_debug_mode) { | 105 bool is_debug_mode) { |
| 106 JNIEnv* env = base::android::AttachCurrentThread(); | 106 JNIEnv* env = base::android::AttachCurrentThread(); |
| 107 if (!Java_AppBannerManager_isEnabledForTab(env, java_banner_manager_.obj())) | 107 if (!Java_AppBannerManager_isEnabledForTab(env, java_banner_manager_)) |
| 108 return; | 108 return; |
| 109 | 109 |
| 110 AppBannerManager::RequestAppBanner(validated_url, is_debug_mode); | 110 AppBannerManager::RequestAppBanner(validated_url, is_debug_mode); |
| 111 } | 111 } |
| 112 | 112 |
| 113 std::string AppBannerManagerAndroid::GetAppIdentifier() { | 113 std::string AppBannerManagerAndroid::GetAppIdentifier() { |
| 114 return native_app_data_.is_null() ? AppBannerManager::GetAppIdentifier() | 114 return native_app_data_.is_null() ? AppBannerManager::GetAppIdentifier() |
| 115 : native_app_package_; | 115 : native_app_package_; |
| 116 } | 116 } |
| 117 | 117 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 // is non empty. | 238 // is non empty. |
| 239 if (referrer.empty()) | 239 if (referrer.empty()) |
| 240 referrer = kPlayInlineReferrer; | 240 referrer = kPlayInlineReferrer; |
| 241 else | 241 else |
| 242 referrer.append("&").append(kPlayInlineReferrer); | 242 referrer.append("&").append(kPlayInlineReferrer); |
| 243 | 243 |
| 244 ScopedJavaLocalRef<jstring> jurl( | 244 ScopedJavaLocalRef<jstring> jurl( |
| 245 ConvertUTF8ToJavaString(env, validated_url_.spec())); | 245 ConvertUTF8ToJavaString(env, validated_url_.spec())); |
| 246 ScopedJavaLocalRef<jstring> jpackage(ConvertUTF8ToJavaString(env, id)); | 246 ScopedJavaLocalRef<jstring> jpackage(ConvertUTF8ToJavaString(env, id)); |
| 247 ScopedJavaLocalRef<jstring> jreferrer(ConvertUTF8ToJavaString(env, referrer)); | 247 ScopedJavaLocalRef<jstring> jreferrer(ConvertUTF8ToJavaString(env, referrer)); |
| 248 Java_AppBannerManager_fetchAppDetails( | 248 Java_AppBannerManager_fetchAppDetails(env, java_banner_manager_, jurl, |
| 249 env, java_banner_manager_.obj(), jurl.obj(), jpackage.obj(), | 249 jpackage, jreferrer, |
| 250 jreferrer.obj(), GetIdealIconSizeInDp()); | 250 GetIdealIconSizeInDp()); |
| 251 return true; | 251 return true; |
| 252 } | 252 } |
| 253 | 253 |
| 254 void AppBannerManagerAndroid::CreateJavaBannerManager() { | 254 void AppBannerManagerAndroid::CreateJavaBannerManager() { |
| 255 JNIEnv* env = base::android::AttachCurrentThread(); | 255 JNIEnv* env = base::android::AttachCurrentThread(); |
| 256 java_banner_manager_.Reset( | 256 java_banner_manager_.Reset( |
| 257 Java_AppBannerManager_create(env, reinterpret_cast<intptr_t>(this))); | 257 Java_AppBannerManager_create(env, reinterpret_cast<intptr_t>(this))); |
| 258 } | 258 } |
| 259 | 259 |
| 260 bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform, | 260 bool AppBannerManagerAndroid::CheckPlatformAndId(const std::string& platform, |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 } | 320 } |
| 321 | 321 |
| 322 // static | 322 // static |
| 323 void SetTimeDeltaForTesting(JNIEnv* env, | 323 void SetTimeDeltaForTesting(JNIEnv* env, |
| 324 const JavaParamRef<jclass>& clazz, | 324 const JavaParamRef<jclass>& clazz, |
| 325 jint days) { | 325 jint days) { |
| 326 AppBannerManager::SetTimeDeltaForTesting(days); | 326 AppBannerManager::SetTimeDeltaForTesting(days); |
| 327 } | 327 } |
| 328 | 328 |
| 329 } // namespace banners | 329 } // namespace banners |
| OLD | NEW |