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); |