// third_party/blink/public/mojom/loader/fetch_later.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_LOADER_FETCH_LATER_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_LOADER_FETCH_LATER_MOJOM_BLINK_TEST_UTILS_H_

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


namespace blink::mojom::blink {


class PLATFORM_EXPORT FetchLaterLoaderFactoryInterceptorForTesting : public FetchLaterLoaderFactory {
  virtual FetchLaterLoaderFactory* GetForwardingInterface() = 0;
  void CreateLoader(::mojo::PendingAssociatedReceiver<FetchLaterLoader> loader, int32_t request_id, uint32_t options, const ::network::ResourceRequest& request, const ::net::MutableNetworkTrafficAnnotationTag& traffic_annotation) override;
  void Clone(::mojo::PendingAssociatedReceiver<FetchLaterLoaderFactory> factory) override;
};
class PLATFORM_EXPORT FetchLaterLoaderFactoryAsyncWaiter {
 public:
  explicit FetchLaterLoaderFactoryAsyncWaiter(FetchLaterLoaderFactory* proxy);

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

  ~FetchLaterLoaderFactoryAsyncWaiter();

 private:
  FetchLaterLoaderFactory* const proxy_;
};


class PLATFORM_EXPORT FetchLaterLoaderInterceptorForTesting : public FetchLaterLoader {
  virtual FetchLaterLoader* GetForwardingInterface() = 0;
  void SendNow() override;
  void Cancel() override;
};
class PLATFORM_EXPORT FetchLaterLoaderAsyncWaiter {
 public:
  explicit FetchLaterLoaderAsyncWaiter(FetchLaterLoader* proxy);

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

  ~FetchLaterLoaderAsyncWaiter();

 private:
  FetchLaterLoader* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_LOADER_FETCH_LATER_MOJOM_BLINK_TEST_UTILS_H_