Index: content/renderer/renderer_webkitplatformsupport_impl.cc |
diff --git a/content/renderer/renderer_webkitplatformsupport_impl.cc b/content/renderer/renderer_webkitplatformsupport_impl.cc |
index 1c5fc6fd1b3878441e361e9c01f719e86ff607d8..efd2700df6ce6ea72184db3ef9a43bac81f47f94 100644 |
--- a/content/renderer/renderer_webkitplatformsupport_impl.cc |
+++ b/content/renderer/renderer_webkitplatformsupport_impl.cc |
@@ -20,6 +20,7 @@ |
#include "content/common/view_messages.h" |
#include "content/common/webmessageportchannel_impl.h" |
#include "content/public/common/content_switches.h" |
+#include "content/public/common/gpu_info.h" |
#include "content/public/renderer/content_renderer_client.h" |
#include "content/renderer/gamepad_shared_memory_reader.h" |
#include "content/renderer/media/audio_device.h" |
@@ -659,3 +660,17 @@ RendererWebKitPlatformSupportImpl::createPeerConnectionHandler( |
return NULL; |
return render_view->CreatePeerConnectionHandler(client); |
} |
+ |
+bool RendererWebKitPlatformSupportImpl::canAccelerate2dCanvas() { |
+ RenderThreadImpl* thread = RenderThreadImpl::current(); |
+ GpuChannelHost* host = thread->EstablishGpuChannelSync( |
+ content::CAUSE_FOR_GPU_LAUNCH_CANVAS_2D); |
+ if (!host) |
+ return false; |
+ |
+ const content::GPUInfo& gpu_info = host->gpu_info(); |
+ if (gpu_info.can_lose_context || gpu_info.software_rendering) |
+ return false; |
+ |
+ return true; |
+} |