// third_party/blink/public/mojom/webview/webview_media_integrity.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_WEBVIEW_WEBVIEW_MEDIA_INTEGRITY_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBVIEW_WEBVIEW_MEDIA_INTEGRITY_MOJOM_BLINK_TEST_UTILS_H_

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


namespace blink::mojom::blink {


class PLATFORM_EXPORT WebViewMediaIntegrityServiceInterceptorForTesting : public WebViewMediaIntegrityService {
  virtual WebViewMediaIntegrityService* GetForwardingInterface() = 0;
  void GetIntegrityProvider(::mojo::PendingReceiver<WebViewMediaIntegrityProvider> provider_receiver, uint64_t cloud_project_number, GetIntegrityProviderCallback callback) override;
};
class PLATFORM_EXPORT WebViewMediaIntegrityServiceAsyncWaiter {
 public:
  explicit WebViewMediaIntegrityServiceAsyncWaiter(WebViewMediaIntegrityService* proxy);

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

  ~WebViewMediaIntegrityServiceAsyncWaiter();
  void GetIntegrityProvider(
      ::mojo::PendingReceiver<WebViewMediaIntegrityProvider> provider_receiver, uint64_t cloud_project_number, std::optional<WebViewMediaIntegrityErrorCode>* out_error);
  std::optional<WebViewMediaIntegrityErrorCode> GetIntegrityProvider(::mojo::PendingReceiver<WebViewMediaIntegrityProvider> provider_receiver, uint64_t cloud_project_number);

 private:
  WebViewMediaIntegrityService* const proxy_;
};


class PLATFORM_EXPORT WebViewMediaIntegrityProviderInterceptorForTesting : public WebViewMediaIntegrityProvider {
  virtual WebViewMediaIntegrityProvider* GetForwardingInterface() = 0;
  void RequestToken(const ::blink::String& content_binding, RequestTokenCallback callback) override;
};
class PLATFORM_EXPORT WebViewMediaIntegrityProviderAsyncWaiter {
 public:
  explicit WebViewMediaIntegrityProviderAsyncWaiter(WebViewMediaIntegrityProvider* proxy);

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

  ~WebViewMediaIntegrityProviderAsyncWaiter();
  void RequestToken(
      const ::blink::String& content_binding, WebViewMediaIntegrityTokenResponsePtr* out_response);
  WebViewMediaIntegrityTokenResponsePtr RequestToken(const ::blink::String& content_binding);

 private:
  WebViewMediaIntegrityProvider* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEBVIEW_WEBVIEW_MEDIA_INTEGRITY_MOJOM_BLINK_TEST_UTILS_H_