// services/viz/public/mojom/compositing/layer_context.mojom-blink-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SERVICES_VIZ_PUBLIC_MOJOM_COMPOSITING_LAYER_CONTEXT_MOJOM_BLINK_TEST_UTILS_H_
#define SERVICES_VIZ_PUBLIC_MOJOM_COMPOSITING_LAYER_CONTEXT_MOJOM_BLINK_TEST_UTILS_H_

#include "services/viz/public/mojom/compositing/layer_context.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace viz::mojom::blink {


class BLINK_PLATFORM_EXPORT LayerContextInterceptorForTesting : public LayerContext {
  virtual LayerContext* GetForwardingInterface() = 0;
  void SetVisible(bool visible) override;
  void UpdateDisplayTree(LayerTreeUpdatePtr update) override;
  void UpdateDisplayTiling(::viz::mojom::blink::TilingPtr tiling) override;
  void SetTargetLocalSurfaceId(const ::viz::LocalSurfaceId& target_local_surface_id) override;
  void SetUnboundedFrameSinkId(const ::viz::FrameSinkId& frame_sink_id, const ::viz::LocalSurfaceId& local_surface_id) override;
  void SetUnboundedLocalSurfaceId(const ::viz::LocalSurfaceId& local_surface_id) override;
  void DismissUnboundedFrameSink() override;
};
class BLINK_PLATFORM_EXPORT LayerContextAsyncWaiter {
 public:
  explicit LayerContextAsyncWaiter(LayerContext* proxy);

  LayerContextAsyncWaiter(const LayerContextAsyncWaiter&) = delete;
  LayerContextAsyncWaiter& operator=(const LayerContextAsyncWaiter&) = delete;

  ~LayerContextAsyncWaiter();

 private:
  LayerContext* const proxy_;
};


class BLINK_PLATFORM_EXPORT LayerContextClientInterceptorForTesting : public LayerContextClient {
  virtual LayerContextClient* GetForwardingInterface() = 0;
  void OnRequestCommitForFrame(const ::viz::BeginFrameArgs& args) override;
  void OnTilingsReadyForCleanup(int32_t layer_id, const ::blink::Vector<float>& tiling_scales_to_clean_up) override;
};
class BLINK_PLATFORM_EXPORT LayerContextClientAsyncWaiter {
 public:
  explicit LayerContextClientAsyncWaiter(LayerContextClient* proxy);

  LayerContextClientAsyncWaiter(const LayerContextClientAsyncWaiter&) = delete;
  LayerContextClientAsyncWaiter& operator=(const LayerContextClientAsyncWaiter&) = delete;

  ~LayerContextClientAsyncWaiter();

 private:
  LayerContextClient* const proxy_;
};




}  // viz::mojom::blink

#endif  // SERVICES_VIZ_PUBLIC_MOJOM_COMPOSITING_LAYER_CONTEXT_MOJOM_BLINK_TEST_UTILS_H_