// third_party/blink/public/mojom/frame/find_in_page.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_FRAME_FIND_IN_PAGE_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_FIND_IN_PAGE_MOJOM_BLINK_TEST_UTILS_H_

#include "third_party/blink/public/mojom/frame/find_in_page.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h"


namespace blink::mojom::blink {


class CORE_EXPORT FindInPageInterceptorForTesting : public FindInPage {
  virtual FindInPage* GetForwardingInterface() = 0;
  void Find(int32_t request_id, const ::blink::String& search_text, FindOptionsPtr options) override;
  void StopFinding(StopFindAction action) override;
  void ClearActiveFindMatch() override;
  void SetClient(::mojo::PendingRemote<FindInPageClient> client) override;
  void GetNearestFindResult(const ::gfx::PointF& point, GetNearestFindResultCallback callback) override;
  void ActivateNearestFindResult(int32_t request_id, const ::gfx::PointF& point) override;
  void FindMatchRects(int32_t current_version, FindMatchRectsCallback callback) override;
};
class CORE_EXPORT FindInPageAsyncWaiter {
 public:
  explicit FindInPageAsyncWaiter(FindInPage* proxy);

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

  ~FindInPageAsyncWaiter();
  void GetNearestFindResult(
      const ::gfx::PointF& point, float* out_distance);
  float GetNearestFindResult(const ::gfx::PointF& point);
  void FindMatchRects(
      int32_t current_version, int32_t* out_version, ::blink::Vector<::gfx::RectF>* out_rects, ::gfx::RectF* out_active_match_rect);
  

 private:
  FindInPage* const proxy_;
};


class CORE_EXPORT FindInPageClientInterceptorForTesting : public FindInPageClient {
  virtual FindInPageClient* GetForwardingInterface() = 0;
  void SetNumberOfMatches(int32_t request_id, uint32_t number_of_matches, FindMatchUpdateType update_type) override;
  void SetActiveMatch(int32_t request_id, const ::gfx::Rect& active_match_rect, int32_t active_match_ordinal, FindMatchUpdateType update_type) override;
};
class CORE_EXPORT FindInPageClientAsyncWaiter {
 public:
  explicit FindInPageClientAsyncWaiter(FindInPageClient* proxy);

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

  ~FindInPageClientAsyncWaiter();

 private:
  FindInPageClient* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_FRAME_FIND_IN_PAGE_MOJOM_BLINK_TEST_UTILS_H_