Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / content / browser / android / in_process / synchronous_compositor_impl.cc
index 9528980..bc2e5ef 100644 (file)
@@ -82,13 +82,27 @@ void SynchronousCompositorImpl::SetClient(
   compositor_client_ = compositor_client;
 }
 
+// static
+void SynchronousCompositor::SetGpuService(
+    scoped_refptr<gpu::InProcessCommandBuffer::Service> service) {
+  g_factory.Get().SetDeferredGpuService(service);
+}
+
 bool SynchronousCompositorImpl::InitializeHwDraw(
     scoped_refptr<gfx::GLSurface> surface) {
   DCHECK(CalledOnValidThread());
   DCHECK(output_surface_);
-  bool success = output_surface_->InitializeHwDraw(
-      surface,
-      g_factory.Get().GetOffscreenContextProviderForCompositorThread());
+
+  // Create contexts in this order so that the share group gets passed
+  // along correctly.
+  scoped_refptr<cc::ContextProvider> offscreen_context =
+      g_factory.Get().GetOffscreenContextProviderForCompositorThread();
+  scoped_refptr<cc::ContextProvider> onscreen_context =
+  g_factory.Get().CreateOnscreenContextProviderForCompositorThread(surface);
+
+  bool success =
+      output_surface_->InitializeHwDraw(onscreen_context, offscreen_context);
+
   if (success)
     g_factory.Get().CompositorInitializedHardwareDraw();
   return success;
@@ -239,11 +253,14 @@ bool SynchronousCompositorImpl::IsExternalFlingActive() const {
   return false;
 }
 
-void SynchronousCompositorImpl::SetTotalPageScaleFactor(
-    float page_scale_factor) {
+void SynchronousCompositorImpl::SetTotalPageScaleFactorAndLimits(
+    float page_scale_factor,
+    float min_page_scale_factor,
+    float max_page_scale_factor) {
   DCHECK(CalledOnValidThread());
   if (compositor_client_)
-    compositor_client_->SetRootLayerPageScaleFactor(page_scale_factor);
+    compositor_client_->SetRootLayerPageScaleFactorAndLimits(
+        page_scale_factor, min_page_scale_factor, max_page_scale_factor);
 }
 
 void SynchronousCompositorImpl::SetScrollableSize(