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

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

Issue 12096112: [cc] Trace detailed tile info when --trace-all-rendered-frames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 10 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 299c5f37476c025ccb57ef69c7ed1f1a64c328e2..8d45c727a5fc1850921f9ba0f33262e2bfa44abe 100644
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
@@ -11,8 +11,10 @@
#include "base/file_util.h"
#include "base/memory/scoped_vector.h"
#include "base/string_number_conversions.h"
+#include "cc/layer_tree_host.h"
#include "content/common/gpu/gpu_rendering_stats.h"
#include "content/public/renderer/render_thread.h"
+#include "content/public/renderer/v8_value_converter.h"
#include "content/renderer/all_rendering_benchmarks.h"
#include "content/renderer/render_view_impl.h"
#include "content/renderer/rendering_benchmark.h"
@@ -23,10 +25,12 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebViewBenchmarkSupport.h"
#include "v8/include/v8.h"
+#include "webkit/compositor_bindings/web_layer_tree_view_impl.h"
#include "webkit/compositor_bindings/web_rendering_stats_impl.h"
using WebKit::WebCanvas;
using WebKit::WebFrame;
+using WebKit::WebLayerTreeViewImpl;
using WebKit::WebPrivatePtr;
using WebKit::WebRenderingStatsImpl;
using WebKit::WebSize;
@@ -154,6 +158,10 @@ class GpuBenchmarkingWrapper : public v8::Extension {
"chrome.gpuBenchmarking.beginWindowSnapshotPNG = function(callback) {"
" native function BeginWindowSnapshotPNG();"
" BeginWindowSnapshotPNG(callback);"
+ "};"
+ "chrome.gpuBenchmarking.layerTreeAsValue = function() {"
+ " native function LayerTreeAsValue();"
+ " LayerTreeAsValue();"
"};") {}
virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
@@ -168,6 +176,8 @@ class GpuBenchmarkingWrapper : public v8::Extension {
return v8::FunctionTemplate::New(RunRenderingBenchmarks);
if (name->Equals(v8::String::New("BeginWindowSnapshotPNG")))
return v8::FunctionTemplate::New(BeginWindowSnapshotPNG);
+ if (name->Equals(v8::String::New("LayerTreeAsValue")))
+ return v8::FunctionTemplate::New(LayerTreeAsValue);
return v8::Handle<v8::FunctionTemplate>();
}
@@ -443,6 +453,38 @@ class GpuBenchmarkingWrapper : public v8::Extension {
return v8::Undefined();
}
+
+ static v8::Handle<v8::Value> LayerTreeAsValue(
+ const v8::Arguments& args) {
+ WebFrame* web_frame = WebFrame::frameForCurrentContext();
+ if (!web_frame)
+ return v8::Undefined();
+
+ WebView* web_view = web_frame->view();
+ if (!web_view)
+ return v8::Undefined();
+
+ RenderViewImpl* render_view_impl = RenderViewImpl::FromWebView(web_view);
+ if (!render_view_impl)
+ return v8::Undefined();
+
+ WebLayerTreeViewImpl* layer_tree_view_impl =
+ static_cast<WebLayerTreeViewImpl*>(render_view_impl->layerTreeView());
piman 2013/02/12 04:55:07 This is a content::RenderWidgetCompositor now... M
+
+ if (!layer_tree_view_impl)
+ return v8::Undefined();
+
+ cc::LayerTreeHost* cc_layer_tree_host =
+ layer_tree_view_impl->layer_tree_host();
+ if (!cc_layer_tree_host)
+ return v8::Undefined();
+
+ scoped_ptr<base::Value> value = cc_layer_tree_host->asValue();
+ scoped_ptr<V8ValueConverter> converter(V8ValueConverter::create());
+ v8::Persistent<v8::Context> context =
+ v8::Persistent<v8::Context>::New(web_frame->mainWorldScriptContext());
+ return converter->ToV8Value(value.get(), context);
+ }
};
v8::Extension* GpuBenchmarkingExtension::Get() {
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.cc ('k') | content/renderer/gpu/render_widget_compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698