// third_party/blink/public/mojom/web_install/web_install.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_WEB_INSTALL_WEB_INSTALL_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEB_INSTALL_WEB_INSTALL_MOJOM_BLINK_TEST_UTILS_H_

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


namespace blink::mojom::blink {


class PLATFORM_EXPORT WebInstallServiceInterceptorForTesting : public WebInstallService {
  virtual WebInstallService* GetForwardingInterface() = 0;
  void IsInstalled(InstallOptionsPtr options, IsInstalledCallback callback) override;
  void Install(InstallOptionsPtr options, InstallCallback callback) override;
  void InstallFromElement(InstallOptionsPtr options, InstallFromElementCallback callback) override;
  void InstallFromManifest(ManifestInstallOptionsPtr options, InstallFromManifestCallback callback) override;
  void ElementInstallFromManifest(ManifestInstallOptionsPtr options, ElementInstallFromManifestCallback callback) override;
};
class PLATFORM_EXPORT WebInstallServiceAsyncWaiter {
 public:
  explicit WebInstallServiceAsyncWaiter(WebInstallService* proxy);

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

  ~WebInstallServiceAsyncWaiter();
  void IsInstalled(
      InstallOptionsPtr options, bool* out_is_installed);
  bool IsInstalled(InstallOptionsPtr options);
  void Install(
      InstallOptionsPtr options, WebInstallServiceResult* out_result, ::blink::KURL* out_manifest_id);
  
  void InstallFromElement(
      InstallOptionsPtr options, WebInstallServiceResult* out_result, ::blink::KURL* out_manifest_id);
  
  void InstallFromManifest(
      ManifestInstallOptionsPtr options, WebInstallServiceResult* out_result);
  WebInstallServiceResult InstallFromManifest(ManifestInstallOptionsPtr options);
  void ElementInstallFromManifest(
      ManifestInstallOptionsPtr options, WebInstallServiceResult* out_result);
  WebInstallServiceResult ElementInstallFromManifest(ManifestInstallOptionsPtr options);

 private:
  WebInstallService* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_WEB_INSTALL_WEB_INSTALL_MOJOM_BLINK_TEST_UTILS_H_