// third_party/blink/public/mojom/input/input_handler.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_INPUT_INPUT_HANDLER_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_INPUT_INPUT_HANDLER_MOJOM_BLINK_TEST_UTILS_H_

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


namespace blink::mojom::blink {


class PLATFORM_EXPORT WidgetInputHandlerHostInterceptorForTesting : public WidgetInputHandlerHost {
  virtual WidgetInputHandlerHost* GetForwardingInterface() = 0;
  void SetTouchActionFromMain(::cc::TouchAction touch_action) override;
  void SetPanAction(PanAction pan_action) override;
  void DidOverscroll(DidOverscrollParamsPtr params) override;
  void DidStartScrollingViewport() override;
  void ImeCancelComposition() override;
  void ImeCompositionRangeChanged(const ::gfx::Range& range, const std::optional<::blink::Vector<::gfx::Rect>>& character_bounds) override;
  void SetMouseCapture(bool capture) override;
  void SetAutoscrollSelectionActiveInMainFrame(bool autoscroll_selection) override;
  void RequestMouseLock(bool from_user_gesture, bool unadjusted_movement, RequestMouseLockCallback callback) override;
};
class PLATFORM_EXPORT WidgetInputHandlerHostAsyncWaiter {
 public:
  explicit WidgetInputHandlerHostAsyncWaiter(WidgetInputHandlerHost* proxy);

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

  ~WidgetInputHandlerHostAsyncWaiter();
  void RequestMouseLock(
      bool from_user_gesture, bool unadjusted_movement, ::blink::mojom::blink::PointerLockResult* out_result, ::mojo::PendingRemote<::blink::mojom::blink::PointerLockContext>* out_context);
  

 private:
  WidgetInputHandlerHost* const proxy_;
};


class PLATFORM_EXPORT FrameWidgetInputHandlerInterceptorForTesting : public FrameWidgetInputHandler {
  virtual FrameWidgetInputHandler* GetForwardingInterface() = 0;
  void AddImeTextSpansToExistingText(uint32_t start, uint32_t end, const ::blink::Vector<::ui::ImeTextSpan>& ime_text_spans) override;
  void ClearImeTextSpansByType(uint32_t start, uint32_t end, ::ui::ImeTextSpan::Type type) override;
  void CancelStylusGesturePreview() override;
  void SetCompositionFromExistingText(int32_t start, int32_t end, const ::blink::Vector<::ui::ImeTextSpan>& ime_text_spans) override;
  void ExtendSelectionAndDelete(int32_t before, int32_t after) override;
  void ExtendSelectionAndReplace(uint32_t before, uint32_t after, const ::blink::String& replacement_text) override;
  void DeleteSurroundingText(int32_t before, int32_t after) override;
  void DeleteSurroundingTextInCodePoints(int32_t before, int32_t after) override;
  void SetEditableSelectionOffsets(int32_t start, int32_t end) override;
  void HandleStylusWritingGestureAction(::blink::mojom::blink::StylusWritingGestureDataPtr gesture_data, HandleStylusWritingGestureActionCallback callback) override;
  void ExecuteEditCommand(const ::blink::String& command, const ::blink::String& value) override;
  void Undo() override;
  void Redo() override;
  void Cut() override;
  void Copy() override;
  void CopyToFindPboard() override;
  void CenterSelection() override;
  void Paste() override;
  void PasteAndMatchStyle() override;
  void PasteFromImageBytes(::mojo_base::BigBuffer image_bytes, const ::blink::String& media_format) override;
  void Delete() override;
  void SelectAll() override;
  void CollapseSelection() override;
  void Replace(const ::blink::String& word) override;
  void ReplaceMisspelling(const ::blink::String& word) override;
  void SelectRange(const ::gfx::Point& base, const ::gfx::Point& extent) override;
  void AdjustSelectionByCharacterOffset(int32_t start, int32_t end, ::blink::mojom::blink::SelectionMenuBehavior behavior) override;
  void SelectAroundCaret(SelectionGranularity granularity, bool should_show_handle, bool should_show_context_menu, SelectAroundCaretCallback callback) override;
  void MoveRangeSelectionExtent(const ::gfx::Point& extent) override;
  void ScrollFocusedEditableNodeIntoView() override;
  void WaitForPageScaleAnimationForTesting(WaitForPageScaleAnimationForTestingCallback callback) override;
  void MoveCaret(const ::gfx::Point& point) override;
};
class PLATFORM_EXPORT FrameWidgetInputHandlerAsyncWaiter {
 public:
  explicit FrameWidgetInputHandlerAsyncWaiter(FrameWidgetInputHandler* proxy);

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

  ~FrameWidgetInputHandlerAsyncWaiter();
  void HandleStylusWritingGestureAction(
      ::blink::mojom::blink::StylusWritingGestureDataPtr gesture_data, ::blink::mojom::blink::HandwritingGestureResult* out_result);
  ::blink::mojom::blink::HandwritingGestureResult HandleStylusWritingGestureAction(::blink::mojom::blink::StylusWritingGestureDataPtr gesture_data);
  void SelectAroundCaret(
      SelectionGranularity granularity, bool should_show_handle, bool should_show_context_menu, SelectAroundCaretResultPtr* out_result);
  SelectAroundCaretResultPtr SelectAroundCaret(SelectionGranularity granularity, bool should_show_handle, bool should_show_context_menu);
  void WaitForPageScaleAnimationForTesting(
      );
  

 private:
  FrameWidgetInputHandler* const proxy_;
};


class PLATFORM_EXPORT WidgetInputHandlerInterceptorForTesting : public WidgetInputHandler {
  virtual WidgetInputHandler* GetForwardingInterface() = 0;
  void SetFocus(FocusState state) override;
  void MouseCaptureLost() override;
  void SetEditCommandsForNextKeyEvent(::blink::Vector<EditCommandPtr> commands) override;
  void CursorVisibilityChanged(bool visible) override;
  void ImeSetComposition(const ::blink::String& text, const ::blink::Vector<::ui::ImeTextSpan>& ime_text_spans, const ::gfx::Range& range, int32_t start, int32_t end, ImeState ime_state, ::blink::mojom::blink::DOMNodeIdPtr target_dom_node_id, ImeSetCompositionCallback callback) override;
  void ImeCommitText(const ::blink::String& text, const ::blink::Vector<::ui::ImeTextSpan>& ime_text_spans, const ::gfx::Range& range, int32_t relative_cursor_position, ::blink::mojom::blink::DOMNodeIdPtr target_dom_node_id, ImeCommitTextCallback callback) override;
  void ImeFinishComposingText(bool keep_selection) override;
  void RequestTextInputStateUpdate() override;
  void RequestCompositionUpdates(bool immediate_request, bool monitor_request) override;
  void PasteIntoNode(const ::blink::String& text, ::blink::mojom::blink::DOMNodeIdPtr target_dom_node_id) override;
  void DispatchEvent(::std::unique_ptr<::blink::WebCoalescedInputEvent> event, std::optional<::std::unique_ptr<::blink::WebCoalescedInputEvent>> original_event_for_gesture, DispatchEventCallback callback) override;
  void DispatchNonBlockingEvent(::std::unique_ptr<::blink::WebCoalescedInputEvent> event) override;
  void WaitForInputProcessed(WaitForInputProcessedCallback callback) override;
  void PingMainThread(PingMainThreadCallback callback) override;
  void AttachSynchronousCompositor(::mojo::PendingRemote<::blink::mojom::blink::SynchronousCompositorControlHost> control_host, ::mojo::PendingAssociatedRemote<::blink::mojom::blink::SynchronousCompositorHost> host, ::mojo::PendingAssociatedReceiver<::blink::mojom::blink::SynchronousCompositor> compositor_request) override;
  void GetFrameWidgetInputHandler(::mojo::PendingAssociatedReceiver<FrameWidgetInputHandler> interface_request) override;
  void UpdateBrowserControlsState(::cc::BrowserControlsState constraints, ::cc::BrowserControlsState current, bool animate, const std::optional<::cc::BrowserControlsOffsetTagModifications>& offset_tag_modifications) override;
};
class PLATFORM_EXPORT WidgetInputHandlerAsyncWaiter {
 public:
  explicit WidgetInputHandlerAsyncWaiter(WidgetInputHandler* proxy);

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

  ~WidgetInputHandlerAsyncWaiter();
  void ImeSetComposition(
      const ::blink::String& text, const ::blink::Vector<::ui::ImeTextSpan>& ime_text_spans, const ::gfx::Range& range, int32_t start, int32_t end, ImeState ime_state, ::blink::mojom::blink::DOMNodeIdPtr target_dom_node_id);
  
  void ImeCommitText(
      const ::blink::String& text, const ::blink::Vector<::ui::ImeTextSpan>& ime_text_spans, const ::gfx::Range& range, int32_t relative_cursor_position, ::blink::mojom::blink::DOMNodeIdPtr target_dom_node_id);
  
  void DispatchEvent(
      ::std::unique_ptr<::blink::WebCoalescedInputEvent> event, std::optional<::std::unique_ptr<::blink::WebCoalescedInputEvent>> original_event_for_gesture, ::blink::mojom::blink::InputEventResultSource* out_source, ::ui::LatencyInfo* out_updated_latency, ::blink::mojom::blink::InputEventResultState* out_state, DidOverscrollParamsPtr* out_overscroll, TouchActionOptionalPtr* out_touch_action);
  
  void WaitForInputProcessed(
      );
  
  void PingMainThread(
      );
  

 private:
  WidgetInputHandler* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_INPUT_INPUT_HANDLER_MOJOM_BLINK_TEST_UTILS_H_