Fix FullScreen crash in Webapp
[platform/framework/web/chromium-efl.git] / cc / benchmarks / micro_benchmark_impl.h
1 // Copyright 2013 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CC_BENCHMARKS_MICRO_BENCHMARK_IMPL_H_
6 #define CC_BENCHMARKS_MICRO_BENCHMARK_IMPL_H_
7
8 #include "base/functional/callback.h"
9 #include "base/memory/scoped_refptr.h"
10 #include "base/values.h"
11 #include "cc/cc_export.h"
12
13 namespace base {
14 class SingleThreadTaskRunner;
15 }  // namespace base
16
17 namespace cc {
18
19 class LayerTreeHostImpl;
20 class LayerImpl;
21 class PictureLayerImpl;
22 class CC_EXPORT MicroBenchmarkImpl {
23  public:
24   using DoneCallback = base::OnceCallback<void(base::Value::Dict)>;
25
26   explicit MicroBenchmarkImpl(
27       DoneCallback callback,
28       scoped_refptr<base::SingleThreadTaskRunner> origin_task_runner);
29   virtual ~MicroBenchmarkImpl();
30
31   bool IsDone() const;
32   virtual void DidCompleteCommit(LayerTreeHostImpl* host);
33
34   virtual void RunOnLayer(LayerImpl* layer);
35   virtual void RunOnLayer(PictureLayerImpl* layer);
36
37  protected:
38   void NotifyDone(base::Value::Dict result);
39
40  private:
41   DoneCallback callback_;
42   bool is_done_;
43   scoped_refptr<base::SingleThreadTaskRunner> origin_task_runner_;
44 };
45
46 }  // namespace cc
47
48 #endif  // CC_BENCHMARKS_MICRO_BENCHMARK_IMPL_H_