Index: content/browser/android/content_view_render_view.cc |
diff --git a/content/browser/android/content_view_render_view.cc b/content/browser/android/content_view_render_view.cc |
index 02bceb28409cc06ce3f17ca9b328c2ad4bdb4be3..972d76439f4d2ef279487f37f4377e340b85fe1a 100644 |
--- a/content/browser/android/content_view_render_view.cc |
+++ b/content/browser/android/content_view_render_view.cc |
@@ -13,8 +13,10 @@ |
#include "base/message_loop/message_loop.h" |
#include "cc/layers/layer.h" |
#include "content/browser/android/content_view_core_impl.h" |
+#include "content/browser/android/layer_tree_build_helper_impl.h" |
#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 "jni/ContentViewRenderView_jni.h" |
#include "ui/gfx/android/java_bitmap.h" |
#include "ui/gfx/size.h" |
@@ -35,6 +37,7 @@ ContentViewRenderView::ContentViewRenderView(JNIEnv* env, |
jobject obj, |
gfx::NativeWindow root_window) |
: buffers_swapped_during_composite_(false), |
+ layer_tree_build_helper_(new LayerTreeBuildHelperImpl()), |
Yaron
2014/04/24 19:47:11
This is problematic. You're leaking this original
Yusuf
2014/04/28 23:18:46
Moved the ownership to content_view_render_view.
|
root_window_(root_window), |
current_surface_format_(0) { |
java_obj_.Reset(env, obj); |
@@ -43,8 +46,19 @@ ContentViewRenderView::ContentViewRenderView(JNIEnv* env, |
ContentViewRenderView::~ContentViewRenderView() { |
} |
+void ContentViewRenderView::SetLayerTreeBuildHelper(JNIEnv* env, |
+ jobject obj, |
+ jlong native_build_helper) { |
+ CHECK(native_build_helper); |
+ |
+ LayerTreeBuildHelper* build_helper = |
+ reinterpret_cast<LayerTreeBuildHelper*>(native_build_helper); |
+ layer_tree_build_helper_ = build_helper; |
+} |
// static |
-static jlong Init(JNIEnv* env, jobject obj, jlong native_root_window) { |
+static jlong Init(JNIEnv* env, |
+ jobject obj, |
+ jlong native_root_window) { |
gfx::NativeWindow root_window = |
reinterpret_cast<gfx::NativeWindow>(native_root_window); |
ContentViewRenderView* content_view_render_view = |
@@ -61,10 +75,8 @@ void ContentViewRenderView::SetCurrentContentViewCore( |
InitCompositor(); |
ContentViewCoreImpl* content_view_core = |
reinterpret_cast<ContentViewCoreImpl*>(native_content_view_core); |
- if (content_view_core) |
- compositor_->SetRootLayer(content_view_core->GetLayer()); |
- else |
- compositor_->SetRootLayer(cc::Layer::Create()); |
+ compositor_->SetRootLayer( |
+ layer_tree_build_helper_->GetLayerTree(content_view_core->GetLayer())); |
} |
void ContentViewRenderView::SurfaceCreated( |
@@ -129,5 +141,4 @@ void ContentViewRenderView::InitCompositor() { |
if (!compositor_) |
compositor_.reset(Compositor::Create(this, root_window_)); |
} |
- |
} // namespace content |