Chromium Code Reviews| Index: blimp/client/app/android/blimp_view.cc |
| diff --git a/blimp/client/app/android/blimp_view.cc b/blimp/client/app/android/blimp_view.cc |
| index af1667ee6c017be318676adea473fd71afd1dd73..f20abfb9b6d41d0fbabe5ff17320e19fa6a5f06d 100644 |
| --- a/blimp/client/app/android/blimp_view.cc |
| +++ b/blimp/client/app/android/blimp_view.cc |
| @@ -6,8 +6,12 @@ |
| #include <android/native_window_jni.h> |
| +#include "base/memory/ptr_util.h" |
| #include "blimp/client/app/android/blimp_client_session_android.h" |
| #include "blimp/client/app/compositor/browser_compositor.h" |
| +#include "blimp/client/core/compositor/blimp_compositor_dependencies_impl.h" |
| +#include "blimp/client/feature/compositor/blimp_compositor_manager.h" |
| +#include "blimp/client/support/compositor/android/compositor_dependencies_impl_android.h" |
| #include "jni/BlimpView_jni.h" |
| #include "ui/events/android/motion_event_android.h" |
| #include "ui/gfx/geometry/size.h" |
| @@ -50,23 +54,33 @@ BlimpView::BlimpView(JNIEnv* env, |
| float dp_to_px, |
| RenderWidgetFeature* render_widget_feature) |
| : device_scale_factor_(dp_to_px), |
| - compositor_(base::MakeUnique<BrowserCompositor>()), |
| current_surface_format_(0), |
| window_(gfx::kNullAcceleratedWidget), |
| weak_ptr_factory_(this) { |
| - compositor_manager_ = BlimpCompositorManagerAndroid::Create( |
| - real_size, size, render_widget_feature, |
| - BrowserCompositor::GetSurfaceManager(), |
| - BrowserCompositor::GetGpuMemoryBufferManager(), |
| - base::Bind(&BrowserCompositor::AllocateSurfaceClientId)); |
| + compositor_dependencies_ = |
| + base::WrapUnique(new BlimpCompositorDependenciesImpl(base::WrapUnique( |
|
Khushal
2016/08/24 23:22:45
nit: MakeUnique!
David Trainor- moved to gerrit
2016/08/26 17:15:53
Done.
|
| + new CompositorDependenciesImplAndroid(real_size, size)))); |
| + |
| + compositor_ = base::MakeUnique<BrowserCompositor>( |
| + compositor_dependencies_->GetEmbedderDependencies()); |
| compositor_->set_did_complete_swap_buffers_callback(base::Bind( |
| &BlimpView::OnSwapBuffersCompleted, weak_ptr_factory_.GetWeakPtr())); |
| + |
| + compositor_manager_ = base::MakeUnique<BlimpCompositorManager>( |
| + render_widget_feature, compositor_dependencies_.get()); |
| compositor_->SetContentLayer(compositor_manager_->layer()); |
| + |
| java_obj_.Reset(env, jobj); |
| } |
| BlimpView::~BlimpView() { |
| SetSurface(nullptr); |
| + |
| + // Destroy the BrowserCompositor and the BlimpCompositorManager before the |
| + // BlimpCompositorDependencies. |
| + compositor_.reset(); |
| + compositor_manager_.reset(); |
| + compositor_dependencies_.reset(); |
| } |
| void BlimpView::Destroy(JNIEnv* env, const JavaParamRef<jobject>& jobj) { |