summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Choc <tedchoc@google.com>2014-08-29 13:23:02 -0700
committerTed Choc <tedchoc@google.com>2014-08-29 20:24:29 +0000
commite8381e9c71c45b5f13544f36d7ebfb9d95e29283 (patch)
treea229388ea670bd003f77f1ad09d189ccdc285bd4
parent4efb7be44aa9e437d11c39dd505b4bb7621abfee (diff)
downloadchromium_src-e8381e9c71c45b5f13544f36d7ebfb9d95e29283.zip
chromium_src-e8381e9c71c45b5f13544f36d7ebfb9d95e29283.tar.gz
chromium_src-e8381e9c71c45b5f13544f36d7ebfb9d95e29283.tar.bz2
Add API to get the UIResourceProvider from ContentViewRenderView
To be able to use thumbnail store related code, we need to be able to use UIResourceProviders in ContentViewRenderView. This add the necessary API and pipes it to java. BUG=404500 TBR=yusufo@chromium.org CQ_TRYBOTS=tryserver.chromium.linux:android_aosp,android_clang_dbg,android_dbg. Review URL: https://codereview.chromium.org/493853005 Cr-Commit-Position: refs/heads/master@{#292184} (cherry picked from commit e8d81b3520152ffca07bbb1e7423ef3ea66e7001) Review URL: https://codereview.chromium.org/520953002 Cr-Commit-Position: refs/branch-heads/2125@{#153} Cr-Branched-From: b68026d94bda36dd106a3d91a098719f952a9477-refs/heads/master@{#290040}
-rw-r--r--content/browser/android/content_view_render_view.cc9
-rw-r--r--content/browser/android/content_view_render_view.h5
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java8
3 files changed, 22 insertions, 0 deletions
diff --git a/content/browser/android/content_view_render_view.cc b/content/browser/android/content_view_render_view.cc
index 52d0c23..00d9ad0 100644
--- a/content/browser/android/content_view_render_view.cc
+++ b/content/browser/android/content_view_render_view.cc
@@ -16,6 +16,7 @@
#include "content/public/browser/android/compositor.h"
#include "content/public/browser/android/content_view_layer_renderer.h"
#include "content/public/browser/android/layer_tree_build_helper.h"
+#include "content/public/browser/android/ui_resource_provider.h"
#include "jni/ContentViewRenderView_jni.h"
#include "ui/gfx/android/java_bitmap.h"
#include "ui/gfx/size.h"
@@ -70,6 +71,7 @@ void ContentViewRenderView::SetLayerTreeBuildHelper(JNIEnv* env,
LayerTreeBuildHelper* build_helper =
reinterpret_cast<LayerTreeBuildHelper*>(native_build_helper);
layer_tree_build_helper_.reset(build_helper);
+ InitCompositor();
}
// static
static jlong Init(JNIEnv* env,
@@ -142,4 +144,11 @@ void ContentViewRenderView::InitCompositor() {
if (!compositor_)
compositor_.reset(Compositor::Create(this, root_window_));
}
+
+jlong ContentViewRenderView::GetUIResourceProvider(JNIEnv* env,
+ jobject obj) {
+ if (!compositor_)
+ return 0;
+ return reinterpret_cast<intptr_t>(&compositor_->GetUIResourceProvider());
+}
} // namespace content
diff --git a/content/browser/android/content_view_render_view.h b/content/browser/android/content_view_render_view.h
index 905adb4..cc8fe80 100644
--- a/content/browser/android/content_view_render_view.h
+++ b/content/browser/android/content_view_render_view.h
@@ -19,6 +19,7 @@ class Layer;
namespace content {
class Compositor;
class LayerTreeBuildHelper;
+class UIResourceProvider;
class ContentViewRenderView : public CompositorClient {
public:
@@ -43,6 +44,10 @@ class ContentViewRenderView : public CompositorClient {
void SetOverlayVideoMode(JNIEnv* env, jobject obj, bool enabled);
void SetNeedsComposite(JNIEnv* env, jobject obj);
+ // TODO(yusufo): Remove this once the compositor code is
+ // refactored to use a unified system.
+ jlong GetUIResourceProvider(JNIEnv* env, jobject obj);
+
// CompositorClient implementation
virtual void Layout() OVERRIDE;
virtual void OnSwapBuffersCompleted(int pending_swap_buffers) OVERRIDE;
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
index 63c6c04..a309398 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
@@ -213,7 +213,15 @@ public class ContentViewRenderView extends FrameLayout {
}
}
+ /**
+ * @return Native pointer for the UI resource provider taken from the compositor.
+ */
+ public long getUIResourceProvider() {
+ return nativeGetUIResourceProvider(mNativeContentViewRenderView);
+ }
+
private native long nativeInit(long rootWindowNativePointer);
+ private native long nativeGetUIResourceProvider(long nativeContentViewRenderView);
private native void nativeDestroy(long nativeContentViewRenderView);
private native void nativeSetCurrentContentViewCore(long nativeContentViewRenderView,
long nativeContentViewCore);