summaryrefslogtreecommitdiffstats
path: root/chromium/content/renderer/skia_benchmarking_extension.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/skia_benchmarking_extension.h')
-rw-r--r--chromium/content/renderer/skia_benchmarking_extension.h67
1 files changed, 61 insertions, 6 deletions
diff --git a/chromium/content/renderer/skia_benchmarking_extension.h b/chromium/content/renderer/skia_benchmarking_extension.h
index 73d5f83dddf..974ae127b35 100644
--- a/chromium/content/renderer/skia_benchmarking_extension.h
+++ b/chromium/content/renderer/skia_benchmarking_extension.h
@@ -5,17 +5,72 @@
#ifndef CONTENT_RENDERER_SKIA_BENCHMARKING_EXTENSION_H_
#define CONTENT_RENDERER_SKIA_BENCHMARKING_EXTENSION_H_
-namespace v8 {
-class Extension;
+#include "base/basictypes.h"
+#include "gin/wrappable.h"
+
+namespace blink {
+class WebFrame;
+}
+
+namespace gin {
+class Arguments;
}
namespace content {
-// V8 extension for Skia benchmarking
-class SkiaBenchmarkingExtension {
+class SkiaBenchmarking : public gin::Wrappable<SkiaBenchmarking> {
public:
- static v8::Extension* Get();
- static void InitSkGraphics();
+ static gin::WrapperInfo kWrapperInfo;
+ static void Install(blink::WebFrame* frame);
+
+ // Wrapper around SkGraphics::Init that can be invoked multiple times.
+ static void Initialize();
+
+ private:
+ SkiaBenchmarking();
+ virtual ~SkiaBenchmarking();
+
+ // gin::Wrappable.
+ virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
+ v8::Isolate* isolate) OVERRIDE;
+
+ // Rasterizes a Picture JSON-encoded by cc::Picture::AsValue().
+ //
+ // Takes a JSON-encoded cc::Picture and optionally rasterization parameters:
+ // {
+ // 'scale': {Number},
+ // 'stop': {Number},
+ // 'overdraw': {Boolean},
+ // 'clip': [Number, Number, Number, Number]
+ // }
+ //
+ // Returns
+ // {
+ // 'width': {Number},
+ // 'height': {Number},
+ // 'data': {ArrayBuffer}
+ // }
+ void Rasterize(gin::Arguments* args);
+
+ // Extracts the Skia draw commands from a JSON-encoded cc::Picture.
+ //
+ // Takes a JSON-encoded cc::Picture and returns
+ // [{ 'cmd': {String}, 'info': [String, ...] }, ...]
+ void GetOps(gin::Arguments* args);
+
+ // Returns timing information for the given picture.
+ //
+ // Takes a JSON-encoded cc::Picture and returns
+ // { 'total_time': {Number}, 'cmd_times': [Number, ...] }
+ void GetOpTimings(gin::Arguments* args);
+
+ // Returns meta information for the given picture.
+ //
+ // Takes a base64 encoded SKP and returns
+ // { 'width': {Number}, 'height': {Number} }
+ void GetInfo(gin::Arguments* args);
+
+ DISALLOW_COPY_AND_ASSIGN(SkiaBenchmarking);
};
} // namespace content