Chromium Code Reviews| 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 2d1b65d89acfbddb7f33151c3a5c1632cba82de1..a366b6e719414bdc928f04f3368e71980b2d6138 100644 |
| --- a/content/renderer/gpu/gpu_benchmarking_extension.cc |
| +++ b/content/renderer/gpu/gpu_benchmarking_extension.cc |
| @@ -81,6 +81,23 @@ class SkPictureRecorder : public WebViewBenchmarkSupport::PaintClient { |
| SkPicture picture_; |
| }; |
| +class RenderingStatsEnumerator : public cc::RenderingStats::Enumerator { |
| + public: |
| + RenderingStatsEnumerator(v8::Handle<v8::Object> stats_object) |
| + : stats_object(stats_object) { } |
| + |
| + virtual void addInt64(const char* name, int64 value) { |
| + stats_object->Set(v8::String::New(name), v8::Number::New(value)); |
| + } |
| + |
| + virtual void addDouble(const char* name, double value) { |
| + stats_object->Set(v8::String::New(name), v8::Number::New(value)); |
| + } |
| + |
| + private: |
| + v8::Handle<v8::Object> stats_object; |
| +}; |
| + |
| } // namespace |
| namespace content { |
| @@ -158,42 +175,9 @@ class GpuBenchmarkingWrapper : public v8::Extension { |
| content::GpuRenderingStats gpu_stats; |
| render_view_impl->GetGpuRenderingStats(&gpu_stats); |
| v8::Handle<v8::Object> stats_object = v8::Object::New(); |
| - stats_object->Set(v8::String::New("numAnimationFrames"), |
| - v8::Number::New( |
| - stats.rendering_stats.numAnimationFrames)); |
| - stats_object->Set(v8::String::New("numFramesSentToScreen"), |
| - v8::Number::New( |
| - stats.rendering_stats.numFramesSentToScreen)); |
| - stats_object->Set(v8::String::New("droppedFrameCount"), |
| - v8::Number::New( |
| - stats.rendering_stats.droppedFrameCount)); |
| - stats_object->Set(v8::String::New("totalPaintTimeInSeconds"), |
| - v8::Number::New( |
| - stats.rendering_stats.totalPaintTimeInSeconds)); |
| - stats_object->Set(v8::String::New("totalRasterizeTimeInSeconds"), |
| - v8::Number::New( |
| - stats.rendering_stats.totalRasterizeTimeInSeconds)); |
| - stats_object->Set(v8::String::New("totalCommitTimeInSeconds"), |
| - v8::Number::New( |
| - stats.rendering_stats.totalCommitTimeInSeconds)); |
| - stats_object->Set(v8::String::New("totalCommitCount"), |
| - v8::Number::New( |
| - stats.rendering_stats.totalCommitCount)); |
| - stats_object->Set(v8::String::New("numImplThreadScrolls"), |
| - v8::Number::New( |
| - stats.rendering_stats.numImplThreadScrolls)); |
| - stats_object->Set(v8::String::New("numMainThreadScrolls"), |
| - v8::Number::New( |
| - stats.rendering_stats.numMainThreadScrolls)); |
| - stats_object->Set(v8::String::New("totalPixelsPainted"), |
| - v8::Number::New( |
| - stats.rendering_stats.totalPixelsPainted)); |
| - stats_object->Set(v8::String::New("totalPixelsRasterized"), |
| - v8::Number::New( |
| - stats.rendering_stats.totalPixelsRasterized)); |
| - stats_object->Set(v8::String::New("numLayersInLayerTree"), |
| - v8::Number::New( |
| - stats.rendering_stats.numLayersInLayerTree)); |
| + |
| + RenderingStatsEnumerator enumerator(stats_object); |
| + stats.rendering_stats.enumerateFields(&enumerator); |
| stats_object->Set(v8::String::New("globalTextureUploadCount"), |
|
nduca
2012/11/28 21:27:35
can we do this for the gpu stats too, as a followu
hartmanng
2012/11/28 23:18:17
Done.
|
| v8::Number::New(gpu_stats.global_texture_upload_count)); |