Chromium Code Reviews| Index: android_webview/java/src/org/chromium/android_webview/browser/SharedRendererStateProxy.java |
| diff --git a/android_webview/java/src/org/chromium/android_webview/browser/SharedRendererStateProxy.java b/android_webview/java/src/org/chromium/android_webview/browser/SharedRendererStateProxy.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..623db121d46148c3fb506bc41a2ecca6695fe649 |
| --- /dev/null |
| +++ b/android_webview/java/src/org/chromium/android_webview/browser/SharedRendererStateProxy.java |
| @@ -0,0 +1,59 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.android_webview.browser; |
| + |
| +import org.chromium.base.annotations.JNINamespace; |
| +import org.chromium.content.common.CleanupReference; |
| + |
| +/** |
| + */ |
| +@JNINamespace("android_webview") |
| +public class SharedRendererStateProxy { |
|
boliu
2016/04/01 17:39:28
don't need to be public?
|
| + private static final class DestroyRunnable implements Runnable { |
| + private final long mNativeSharedRendererStateProxy; |
| + |
| + private DestroyRunnable(long nativeSharedRendererStateProxy) { |
| + mNativeSharedRendererStateProxy = nativeSharedRendererStateProxy; |
| + } |
| + @Override |
| + public void run() { |
| + nativeDestroy(mNativeSharedRendererStateProxy); |
| + } |
| + } |
| + |
| + private long mNativeSharedRendererStateProxy; |
| + private CleanupReference mCleanupReference; |
| + |
| + public SharedRendererStateProxy() { |
| + mNativeSharedRendererStateProxy = nativeCreate(); |
| + mCleanupReference = |
| + new CleanupReference(this, new DestroyRunnable(mNativeSharedRendererStateProxy)); |
| + } |
| + |
| + public void destroy() { |
| + if (mCleanupReference != null) { |
| + mCleanupReference.cleanupNow(); |
| + mCleanupReference = null; |
| + } |
| + } |
| + |
| + public void setClient(long nativeSharedRendererStateClient) { |
| + nativeSetClient(mNativeSharedRendererStateProxy, nativeSharedRendererStateClient); |
| + } |
| + |
| + public void deleteHardwareRenderer() { |
| + nativeDeleteHardwareRenderer(mNativeSharedRendererStateProxy); |
| + } |
| + |
| + public long getAwDrawGLViewContext() { |
| + return nativeGetAwDrawGLViewContext(mNativeSharedRendererStateProxy); |
| + } |
| + |
| + private native void nativeSetClient(long nativeSharedRendererStateProxy, long nativeClient); |
| + private native void nativeDeleteHardwareRenderer(long nativeSharedRendererStateProxy); |
| + private native long nativeGetAwDrawGLViewContext(long nativeSharedRendererStateProxy); |
| + private static native void nativeDestroy(long nativeSharedRendererStateProxy); |
| + private static native long nativeCreate(); |
| +} |