// cc/mojom/render_frame_metadata.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 CC_MOJOM_RENDER_FRAME_METADATA_MOJOM_BLINK_TEST_UTILS_H_
#define CC_MOJOM_RENDER_FRAME_METADATA_MOJOM_BLINK_TEST_UTILS_H_

#include "cc/mojom/render_frame_metadata.mojom-blink.h"
#include "third_party/blink/public/platform/web_common.h"


namespace cc::mojom::blink {


class BLINK_PLATFORM_EXPORT RenderFrameMetadataObserverInterceptorForTesting : public RenderFrameMetadataObserver {
  virtual RenderFrameMetadataObserver* GetForwardingInterface() = 0;
  void ReportAllFrameSubmissionsForTesting(bool enabled) override;
};
class BLINK_PLATFORM_EXPORT RenderFrameMetadataObserverAsyncWaiter {
 public:
  explicit RenderFrameMetadataObserverAsyncWaiter(RenderFrameMetadataObserver* proxy);

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

  ~RenderFrameMetadataObserverAsyncWaiter();

 private:
  RenderFrameMetadataObserver* const proxy_;
};


class BLINK_PLATFORM_EXPORT RenderFrameMetadataObserverClientInterceptorForTesting : public RenderFrameMetadataObserverClient {
  virtual RenderFrameMetadataObserverClient* GetForwardingInterface() = 0;
  void OnRenderFrameMetadataChanged(uint32_t frame_token, const ::cc::RenderFrameMetadata& metadata) override;
  void OnFrameSubmissionForTesting(uint32_t frame_token) override;
};
class BLINK_PLATFORM_EXPORT RenderFrameMetadataObserverClientAsyncWaiter {
 public:
  explicit RenderFrameMetadataObserverClientAsyncWaiter(RenderFrameMetadataObserverClient* proxy);

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

  ~RenderFrameMetadataObserverClientAsyncWaiter();

 private:
  RenderFrameMetadataObserverClient* const proxy_;
};




}  // cc::mojom::blink

#endif  // CC_MOJOM_RENDER_FRAME_METADATA_MOJOM_BLINK_TEST_UTILS_H_