Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneLayer.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneLayer.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..84d8902c05a605bd9a9908e71c9868ea13b6c040 |
--- /dev/null |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneLayer.java |
@@ -0,0 +1,57 @@ |
+// Copyright 2015 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.chrome.browser.compositor.scene_layer; |
+ |
+import org.chromium.base.CalledByNative; |
+import org.chromium.base.JNINamespace; |
+ |
+/** |
+ * Java representation of a scene layer. |
+ */ |
+@JNINamespace("chrome::android") |
+public class SceneLayer { |
+ private long mNativePtr; |
+ |
+ /** |
+ * Builds an instance of a {@link SceneLayer}. |
+ */ |
+ public SceneLayer() { |
+ initializeNative(); |
+ } |
+ |
+ /** |
+ * Initializes the native component of a {@link SceneLayer}. Must be |
+ * overridden to have a custom native component. |
+ */ |
+ protected void initializeNative() { |
+ if (mNativePtr == 0) { |
+ mNativePtr = nativeInit(); |
+ } |
+ assert mNativePtr != 0; |
+ } |
+ |
+ /** |
+ * Destroys this object and the corresponding native component. |
+ */ |
+ public void destroy() { |
+ assert mNativePtr != 0; |
+ nativeDestroy(mNativePtr); |
+ assert mNativePtr == 0; |
+ } |
+ |
+ @CalledByNative |
+ private void setNativePtr(long nativeSceneLayerPtr) { |
+ assert mNativePtr == 0 || nativeSceneLayerPtr == 0; |
+ mNativePtr = nativeSceneLayerPtr; |
+ } |
+ |
+ @CalledByNative |
+ private long getNativePtr() { |
+ return mNativePtr; |
+ } |
+ |
+ private native long nativeInit(); |
+ private native void nativeDestroy(long nativeSceneLayer); |
+} |