diff options
author | Ted Choc <tedchoc@google.com> | 2014-08-29 13:23:02 -0700 |
---|---|---|
committer | Ted Choc <tedchoc@google.com> | 2014-08-29 20:24:29 +0000 |
commit | e8381e9c71c45b5f13544f36d7ebfb9d95e29283 (patch) | |
tree | a229388ea670bd003f77f1ad09d189ccdc285bd4 | |
parent | 4efb7be44aa9e437d11c39dd505b4bb7621abfee (diff) | |
download | chromium_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}
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); |