1// Copyright 2013 The Flutter 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.
4
5#ifndef FLOW_TESTING_MOCK_EMBEDDER_H_
6#define FLOW_TESTING_MOCK_EMBEDDER_H_
7
8#include "flutter/flow/embedded_views.h"
9
10namespace flutter {
11namespace testing {
12
13class MockViewEmbedder : public ExternalViewEmbedder {
14 public:
15 MockViewEmbedder();
16
17 ~MockViewEmbedder();
18
19 void AddCanvas(DlCanvas* canvas);
20
21 // |ExternalViewEmbedder|
22 DlCanvas* GetRootCanvas() override;
23
24 // |ExternalViewEmbedder|
25 void CancelFrame() override;
26
27 // |ExternalViewEmbedder|
28 void BeginFrame(
29 SkISize frame_size,
30 GrDirectContext* context,
31 double device_pixel_ratio,
32 fml::RefPtr<fml::RasterThreadMerger> raster_thread_merger) override;
33
34 // |ExternalViewEmbedder|
35 void PrerollCompositeEmbeddedView(
36 int64_t view_id,
37 std::unique_ptr<EmbeddedViewParams> params) override;
38
39 // |ExternalViewEmbedder|
40 DlCanvas* CompositeEmbeddedView(int64_t view_id) override;
41
42 std::vector<int64_t> prerolled_views() const { return prerolled_views_; }
43 std::vector<int64_t> painted_views() const { return painted_views_; }
44
45 private:
46 std::deque<DlCanvas*> contexts_;
47 std::vector<int64_t> prerolled_views_;
48 std::vector<int64_t> painted_views_;
49};
50
51} // namespace testing
52} // namespace flutter
53
54#endif // FLOW_TESTING_MOCK_EMBEDDER_H_
55

source code of flutter_engine/flutter/flow/testing/mock_embedder.h