Index: content/renderer/gpu/gpu_benchmarking_extension.cc |
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc |
index 742481a8cb6167f73d0724290c458e22fb7c1e9b..b54ac25725600f7d2b401cc57e2680b9b9f30766 100644 |
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc |
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc |
@@ -32,6 +32,7 @@ |
#include "gin/arguments.h" |
#include "gin/handle.h" |
#include "gin/object_template_builder.h" |
+#include "gpu/ipc/common/gpu_messages.h" |
#include "third_party/WebKit/public/web/WebImageCache.h" |
#include "third_party/WebKit/public/web/WebKit.h" |
#include "third_party/WebKit/public/web/WebLocalFrame.h" |
@@ -503,7 +504,9 @@ gin::ObjectTemplateBuilder GpuBenchmarking::GetObjectTemplateBuilder( |
.SetMethod("sendMessageToMicroBenchmark", |
&GpuBenchmarking::SendMessageToMicroBenchmark) |
.SetMethod("hasGpuChannel", &GpuBenchmarking::HasGpuChannel) |
- .SetMethod("hasGpuProcess", &GpuBenchmarking::HasGpuProcess); |
+ .SetMethod("hasGpuProcess", &GpuBenchmarking::HasGpuProcess) |
+ .SetMethod("getGpuDriverBugWorkarounds", |
+ &GpuBenchmarking::GetGpuDriverBugWorkarounds); |
} |
void GpuBenchmarking::SetNeedsDisplayOnAllLayers() { |
@@ -922,4 +925,22 @@ bool GpuBenchmarking::HasGpuProcess() { |
return has_gpu_process; |
} |
+void GpuBenchmarking::GetGpuDriverBugWorkarounds(gin::Arguments* args) { |
+ std::vector<std::string> gpu_driver_bug_workarounds; |
+ GpuChannelHost* gpu_channel = RenderThreadImpl::current()->GetGpuChannel(); |
+ if (!gpu_channel->Send(new GpuChannelMsg_GetDriverBugWorkArounds( |
+ &gpu_driver_bug_workarounds))) { |
+ return; |
+ } |
+ |
+ v8::Isolate* isolate = args->isolate(); |
dcheng
2016/03/30 23:45:25
Does Converter::ToV8() work? https://code.google.c
Julien Isorce Samsung
2016/03/31 15:20:09
gin::TryConvertToV8 works so I'll use it, thx.
|
+ v8::Local<v8::Array> result = |
+ v8::Array::New(isolate, gpu_driver_bug_workarounds.size()); |
+ for (size_t i = 0; i < gpu_driver_bug_workarounds.size(); ++i) |
+ result->Set(i, v8::String::NewFromUtf8( |
+ isolate, gpu_driver_bug_workarounds[i].c_str())); |
+ |
+ args->Return(v8::Local<v8::Object>::Cast(result)); |
+} |
+ |
} // namespace content |