| Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2f56a95a9a3b9feaba6066ca041a45bb847c727b
|
| --- /dev/null
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java
|
| @@ -0,0 +1,78 @@
|
| +// 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 android.graphics.Rect;
|
| +
|
| +import org.chromium.base.JNINamespace;
|
| +import org.chromium.chrome.browser.compositor.LayerTitleCache;
|
| +import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab;
|
| +import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
|
| +import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
|
| +
|
| +/**
|
| + * A SceneLayer to render a static tab.
|
| + */
|
| +@JNINamespace("chrome::android")
|
| +public class StaticTabSceneLayer extends SceneLayer {
|
| + // NOTE: If you use SceneLayer's native pointer here, the JNI generator will try to
|
| + // downcast using reinterpret_cast<>. We keep a separate pointer to avoid it.
|
| + private long mNativePtr;
|
| +
|
| + private final int mResToolbarControlContainer;
|
| +
|
| + public StaticTabSceneLayer(int resToolbarControlContainer) {
|
| + mResToolbarControlContainer = resToolbarControlContainer;
|
| + }
|
| +
|
| + public void update(float dpToPx, Rect contentViewport, LayerTitleCache layerTitleCache,
|
| + TabContentManager tabContentManager, ChromeFullscreenManager fullscreenManager,
|
| + LayoutTab layoutTab) {
|
| + if (layoutTab == null) {
|
| + return;
|
| + }
|
| +
|
| + // TODO(dtrainor, clholgat): remove "* dpToPx" once the native part is fully supporting dp.
|
| + nativeUpdateTabLayer(mNativePtr, contentViewport.left, contentViewport.top,
|
| + contentViewport.width(), contentViewport.height(), tabContentManager,
|
| + layoutTab.getId(), mResToolbarControlContainer, layoutTab.canUseLiveTexture(),
|
| + false, layoutTab.getBackgroundColor(), layoutTab.getRenderX() * dpToPx,
|
| + layoutTab.getRenderY() * dpToPx, layoutTab.getScaledContentWidth() * dpToPx,
|
| + layoutTab.getScaledContentHeight() * dpToPx, fullscreenManager.getContentOffset(),
|
| + layoutTab.getStaticToViewBlend(), layoutTab.getSaturation());
|
| + }
|
| +
|
| + // TODO(pedrosimonetti): Remove this once contextual search is moved into an overlay.
|
| + public void setContentTree(SceneLayer contentTree) {
|
| + nativeSetContentTree(mNativePtr, contentTree);
|
| + }
|
| +
|
| + @Override
|
| + protected void initializeNative() {
|
| + if (mNativePtr == 0) {
|
| + mNativePtr = nativeInit();
|
| + }
|
| + assert mNativePtr != 0;
|
| + }
|
| +
|
| + /**
|
| + * Destroys this object and the corresponding native component.
|
| + */
|
| + @Override
|
| + public void destroy() {
|
| + super.destroy();
|
| + mNativePtr = 0;
|
| + }
|
| +
|
| + private native long nativeInit();
|
| + private native void nativeUpdateTabLayer(long nativeStaticTabSceneLayer, float contentViewportX,
|
| + float contentViewportY, float contentViewportWidth, float contentViewportHeight,
|
| + TabContentManager tabContentManager, int id, int toolbarResourceId,
|
| + boolean canUseLiveLayer, boolean canUseNtpFallback, int backgroundColor, float x,
|
| + float y, float width, float height, float contentOffsetY, float staticToViewBlend,
|
| + float saturation);
|
| + private native void nativeSetContentTree(
|
| + long nativeStaticTabSceneLayer, SceneLayer contentTree);
|
| +}
|
|
|