| Index: content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
|
| diff --git a/content/renderer/skia_benchmarking_extension.cc b/content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
|
| similarity index 89%
|
| rename from content/renderer/skia_benchmarking_extension.cc
|
| rename to content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
|
| index 078b51d2cd24d425a6f499e5e6ba015a307e139d..e161f8116265581dee7e2dc2466a547e65d9ad51 100644
|
| --- a/content/renderer/skia_benchmarking_extension.cc
|
| +++ b/content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
|
| @@ -2,12 +2,13 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "content/renderer/skia_benchmarking_extension.h"
|
| +#include "content/renderer/skia_benchmarking/skia_benchmarking_extension.h"
|
|
|
| #include "base/values.h"
|
| #include "cc/base/math_util.h"
|
| #include "cc/resources/picture.h"
|
| #include "content/public/renderer/v8_value_converter.h"
|
| +#include "content/renderer/skia_benchmarking/skia_benchmarking_canvas.h"
|
| #include "third_party/WebKit/public/platform/WebArrayBuffer.h"
|
| #include "third_party/WebKit/public/web/WebFrame.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| @@ -20,6 +21,7 @@
|
| #include "v8/include/v8.h"
|
|
|
| using WebKit::WebFrame;
|
| +using content::SkiaBenchmarkingCanvas;
|
|
|
| namespace {
|
|
|
| @@ -189,19 +191,23 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
|
| if (!picture.get())
|
| return;
|
|
|
| - gfx::Rect bounds = picture->LayerRect();
|
| - SkDebugCanvas canvas(bounds.width(), bounds.height());
|
| + SkiaBenchmarkingCanvas canvas(picture->LayerRect());
|
| picture->Replay(&canvas);
|
|
|
| - v8::Local<v8::Array> result = v8::Array::New(canvas.getSize());
|
| - for (int i = 0; i < canvas.getSize(); ++i) {
|
| - DrawType cmd_type = canvas.getDrawCommandAt(i)->getType();
|
| - v8::Handle<v8::Object> cmd = v8::Object::New();
|
| - cmd->Set(v8::String::New("cmd_type"), v8::Integer::New(cmd_type));
|
| - cmd->Set(v8::String::New("cmd_string"), v8::String::New(
|
| - SkDrawCommand::GetCommandString(cmd_type)));
|
| + v8::Local<v8::Array> result = v8::Array::New(canvas.CommandCount());
|
| + for (size_t i = 0; i < canvas.CommandCount(); ++i) {
|
| + v8::Handle<v8::Object> v8_cmd = v8::Object::New();
|
| + SkDrawCommand* cmd = canvas.GetCommand(i);
|
| + DCHECK(cmd);
|
|
|
| - SkTDArray<SkString*>* info = canvas.getCommandInfo(i);
|
| + DrawType cmd_type = cmd->getType();
|
| + v8_cmd->Set(v8::String::New("cmd_type"), v8::Integer::New(cmd_type));
|
| + v8_cmd->Set(v8::String::New("cmd_string"),
|
| + v8::String::New(SkDrawCommand::GetCommandString(cmd_type)));
|
| + v8_cmd->Set(v8::String::New("cmd_time"),
|
| + v8::Number::New(canvas.GetTime(i)));
|
| +
|
| + SkTDArray<SkString*>* info = cmd->Info();
|
| DCHECK(info);
|
|
|
| v8::Local<v8::Array> v8_info = v8::Array::New(info->count());
|
| @@ -210,10 +216,9 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
|
| DCHECK(info_str);
|
| v8_info->Set(j, v8::String::New(info_str->c_str()));
|
| }
|
| + v8_cmd->Set(v8::String::New("info"), v8_info);
|
|
|
| - cmd->Set(v8::String::New("info"), v8_info);
|
| -
|
| - result->Set(i, cmd);
|
| + result->Set(i, v8_cmd);
|
| }
|
|
|
| args.GetReturnValue().Set(result);
|
|
|