1 // Copyright 2019 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. 4 5 #ifndef CC_TEST_FAKE_COMPOSITOR_FRAME_REPORTING_CONTROLLER_H_ 6 #define CC_TEST_FAKE_COMPOSITOR_FRAME_REPORTING_CONTROLLER_H_ 7 8 #include <vector> 9 10 #include "cc/metrics/compositor_frame_reporting_controller.h" 11 12 namespace viz { 13 struct FrameTimingDetails; 14 } 15 16 namespace cc { 17 // This class is to be used for testing, during cases where the DCHECKs won't 18 // hold due to testing only a portion of the compositor pipeline. This class 19 // will automatically generate the preceding stages that are missing from the 20 // pipeline. 21 class FakeCompositorFrameReportingController 22 : public CompositorFrameReportingController { 23 public: 24 FakeCompositorFrameReportingController(); 25 26 FakeCompositorFrameReportingController( 27 const FakeCompositorFrameReportingController& controller) = delete; 28 FakeCompositorFrameReportingController& operator=( 29 const FakeCompositorFrameReportingController& controller) = delete; 30 31 void WillBeginMainFrame(const viz::BeginFrameArgs& args) override; 32 void BeginMainFrameAborted(const viz::BeginFrameId& id) override; 33 void WillCommit() override; 34 void DidCommit() override; 35 void WillActivate() override; 36 void DidActivate() override; 37 void DidSubmitCompositorFrame( 38 uint32_t frame_token, 39 const viz::BeginFrameId& current_frame_id, 40 const viz::BeginFrameId& last_activated_frame_id, 41 EventMetricsSet events_metrics) override; 42 void DidPresentCompositorFrame( 43 uint32_t frame_token, 44 const viz::FrameTimingDetails& details) override; 45 }; 46 } // namespace cc 47 48 #endif // CC_TEST_FAKE_COMPOSITOR_FRAME_REPORTING_CONTROLLER_H_ 49