| Index: ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
|
| diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
|
| index 7fc6180aecdd009f0fe60a5ac36847a175630ead..bb9f7dceea4c73a667765590d6b737f3c86e809e 100644
|
| --- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
|
| +++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
|
| @@ -181,8 +181,12 @@ public class WindowAndroid {
|
| }
|
|
|
| @CalledByNative
|
| - private static WindowAndroid createForTesting(Context context) {
|
| - return new WindowAndroid(context);
|
| + private static long createForTesting(Context context) {
|
| + WindowAndroid windowAndroid = new WindowAndroid(context);
|
| + // |windowAndroid.getNativePointer()| creates native WindowAndroid object
|
| + // which stores a global ref to |windowAndroid|. Therefore |windowAndroid|
|
| + // is not immediately eligible for gc.
|
| + return windowAndroid.getNativePointer();
|
| }
|
|
|
| @CalledByNative
|
| @@ -533,7 +537,7 @@ public class WindowAndroid {
|
| */
|
| public long getNativePointer() {
|
| if (mNativeWindowAndroid == 0) {
|
| - mNativeWindowAndroid = nativeInit();
|
| + mNativeWindowAndroid = nativeInit(mDisplayAndroid.getSdkDisplayId());
|
| }
|
| return mNativeWindowAndroid;
|
| }
|
| @@ -675,7 +679,7 @@ public class WindowAndroid {
|
| }
|
| }
|
|
|
| - private native long nativeInit();
|
| + private native long nativeInit(int displayId);
|
| private native void nativeOnVSync(long nativeWindowAndroid,
|
| long vsyncTimeMicros,
|
| long vsyncPeriodMicros);
|
|
|