| 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..d81d68427fd53d77449f22257b22ae9674477e8f 100644
|
| --- a/content/renderer/gpu/gpu_benchmarking_extension.cc
|
| +++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
|
| @@ -81,6 +81,43 @@ 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;
|
| +};
|
| +
|
| +class GpuRenderingStatsEnumerator :
|
| + public content::GpuRenderingStats::Enumerator {
|
| + public:
|
| + GpuRenderingStatsEnumerator(v8::Handle<v8::Object> stats_object)
|
| + : stats_object(stats_object) { }
|
| +
|
| + virtual void addInt(const char* name, int value) {
|
| + stats_object->Set(v8::String::New(name), v8::Integer::New(value));
|
| + }
|
| +
|
| + virtual void addTimeDeltaInSecondsF(const char* name,
|
| + const base::TimeDelta& value) {
|
| + stats_object->Set(v8::String::New(name),
|
| + v8::Number::New(value.InSecondsF()));
|
| + }
|
| +
|
| + private:
|
| + v8::Handle<v8::Object> stats_object;
|
| +};
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -158,62 +195,13 @@ 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));
|
| -
|
| - stats_object->Set(v8::String::New("globalTextureUploadCount"),
|
| - v8::Number::New(gpu_stats.global_texture_upload_count));
|
| - stats_object->Set(
|
| - v8::String::New("globalTotalTextureUploadTimeInSeconds"),
|
| - v8::Number::New(
|
| - gpu_stats.global_total_texture_upload_time.InSecondsF()));
|
| - stats_object->Set(v8::String::New("textureUploadCount"),
|
| - v8::Number::New(gpu_stats.texture_upload_count));
|
| - stats_object->Set(
|
| - v8::String::New("totalTextureUploadTimeInSeconds"),
|
| - v8::Number::New(gpu_stats.total_texture_upload_time.InSecondsF()));
|
| - stats_object->Set(
|
| - v8::String::New("globalTotalProcessingCommandsTimeInSeconds"),
|
| - v8::Number::New(
|
| - gpu_stats.global_total_processing_commands_time.InSecondsF()));
|
| - stats_object->Set(
|
| - v8::String::New("totalProcessingCommandsTimeInSeconds"),
|
| - v8::Number::New(
|
| - gpu_stats.total_processing_commands_time.InSecondsF()));
|
| +
|
| + RenderingStatsEnumerator enumerator(stats_object);
|
| + stats.rendering_stats.enumerateFields(&enumerator);
|
| +
|
| + GpuRenderingStatsEnumerator gpu_enumerator(stats_object);
|
| + gpu_stats.enumerateFields(&gpu_enumerator);
|
| +
|
| return stats_object;
|
| }
|
|
|
|
|