| Index: chrome/browser/android/banners/app_banner_manager.cc
|
| diff --git a/chrome/browser/android/banners/app_banner_manager.cc b/chrome/browser/android/banners/app_banner_manager.cc
|
| index 25fa8a265b0bbb963782148eee14eaa1e6a07588..0f0dcb56ae3f0191bd1af44bada9142329f874aa 100644
|
| --- a/chrome/browser/android/banners/app_banner_manager.cc
|
| +++ b/chrome/browser/android/banners/app_banner_manager.cc
|
| @@ -44,6 +44,7 @@ using base::android::ConvertUTF16ToJavaString;
|
|
|
| namespace {
|
| const char kBannerTag[] = "google-play-id";
|
| +base::TimeDelta gTimeDeltaForTesting;
|
| }
|
|
|
| namespace banners {
|
| @@ -144,20 +145,20 @@ void AppBannerManager::RecordCouldShowBanner(
|
| const std::string& package_or_start_url) {
|
| AppBannerSettingsHelper::RecordBannerEvent(
|
| web_contents(), validated_url_, package_or_start_url,
|
| - AppBannerSettingsHelper::APP_BANNER_EVENT_COULD_SHOW, base::Time::Now());
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_COULD_SHOW, GetCurrentTime());
|
| }
|
|
|
| bool AppBannerManager::CheckIfShouldShow(
|
| const std::string& package_or_start_url) {
|
| if (!AppBannerSettingsHelper::ShouldShowBanner(web_contents(), validated_url_,
|
| package_or_start_url,
|
| - base::Time::Now())) {
|
| + GetCurrentTime())) {
|
| return false;
|
| }
|
|
|
| AppBannerSettingsHelper::RecordBannerEvent(
|
| web_contents(), validated_url_, package_or_start_url,
|
| - AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, base::Time::Now());
|
| + AppBannerSettingsHelper::APP_BANNER_EVENT_DID_SHOW, GetCurrentTime());
|
| return true;
|
| }
|
|
|
| @@ -258,6 +259,10 @@ bool AppBannerManager::OnAppDetailsRetrieved(JNIEnv* env,
|
| return FetchIcon(GURL(image_url));
|
| }
|
|
|
| +int AppBannerManager::GetNumActiveFetchers(JNIEnv* env, jobject obj) {
|
| + return fetcher_.get() ? 1 : 0;
|
| +}
|
| +
|
| bool AppBannerManager::FetchIcon(const GURL& image_url) {
|
| if (!web_contents())
|
| return false;
|
| @@ -284,6 +289,11 @@ int AppBannerManager::GetPreferredIconSize() {
|
| return Java_AppBannerManager_getPreferredIconSize(env, jobj.obj());
|
| }
|
|
|
| +// static
|
| +base::Time AppBannerManager::GetCurrentTime() {
|
| + return base::Time::Now() + gTimeDeltaForTesting;
|
| +}
|
| +
|
| void RecordDismissEvent(JNIEnv* env, jclass clazz, jint metric) {
|
| banners::TrackDismissEvent(metric);
|
| }
|
| @@ -302,6 +312,10 @@ jboolean IsEnabled(JNIEnv* env, jclass clazz) {
|
| switches::kEnableAppInstallAlerts);
|
| }
|
|
|
| +void SetTimeDeltaForTesting(JNIEnv* env, jclass clazz, jint days) {
|
| + gTimeDeltaForTesting = base::TimeDelta::FromDays(days);
|
| +}
|
| +
|
| // Register native methods
|
| bool RegisterAppBannerManager(JNIEnv* env) {
|
| return RegisterNativesImpl(env);
|
|
|