// third_party/blink/public/mojom/unbounded_element/unbounded_element.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 THIRD_PARTY_BLINK_PUBLIC_MOJOM_UNBOUNDED_ELEMENT_UNBOUNDED_ELEMENT_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_UNBOUNDED_ELEMENT_UNBOUNDED_ELEMENT_MOJOM_BLINK_TEST_UTILS_H_

#include "third_party/blink/public/mojom/unbounded_element/unbounded_element.mojom-blink.h"
#include "third_party/blink/renderer/platform/platform_export.h"


namespace blink::mojom::blink {


class PLATFORM_EXPORT UnboundedSurfaceHostInterceptorForTesting : public UnboundedSurfaceHost {
  virtual UnboundedSurfaceHost* GetForwardingInterface() = 0;
  void GetCompositorFrameSink(::mojo::PendingReceiver<::viz::mojom::blink::CompositorFrameSink> sink, ::mojo::PendingRemote<::viz::mojom::blink::CompositorFrameSinkClient> client) override;
  void UpdateBounds(const ::gfx::Rect& bounds) override;
  void DidPresentFrameAfterDismissal() override;
  void DidCancelDismissal() override;
};
class PLATFORM_EXPORT UnboundedSurfaceHostAsyncWaiter {
 public:
  explicit UnboundedSurfaceHostAsyncWaiter(UnboundedSurfaceHost* proxy);

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

  ~UnboundedSurfaceHostAsyncWaiter();

 private:
  UnboundedSurfaceHost* const proxy_;
};


class PLATFORM_EXPORT UnboundedSurfaceClientInterceptorForTesting : public UnboundedSurfaceClient {
  virtual UnboundedSurfaceClient* GetForwardingInterface() = 0;
  void OnSurfaceAllocated(const ::viz::FrameSinkId& frame_sink_id, const ::viz::LocalSurfaceId& local_surface_id) override;
  void OnDismissed() override;
};
class PLATFORM_EXPORT UnboundedSurfaceClientAsyncWaiter {
 public:
  explicit UnboundedSurfaceClientAsyncWaiter(UnboundedSurfaceClient* proxy);

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

  ~UnboundedSurfaceClientAsyncWaiter();

 private:
  UnboundedSurfaceClient* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_UNBOUNDED_ELEMENT_UNBOUNDED_ELEMENT_MOJOM_BLINK_TEST_UTILS_H_