// third_party/blink/public/mojom/page/widget.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_PAGE_WIDGET_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_PAGE_WIDGET_MOJOM_BLINK_TEST_UTILS_H_

#include "third_party/blink/public/mojom/page/widget.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h"


namespace blink::mojom::blink {


class CORE_EXPORT FrameWidgetInterceptorForTesting : public FrameWidget {
  virtual FrameWidget* GetForwardingInterface() = 0;
  void DragTargetDragEnter(const ::blink::WebDragData& drag_data, const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, ::blink::DragOperationsMask operations_allowed, uint32_t key_modifiers, DragTargetDragEnterCallback callback) override;
  void DragTargetDragOver(const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, ::blink::DragOperationsMask operations_allowed, uint32_t key_modifiers, DragTargetDragOverCallback callback) override;
  void DragTargetDragLeave(const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point) override;
  void DragTargetDrop(const ::blink::WebDragData& drag_data, const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, uint32_t key_modifiers, DragTargetDropCallback callback) override;
  void DragSourceEndedAt(const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, ::ui::mojom::blink::DragOperation drag_operation, DragSourceEndedAtCallback callback) override;
  void DragSourceSystemDragEnded() override;
  void OnStartStylusWriting(OnStartStylusWritingCallback callback) override;
  void PassImeRenderWidgetHost(::mojo::PendingRemote<::blink::mojom::blink::ImeRenderWidgetHost> remote) override;
  void SetBackgroundOpaque(bool opaque) override;
  void SetTextDirection(::base::i18n::TextDirection direction) override;
  void SetActive(bool active) override;
  void SetInheritedEffectiveTouchActionForSubFrame(::cc::TouchAction touch_action) override;
  void UpdateRenderThrottlingStatusForSubFrame(bool is_throttled, bool subtree_throttled, bool display_locked) override;
  void SetIsInertForSubFrame(bool inert) override;
  void EnableDeviceEmulation(const ::blink::DeviceEmulationParams& parameters, DeviceEmulationCacheBehavior cache_behavior) override;
  void DisableDeviceEmulation() override;
  void BindWidgetCompositor(::mojo::PendingReceiver<::blink::mojom::blink::WidgetCompositor> host) override;
  void SetViewportIntersection(::blink::mojom::blink::ViewportIntersectionStatePtr intersection_state, const std::optional<::blink::VisualProperties>& visual_properties) override;
  void NotifyClearedDisplayedGraphics() override;
};
class CORE_EXPORT FrameWidgetAsyncWaiter {
 public:
  explicit FrameWidgetAsyncWaiter(FrameWidget* proxy);

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

  ~FrameWidgetAsyncWaiter();
  void DragTargetDragEnter(
      const ::blink::WebDragData& drag_data, const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, ::blink::DragOperationsMask operations_allowed, uint32_t key_modifiers, ::ui::mojom::blink::DragOperation* out_operation, bool* out_document_is_handling_drag);
  
  void DragTargetDragOver(
      const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, ::blink::DragOperationsMask operations_allowed, uint32_t key_modifiers, ::ui::mojom::blink::DragOperation* out_operation, bool* out_document_is_handling_drag);
  
  void DragTargetDrop(
      const ::blink::WebDragData& drag_data, const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, uint32_t key_modifiers);
  
  void DragSourceEndedAt(
      const ::gfx::PointF& point_in_viewport, const ::gfx::PointF& screen_point, ::ui::mojom::blink::DragOperation drag_operation);
  
  void OnStartStylusWriting(
      StylusWritingFocusResultPtr* out_focus_result);
  StylusWritingFocusResultPtr OnStartStylusWriting();

 private:
  FrameWidget* const proxy_;
};


class CORE_EXPORT FrameWidgetHostInterceptorForTesting : public FrameWidgetHost {
  virtual FrameWidgetHost* GetForwardingInterface() = 0;
  void AnimateDoubleTapZoomInMainFrame(const ::gfx::Point& tap_point, const ::gfx::Rect& rect_to_zoom) override;
  void ZoomToFindInPageRectInMainFrame(const ::gfx::Rect& rect_to_zoom) override;
  void SetHasTouchEventConsumers(::blink::mojom::blink::TouchEventConsumersPtr touch_event_consumers) override;
  void IntrinsicSizingInfoChanged(::blink::mojom::blink::IntrinsicSizingInfoPtr sizing_info) override;
  void AutoscrollStart(const ::gfx::PointF& position) override;
  void AutoscrollFling(const ::gfx::Vector2dF& velocity) override;
  void AutoscrollEnd() override;
};
class CORE_EXPORT FrameWidgetHostAsyncWaiter {
 public:
  explicit FrameWidgetHostAsyncWaiter(FrameWidgetHost* proxy);

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

  ~FrameWidgetHostAsyncWaiter();

 private:
  FrameWidgetHost* const proxy_;
};


class CORE_EXPORT PopupWidgetHostInterceptorForTesting : public PopupWidgetHost {
  virtual PopupWidgetHost* GetForwardingInterface() = 0;
  void RequestClosePopup() override;
  void ShowPopup(const ::gfx::Rect& initial_rect, const ::gfx::Rect& anchor_rect, ShowPopupCallback callback) override;
  void SetPopupBounds(const ::gfx::Rect& bounds, SetPopupBoundsCallback callback) override;
};
class CORE_EXPORT PopupWidgetHostAsyncWaiter {
 public:
  explicit PopupWidgetHostAsyncWaiter(PopupWidgetHost* proxy);

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

  ~PopupWidgetHostAsyncWaiter();
  void ShowPopup(
      const ::gfx::Rect& initial_rect, const ::gfx::Rect& anchor_rect);
  
  void SetPopupBounds(
      const ::gfx::Rect& bounds);
  

 private:
  PopupWidgetHost* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_PAGE_WIDGET_MOJOM_BLINK_TEST_UTILS_H_