Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java b/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java |
| index bd2b66db6e8ab7b1b4891b3b74a78017a93e460f..e07c7881f4e5e2b650d40dad626200dd7d007fef 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/banners/AppBannerManager.java |
| @@ -9,6 +9,7 @@ import android.text.TextUtils; |
| import org.chromium.base.ApplicationStatus; |
| import org.chromium.base.CalledByNative; |
| import org.chromium.base.JNINamespace; |
| +import org.chromium.base.VisibleForTesting; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.EmptyTabObserver; |
| import org.chromium.chrome.browser.Tab; |
| @@ -32,6 +33,9 @@ public class AppBannerManager extends EmptyTabObserver { |
| /** Retrieves information about a given package. */ |
| private static AppDetailsDelegate sAppDetailsDelegate; |
| + /** Whether the banners are enabled. */ |
| + private static Boolean sIsEnabled; |
| + |
| /** Pointer to the native side AppBannerManager. */ |
| private final long mNativePointer; |
| @@ -43,7 +47,8 @@ public class AppBannerManager extends EmptyTabObserver { |
| * @return True if banners are enabled, false otherwise. |
| */ |
| public static boolean isEnabled() { |
| - return nativeIsEnabled(); |
| + if (sIsEnabled == null) sIsEnabled = nativeIsEnabled(); |
| + return sIsEnabled; |
| } |
| /** |
| @@ -129,6 +134,24 @@ public class AppBannerManager extends EmptyTabObserver { |
| }; |
| } |
| + /** Enables the app banners for testing. */ |
| + @VisibleForTesting |
| + static void setIsEnabledForTesting() { |
| + sIsEnabled = true; |
| + } |
| + |
| + /** Sets a constant that gets added to the time when the current time is requested. */ |
|
Ted C
2015/02/17 18:12:20
I would add (in days) somewhere in the comment.
gone
2015/02/17 19:14:42
Done.
|
| + @VisibleForTesting |
| + static void setTimeDeltaForTesting(int days) { |
| + nativeSetTimeDeltaForTesting(days); |
| + } |
| + |
| + /** Records how many native BitmapFetchers are actively retrieving app icons. */ |
| + @VisibleForTesting |
| + public int getNumActiveFetchersForTesting() { |
| + return nativeGetNumActiveFetchers(mNativePointer); |
| + } |
| + |
| private static native boolean nativeIsEnabled(); |
| private native long nativeInit(); |
| private native void nativeDestroy(long nativeAppBannerManager); |
| @@ -137,6 +160,10 @@ public class AppBannerManager extends EmptyTabObserver { |
| private native boolean nativeOnAppDetailsRetrieved(long nativeAppBannerManager, AppData data, |
| String title, String packageName, String imageUrl); |
| + // Testing methods. |
| + private static native void nativeSetTimeDeltaForTesting(int days); |
| + private native int nativeGetNumActiveFetchers(long nativeAppBannerManager); |
| + |
| // UMA tracking. |
| private static native void nativeRecordDismissEvent(int metric); |
| private static native void nativeRecordInstallEvent(int metric); |