gpu: Disallow client share groups with RasterDecoder.

[email protected]

Bug: 854416
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I2a34d72980d5acd8975319671cc9ca9637bf93c8
Reviewed-on: https://chromium-review.googlesource.com/1117706
Reviewed-by: Antoine Labour <[email protected]>
Commit-Queue: Khushal <[email protected]>
Cr-Commit-Position: refs/heads/master@{#570992}
diff --git a/gpu/ipc/service/raster_command_buffer_stub.cc b/gpu/ipc/service/raster_command_buffer_stub.cc
index abab626..a20bb91 100644
--- a/gpu/ipc/service/raster_command_buffer_stub.cc
+++ b/gpu/ipc/service/raster_command_buffer_stub.cc
@@ -84,25 +84,24 @@
   DCHECK(manager);
 
   if (share_command_buffer_stub) {
-    context_group_ = share_command_buffer_stub->context_group();
-    DCHECK(context_group_->bind_generates_resource() ==
-           init_params.attribs.bind_generates_resource);
-  } else {
-    scoped_refptr<gles2::FeatureInfo> feature_info = new gles2::FeatureInfo(
-        manager->gpu_driver_bug_workarounds(), manager->gpu_feature_info());
-    gpu::GpuMemoryBufferFactory* gmb_factory =
-        manager->gpu_memory_buffer_factory();
-    context_group_ = new gles2::ContextGroup(
-        manager->gpu_preferences(), gles2::PassthroughCommandDecoderSupported(),
-        manager->mailbox_manager(), CreateMemoryTracker(init_params),
-        manager->shader_translator_cache(),
-        manager->framebuffer_completeness_cache(), feature_info,
-        init_params.attribs.bind_generates_resource, channel_->image_manager(),
-        gmb_factory ? gmb_factory->AsImageFactory() : nullptr,
-        manager->watchdog() /* progress_reporter */,
-        manager->gpu_feature_info(), manager->discardable_manager());
+    LOG(ERROR) << "Using a share group is not supported with RasterDecoder";
+    return ContextResult::kFatalFailure;
   }
 
+  scoped_refptr<gles2::FeatureInfo> feature_info = new gles2::FeatureInfo(
+      manager->gpu_driver_bug_workarounds(), manager->gpu_feature_info());
+  gpu::GpuMemoryBufferFactory* gmb_factory =
+      manager->gpu_memory_buffer_factory();
+  context_group_ = new gles2::ContextGroup(
+      manager->gpu_preferences(), gles2::PassthroughCommandDecoderSupported(),
+      manager->mailbox_manager(), CreateMemoryTracker(init_params),
+      manager->shader_translator_cache(),
+      manager->framebuffer_completeness_cache(), feature_info,
+      init_params.attribs.bind_generates_resource, channel_->image_manager(),
+      gmb_factory ? gmb_factory->AsImageFactory() : nullptr,
+      manager->watchdog() /* progress_reporter */, manager->gpu_feature_info(),
+      manager->discardable_manager());
+
 #if defined(OS_MACOSX)
   // Virtualize PreferIntegratedGpu contexts by default on OS X to prevent
   // performance regressions when enabling FCM.
@@ -143,11 +142,7 @@
   if (context_group_->use_passthrough_cmd_decoder()) {
     // When using the passthrough command decoder, only share with other
     // contexts in the explicitly requested share group
-    if (share_command_buffer_stub) {
-      share_group_ = share_command_buffer_stub->share_group();
-    } else {
       share_group_ = new gl::GLShareGroup();
-    }
   } else {
     // When using the validating command decoder, always use the global share
     // group