diff options
Diffstat (limited to 'chromium/content/renderer/skia_benchmarking_extension.h')
-rw-r--r-- | chromium/content/renderer/skia_benchmarking_extension.h | 67 |
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 |