Re-subimission of https://codereview.chromium.org/1041213003/
[chromium-blink-merge.git] / content / renderer / gpu / gpu_benchmarking_extension.h
blob40f5868c25723d477c9cbc45f0d2a949f2d02773
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_RENDERER_GPU_GPU_BENCHMARKING_EXTENSION_H_
6 #define CONTENT_RENDERER_GPU_GPU_BENCHMARKING_EXTENSION_H_
8 #include "base/basictypes.h"
9 #include "gin/wrappable.h"
11 namespace blink {
12 class WebFrame;
15 namespace gin {
16 class Arguments;
19 namespace v8 {
20 class Function;
21 class Isolate;
22 class Object;
23 template <typename T> class Handle;
26 namespace content {
28 // gin class for gpu benchmarking
29 class GpuBenchmarking : public gin::Wrappable<GpuBenchmarking> {
30 public:
31 static gin::WrapperInfo kWrapperInfo;
32 static void Install(blink::WebFrame* frame);
34 private:
35 GpuBenchmarking();
36 ~GpuBenchmarking() override;
38 // gin::Wrappable.
39 gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
40 v8::Isolate* isolate) override;
42 // JavaScript handlers.
43 void SetNeedsDisplayOnAllLayers();
44 void SetRasterizeOnlyVisibleContent();
45 void PrintToSkPicture(v8::Isolate* isolate, const std::string& dirname);
46 bool GestureSourceTypeSupported(int gesture_source_type);
47 bool SmoothScrollBy(gin::Arguments* args);
48 bool SmoothDrag(gin::Arguments* args);
49 bool Swipe(gin::Arguments* args);
50 bool ScrollBounce(gin::Arguments* args);
51 bool PinchBy(gin::Arguments* args);
52 bool Tap(gin::Arguments* args);
53 void ClearImageCache();
54 int RunMicroBenchmark(gin::Arguments* args);
55 bool SendMessageToMicroBenchmark(int id, v8::Handle<v8::Object> message);
56 bool HasGpuProcess();
58 DISALLOW_COPY_AND_ASSIGN(GpuBenchmarking);
61 } // namespace content
63 #endif // CONTENT_RENDERER_GPU_GPU_BENCHMARKING_EXTENSION_H_