// third_party/blink/public/mojom/devtools/devtools_frontend.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_DEVTOOLS_DEVTOOLS_FRONTEND_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_DEVTOOLS_FRONTEND_MOJOM_BLINK_TEST_UTILS_H_

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


namespace blink::mojom::blink {


class PLATFORM_EXPORT DevToolsFrontendInterceptorForTesting : public DevToolsFrontend {
  virtual DevToolsFrontend* GetForwardingInterface() = 0;
  void SetupDevToolsFrontend(const ::blink::String& api_script, ::mojo::PendingAssociatedRemote<DevToolsFrontendHost> host) override;
  void SetupDevToolsExtensionAPI(const ::blink::String& extension_api) override;
};
class PLATFORM_EXPORT DevToolsFrontendAsyncWaiter {
 public:
  explicit DevToolsFrontendAsyncWaiter(DevToolsFrontend* proxy);

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

  ~DevToolsFrontendAsyncWaiter();

 private:
  DevToolsFrontend* const proxy_;
};


class PLATFORM_EXPORT DevToolsFrontendHostInterceptorForTesting : public DevToolsFrontendHost {
  virtual DevToolsFrontendHost* GetForwardingInterface() = 0;
  void DispatchEmbedderMessage(::base::DictValue message) override;
};
class PLATFORM_EXPORT DevToolsFrontendHostAsyncWaiter {
 public:
  explicit DevToolsFrontendHostAsyncWaiter(DevToolsFrontendHost* proxy);

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

  ~DevToolsFrontendHostAsyncWaiter();

 private:
  DevToolsFrontendHost* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVTOOLS_DEVTOOLS_FRONTEND_MOJOM_BLINK_TEST_UTILS_H_