// chrome/common/chrome_render_frame.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_CHROME_RENDER_FRAME_MOJOM_TEST_UTILS_H_
#define CHROME_COMMON_CHROME_RENDER_FRAME_MOJOM_TEST_UTILS_H_

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


namespace chrome::mojom {


class  ChromeRenderFrameInterceptorForTesting : public ChromeRenderFrame {
  virtual ChromeRenderFrame* GetForwardingInterface() = 0;
  void SetWindowFeatures(::blink::mojom::WindowFeaturesPtr window_features) override;
  void RequestReloadImageForContextNode() override;
  void RequestBitmapForContextNode(RequestBitmapForContextNodeCallback callback) override;
  void RequestBitmapForContextNodeWithBoundsHint(RequestBitmapForContextNodeWithBoundsHintCallback callback) override;
  void RequestBoundsHintForAllImages(RequestBoundsHintForAllImagesCallback callback) override;
  void RequestImageForContextNode(int32_t image_min_area_pixels, const ::gfx::Size& image_max_size_pixels, ImageFormat image_format, int32_t quality, RequestImageForContextNodeCallback callback) override;
  void ExecuteWebUIJavaScript(const ::std::u16string& javascript) override;
  void SetCCTClientHeader(const std::string& header) override;
  void GetMediaFeedURL(GetMediaFeedURLCallback callback) override;
  void LoadBlockedPlugins(const std::string& identifier) override;
  void SetShouldDeferMediaLoad(bool should_defer) override;
  void InitializeTool(::actor::mojom::ToolInvocationPtr request, InitializeToolCallback callback) override;
  void ExecuteTool(const ::actor::TaskId& task_id, ExecuteToolCallback callback) override;
  void InvokeTool(::actor::mojom::ToolInvocationPtr request, InvokeToolCallback callback) override;
  void CancelTool(const ::actor::TaskId& task_id) override;
  void GetCrossDocumentScriptToolResult(const ::base::UnguessableToken& execution_id, GetCrossDocumentScriptToolResultCallback callback) override;
  void StartActorJournal(::mojo::PendingAssociatedRemote<::actor::mojom::JournalClient> client) override;
  void CreatePageStabilityMonitor(::mojo::PendingReceiver<::page_content_annotations::mojom::PageStabilityMonitor> monitor, const ::actor::TaskId& task_id, bool supports_paint_stability) override;
};
class  ChromeRenderFrameAsyncWaiter {
 public:
  explicit ChromeRenderFrameAsyncWaiter(ChromeRenderFrame* proxy);

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

  ~ChromeRenderFrameAsyncWaiter();
  void RequestBitmapForContextNode(
      ::SkBitmap* out_bitmap);
  ::SkBitmap RequestBitmapForContextNode();
  void RequestBitmapForContextNodeWithBoundsHint(
      ::SkBitmap* out_bitmap, ::gfx::Rect* out_bounds);
  
  void RequestBoundsHintForAllImages(
      std::vector<::gfx::Rect>* out_all_bounds);
  std::vector<::gfx::Rect> RequestBoundsHintForAllImages();
  void RequestImageForContextNode(
      int32_t image_min_area_pixels, const ::gfx::Size& image_max_size_pixels, ImageFormat image_format, int32_t quality, std::vector<uint8_t>* out_image_data, ::gfx::Size* out_original_size, ::gfx::Size* out_downscaled_size, std::string* out_mime_type, std::vector<::lens::mojom::LatencyLogPtr>* out_log_data);
  
  void GetMediaFeedURL(
      std::optional<::GURL>* out_url);
  std::optional<::GURL> GetMediaFeedURL();
  void InitializeTool(
      ::actor::mojom::ToolInvocationPtr request, ::actor::mojom::InitializeToolResultPtr* out_result);
  ::actor::mojom::InitializeToolResultPtr InitializeTool(::actor::mojom::ToolInvocationPtr request);
  void ExecuteTool(
      const ::actor::TaskId& task_id, ::actor::mojom::ActionResultPtr* out_result);
  ::actor::mojom::ActionResultPtr ExecuteTool(const ::actor::TaskId& task_id);
  void InvokeTool(
      ::actor::mojom::ToolInvocationPtr request, ::actor::mojom::ActionResultPtr* out_result);
  ::actor::mojom::ActionResultPtr InvokeTool(::actor::mojom::ToolInvocationPtr request);
  void GetCrossDocumentScriptToolResult(
      const ::base::UnguessableToken& execution_id, std::string* out_result);
  std::string GetCrossDocumentScriptToolResult(const ::base::UnguessableToken& execution_id);

 private:
  ChromeRenderFrame* const proxy_;
};




}  // chrome::mojom

#endif  // CHROME_COMMON_CHROME_RENDER_FRAME_MOJOM_TEST_UTILS_H_