Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1906)

Unified Diff: content/renderer/gpu/gpu_benchmarking_extension.cc

Issue 1463823002: Add DriverBugWorkaroundsInGpuProcessPage to gpu_process_test.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add a testing GpuChannelMsg_GetDriverBugWorkArounds IPC message and use it in a new browser test Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698