blob: 0c7496292a7d62113183441bf83f443f01444838 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_VIZ_PRIVILEGED_INTERFACES_COMPOSITING_FRAME_SINK_MANAGER_MOJOM_TEST_UTILS_H_
#define SERVICES_VIZ_PRIVILEGED_INTERFACES_COMPOSITING_FRAME_SINK_MANAGER_MOJOM_TEST_UTILS_H_
#include "services/viz/privileged/interfaces/compositing/frame_sink_manager.mojom.h"
namespace viz {
namespace mojom {
class FrameSinkManagerInterceptorForTesting : public FrameSinkManager {
virtual FrameSinkManager* GetForwardingInterface() = 0;
void RegisterFrameSinkId(const viz::FrameSinkId& frame_sink_id, bool report_activation) override;
void InvalidateFrameSinkId(const viz::FrameSinkId& frame_sink_id) override;
void EnableSynchronizationReporting(const viz::FrameSinkId& frame_sink_id, const std::string& reporting_label) override;
void SetFrameSinkDebugLabel(const viz::FrameSinkId& frame_sink_id, const std::string& debug_label) override;
void CreateRootCompositorFrameSink(RootCompositorFrameSinkParamsPtr params) override;
void CreateCompositorFrameSink(const viz::FrameSinkId& frame_sink_id, ::viz::mojom::CompositorFrameSinkRequest compositor_frame_sink, ::viz::mojom::CompositorFrameSinkClientPtr compositor_frame_sink_client) override;
void DestroyCompositorFrameSink(const viz::FrameSinkId& frame_sink_id, DestroyCompositorFrameSinkCallback callback) override;
void RegisterFrameSinkHierarchy(const viz::FrameSinkId& parent_frame_sink_id, const viz::FrameSinkId& child_frame_sink_id) override;
void UnregisterFrameSinkHierarchy(const viz::FrameSinkId& parent_frame_sink_id, const viz::FrameSinkId& child_frame_sink_id) override;
void AddVideoDetectorObserver(::viz::mojom::VideoDetectorObserverPtr observer) override;
void CreateVideoCapturer(::viz::mojom::FrameSinkVideoCapturerRequest request) override;
void EvictSurfaces(const std::vector<viz::SurfaceId>& surface_ids) override;
void RequestCopyOfOutput(const viz::SurfaceId& surface_id, std::unique_ptr<viz::CopyOutputRequest> request) override;
void SetHitTestAsyncQueriedDebugRegions(const viz::FrameSinkId& root_frame_sink_id, const std::vector<viz::FrameSinkId>& hit_test_async_queried_debug_queue) override;
void CacheBackBuffer(uint32_t cache_id, const viz::FrameSinkId& root_frame_sink_id) override;
void EvictBackBuffer(uint32_t cache_id, EvictBackBufferCallback callback) override;
};
class FrameSinkManagerAsyncWaiter {
public:
explicit FrameSinkManagerAsyncWaiter(FrameSinkManager* proxy);
~FrameSinkManagerAsyncWaiter();
void DestroyCompositorFrameSink(
const viz::FrameSinkId& frame_sink_id);
void EvictBackBuffer(
uint32_t cache_id);
private:
FrameSinkManager* const proxy_;
DISALLOW_COPY_AND_ASSIGN(FrameSinkManagerAsyncWaiter);
};
class FrameSinkManagerClientInterceptorForTesting : public FrameSinkManagerClient {
virtual FrameSinkManagerClient* GetForwardingInterface() = 0;
void OnFirstSurfaceActivation(const viz::SurfaceInfo& surface_info) override;
void OnAggregatedHitTestRegionListUpdated(const viz::FrameSinkId& frame_sink_id, const std::vector<viz::AggregatedHitTestRegion>& hit_test_data) override;
void OnFrameTokenChanged(const viz::FrameSinkId& frame_sink_id, uint32_t frame_token) override;
};
class FrameSinkManagerClientAsyncWaiter {
public:
explicit FrameSinkManagerClientAsyncWaiter(FrameSinkManagerClient* proxy);
~FrameSinkManagerClientAsyncWaiter();
private:
FrameSinkManagerClient* const proxy_;
DISALLOW_COPY_AND_ASSIGN(FrameSinkManagerClientAsyncWaiter);
};
} // namespace mojom
} // namespace viz
#endif // SERVICES_VIZ_PRIVILEGED_INTERFACES_COMPOSITING_FRAME_SINK_MANAGER_MOJOM_TEST_UTILS_H_