// third_party/blink/public/mojom/manifest/manifest_manager.mojom-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_MANIFEST_MANIFEST_MANAGER_MOJOM_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_MANIFEST_MANIFEST_MANAGER_MOJOM_TEST_UTILS_H_

#include "third_party/blink/public/mojom/manifest/manifest_manager.mojom.h"
#include "third_party/blink/public/common/common_export.h"


namespace blink::mojom {


class BLINK_COMMON_EXPORT ManifestManagerInterceptorForTesting : public ManifestManager {
  virtual ManifestManager* GetForwardingInterface() = 0;
  void RequestManifest(RequestManifestCallback callback) override;
  void RequestManifestAndErrors(RequestManifestAndErrorsCallback callback) override;
  void RequestManifestDebugInfo(RequestManifestDebugInfoCallback callback) override;
  void ParseManifestFromString(const ::GURL& document_url, const ::GURL& manifest_url, const std::string& manifest_content, ParseManifestFromStringCallback callback) override;
};
class BLINK_COMMON_EXPORT ManifestManagerAsyncWaiter {
 public:
  explicit ManifestManagerAsyncWaiter(ManifestManager* proxy);

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

  ~ManifestManagerAsyncWaiter();
  void RequestManifest(
      ::blink::mojom::ManifestRequestResult* out_result, ::GURL* out_url, ::blink::mojom::ManifestPtr* out_manifest);
  
  void RequestManifestAndErrors(
      
base::expected<
  ::blink::mojom::ManifestPtr,
  RequestManifestErrorPtr>* out_result);
  ManifestManager_RequestManifestAndErrors_ResponseParam_ResultPtr RequestManifestAndErrors();
  void RequestManifestDebugInfo(
      ::GURL* out_url, ::blink::mojom::ManifestPtr* out_parsed_manifest, ::blink::mojom::ManifestDebugInfoPtr* out_debug_info);
  
  void ParseManifestFromString(
      const ::GURL& document_url, const ::GURL& manifest_url, const std::string& manifest_content, ::blink::mojom::ManifestPtr* out_parsed_manifest);
  ::blink::mojom::ManifestPtr ParseManifestFromString(const ::GURL& document_url, const ::GURL& manifest_url, const std::string& manifest_content);

 private:
  ManifestManager* const proxy_;
};




}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_MANIFEST_MANIFEST_MANAGER_MOJOM_TEST_UTILS_H_