// chrome/common/plugin.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 CHROME_COMMON_PLUGIN_MOJOM_TEST_UTILS_H_
#define CHROME_COMMON_PLUGIN_MOJOM_TEST_UTILS_H_

#include "chrome/common/plugin.mojom.h"


namespace chrome::mojom {


class  PluginHostInterceptorForTesting : public PluginHost {
  virtual PluginHost* GetForwardingInterface() = 0;
  void OpenPDF(const ::GURL& url) override;
};
class  PluginHostAsyncWaiter {
 public:
  explicit PluginHostAsyncWaiter(PluginHost* proxy);

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

  ~PluginHostAsyncWaiter();

 private:
  PluginHost* const proxy_;
};


class  PluginAuthHostInterceptorForTesting : public PluginAuthHost {
  virtual PluginAuthHost* GetForwardingInterface() = 0;
  void BlockedUnauthorizedPlugin(const ::std::u16string& name, const std::string& group_id) override;
};
class  PluginAuthHostAsyncWaiter {
 public:
  explicit PluginAuthHostAsyncWaiter(PluginAuthHost* proxy);

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

  ~PluginAuthHostAsyncWaiter();

 private:
  PluginAuthHost* const proxy_;
};


class  PluginInfoHostInterceptorForTesting : public PluginInfoHost {
  virtual PluginInfoHost* GetForwardingInterface() = 0;
  void GetPluginInfo(const ::GURL& url, const std::string& mime_type, GetPluginInfoCallback callback) override;
};
class  PluginInfoHostAsyncWaiter {
 public:
  explicit PluginInfoHostAsyncWaiter(PluginInfoHost* proxy);

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

  ~PluginInfoHostAsyncWaiter();
  void GetPluginInfo(
      const ::GURL& url, const std::string& mime_type, PluginInfoPtr* out_info);
  PluginInfoPtr GetPluginInfo(const ::GURL& url, const std::string& mime_type);

 private:
  PluginInfoHost* const proxy_;
};




}  // chrome::mojom

#endif  // CHROME_COMMON_PLUGIN_MOJOM_TEST_UTILS_H_