| 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 9b24efddf439512d7d388728906a0edd96f82ef0..6d2c0fba8b4b1e450c61bcc8ea20e488ff890294 100644
|
| --- a/content/renderer/gpu/gpu_benchmarking_extension.cc
|
| +++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
|
| @@ -81,6 +81,33 @@ 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));
|
| + }
|
| +
|
| + 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 +185,11 @@ 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("numLayersDrawn"),
|
| - v8::Number::New(
|
| - stats.rendering_stats.numLayersDrawn));
|
| -
|
| - 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);
|
| + gpu_stats.EnumerateFields(&enumerator);
|
| +
|
| return stats_object;
|
| }
|
|
|
|
|