#include "third_party/blink/renderer/core/frame/web_frame_widget_impl.h"
#include <memory>
#include <utility>
#include "base/auto_reset.h"
#include "base/debug/crash_logging.h"
#include "base/debug/dump_without_crashing.h"
#include "base/functional/callback_helpers.h"
#include "base/functional/function_ref.h"
#include "base/metrics/histogram_macros.h"
#include "base/numerics/safe_conversions.h"
#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
#include "base/types/optional_ref.h"
#include "build/build_config.h"
#include "cc/animation/animation_host.h"
#include "cc/base/features.h"
#include "cc/input/browser_controls_offset_tags_info.h"
#include "cc/trees/compositor_commit_data.h"
#include "cc/trees/layer_tree_host.h"
#include "cc/trees/swap_promise.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/page/page_zoom.h"
#include "third_party/blink/public/mojom/frame/intrinsic_sizing_info.mojom-blink.h"
#include "third_party/blink/public/mojom/input/input_handler.mojom-blink.h"
#include "third_party/blink/public/mojom/input/touch_event.mojom-blink.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/web/web_autofill_client.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
#include "third_party/blink/public/web/web_non_composited_widget_client.h"
#include "third_party/blink/public/web/web_performance_metrics_for_reporting.h"
#include "third_party/blink/public/web/web_plugin.h"
#include "third_party/blink/public/web/web_settings.h"
#include "third_party/blink/public/web/web_view_client.h"
#include "third_party/blink/renderer/core/accessibility/histogram_macros.h"
#include "third_party/blink/renderer/core/content_capture/content_capture_manager.h"
#include "third_party/blink/renderer/core/core_initializer.h"
#include "third_party/blink/renderer/core/css/properties/longhands.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/focus_params.h"
#include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
#include "third_party/blink/renderer/core/editing/editing_utilities.h"
#include "third_party/blink/renderer/core/editing/ephemeral_range.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/editing/ime/edit_context.h"
#include "third_party/blink/renderer/core/editing/ime/input_method_controller.h"
#include "third_party/blink/renderer/core/editing/ime/stylus_writing_gesture.h"
#include "third_party/blink/renderer/core/editing/selection_template.h"
#include "third_party/blink/renderer/core/events/current_input_event.h"
#include "third_party/blink/renderer/core/events/pointer_event_factory.h"
#include "third_party/blink/renderer/core/events/web_input_event_conversion.h"
#include "third_party/blink/renderer/core/events/wheel_event.h"
#include "third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.h"
#include "third_party/blink/renderer/core/exported/web_plugin_container_impl.h"
#include "third_party/blink/renderer/core/exported/web_settings_impl.h"
#include "third_party/blink/renderer/core/exported/web_view_impl.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/remote_frame_client.h"
#include "third_party/blink/renderer/core/frame/screen.h"
#include "third_party/blink/renderer/core/frame/screen_metrics_emulator.h"
#include "third_party/blink/renderer/core/frame/settings.h"
#include "third_party/blink/renderer/core/frame/visual_viewport.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
#include "third_party/blink/renderer/core/html/fenced_frame/document_fenced_frames.h"
#include "third_party/blink/renderer/core/html/fenced_frame/html_fenced_frame_element.h"
#include "third_party/blink/renderer/core/html/forms/text_control_element.h"
#include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
#include "third_party/blink/renderer/core/html/html_plugin_element.h"
#include "third_party/blink/renderer/core/html/plugin_document.h"
#include "third_party/blink/renderer/core/input/context_menu_allowed_scope.h"
#include "third_party/blink/renderer/core/input/event_handler.h"
#include "third_party/blink/renderer/core/input/touch_action_util.h"
#include "third_party/blink/renderer/core/layout/hit_test_location.h"
#include "third_party/blink/renderer/core/layout/hit_test_request.h"
#include "third_party/blink/renderer/core/layout/layout_box.h"
#include "third_party/blink/renderer/core/layout/layout_embedded_content.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_shift_tracker.h"
#include "third_party/blink/renderer/core/layout/layout_text.h"
#include "third_party/blink/renderer/core/loader/anchor_element_interaction_tracker.h"
#include "third_party/blink/renderer/core/loader/document_loader.h"
#include "third_party/blink/renderer/core/loader/interactive_detector.h"
#include "third_party/blink/renderer/core/page/context_menu_controller.h"
#include "third_party/blink/renderer/core/page/drag_actions.h"
#include "third_party/blink/renderer/core/page/drag_data.h"
#include "third_party/blink/renderer/core/page/focus_controller.h"
#include "third_party/blink/renderer/core/page/link_highlight.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/page_animator.h"
#include "third_party/blink/renderer/core/page/pointer_lock_controller.h"
#include "third_party/blink/renderer/core/page/scrolling/fragment_anchor.h"
#include "third_party/blink/renderer/core/page/validation_message_client.h"
#include "third_party/blink/renderer/core/page/viewport_description.h"
#include "third_party/blink/renderer/core/paint/timing/first_meaningful_paint_detector.h"
#include "third_party/blink/renderer/core/paint/timing/paint_timing_detector.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h"
#include "third_party/blink/renderer/core/scroll/scrollbar_theme.h"
#include "third_party/blink/renderer/core/timing/dom_window_performance.h"
#include "third_party/blink/renderer/core/timing/window_performance.h"
#include "third_party/blink/renderer/core/view_transition/view_transition.h"
#include "third_party/blink/renderer/core/view_transition/view_transition_utils.h"
#include "third_party/blink/renderer/platform/graphics/animation_worklet_mutator_dispatcher_impl.h"
#include "third_party/blink/renderer/platform/graphics/compositor_mutator_client.h"
#include "third_party/blink/renderer/platform/graphics/paint_worklet_paint_dispatcher.h"
#include "third_party/blink/renderer/platform/heap/cross_thread_handle.h"
#include "third_party/blink/renderer/platform/heap/persistent.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/keyboard_codes.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/scheduler/public/non_main_thread.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/widget/input/main_thread_event_queue.h"
#include "third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.h"
#include "third_party/blink/renderer/platform/widget/widget_base.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_base.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "ui/base/dragdrop/mojom/drag_drop_types.mojom-blink.h"
#include "ui/base/ui_base_types.h"
#include "ui/gfx/geometry/point_conversions.h"
#if BUILDFLAG(IS_MAC)
#include "third_party/blink/renderer/core/editing/substring_util.h"
#include "third_party/blink/renderer/platform/fonts/mac/attributed_string_type_converter.h"
#include "ui/base/mojom/attributed_string.mojom-blink.h"
#include "ui/gfx/geometry/point.h"
#endif
namespace WTF {
template <>
struct CrossThreadCopier<blink::WebFrameWidgetImpl::PromiseCallbacks>
: public CrossThreadCopierByValuePassThrough<
blink::WebFrameWidgetImpl::PromiseCallbacks> { … };
}
namespace blink {
namespace {
DragOperation;
void ForEachLocalFrameControlledByWidget(
LocalFrame* frame,
base::FunctionRef<void(WebLocalFrameImpl*)> callback) { … }
void ForEachRemoteFrameChildrenControlledByWidget(
Frame* frame,
base::FunctionRef<void(RemoteFrame*)> callback) { … }
viz::FrameSinkId GetRemoteFrameSinkId(const HitTestResult& result) { … }
bool IsElementNotNullAndEditable(Element* element) { … }
bool& InputDisabledPerBrowsingContextGroup(
const base::UnguessableToken& token) { … }
}
bool WebFrameWidgetImpl::ignore_input_events_ = …;
void WebFrameWidgetImpl::SetIgnoreInputEvents(
const base::UnguessableToken& browsing_context_group_token,
bool value) { … }
bool WebFrameWidgetImpl::IgnoreInputEvents(
const base::UnguessableToken& browsing_context_group_token) { … }
WebFrameWidgetImpl::WebFrameWidgetImpl(
base::PassKey<WebLocalFrame>,
CrossVariantMojoAssociatedRemote<mojom::blink::FrameWidgetHostInterfaceBase>
frame_widget_host,
CrossVariantMojoAssociatedReceiver<mojom::blink::FrameWidgetInterfaceBase>
frame_widget,
CrossVariantMojoAssociatedRemote<mojom::blink::WidgetHostInterfaceBase>
widget_host,
CrossVariantMojoAssociatedReceiver<mojom::blink::WidgetInterfaceBase>
widget,
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
const viz::FrameSinkId& frame_sink_id,
bool hidden,
bool never_composited,
bool is_for_child_local_root,
bool is_for_nested_main_frame,
bool is_for_scalable_page)
: … { … }
WebFrameWidgetImpl::~WebFrameWidgetImpl() { … }
void WebFrameWidgetImpl::BindLocalRoot(WebLocalFrame& local_root) { … }
bool WebFrameWidgetImpl::ForTopMostMainFrame() const { … }
void WebFrameWidgetImpl::Close() { … }
WebLocalFrame* WebFrameWidgetImpl::LocalRoot() const { … }
bool WebFrameWidgetImpl::RequestedMainFramePending() { … }
ukm::UkmRecorder* WebFrameWidgetImpl::MainFrameUkmRecorder() { … }
ukm::SourceId WebFrameWidgetImpl::MainFrameUkmSourceId() { … }
gfx::Rect WebFrameWidgetImpl::ComputeBlockBound(
const gfx::Point& point_in_root_frame,
bool ignore_clipping) const { … }
void WebFrameWidgetImpl::DragTargetDragEnter(
const WebDragData& web_drag_data,
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
DragOperationsMask operations_allowed,
uint32_t key_modifiers,
DragTargetDragEnterCallback callback) { … }
void WebFrameWidgetImpl::DragTargetDragOver(
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
DragOperationsMask operations_allowed,
uint32_t key_modifiers,
DragTargetDragOverCallback callback) { … }
void WebFrameWidgetImpl::DragTargetDragLeave(
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point) { … }
void WebFrameWidgetImpl::DragTargetDrop(const WebDragData& web_drag_data,
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
uint32_t key_modifiers,
base::OnceClosure callback) { … }
void WebFrameWidgetImpl::DragSourceEndedAt(const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
DragOperation operation,
base::OnceClosure callback) { … }
void WebFrameWidgetImpl::DragSourceSystemDragEnded() { … }
gfx::Rect WebFrameWidgetImpl::GetAbsoluteCaretBounds() { … }
void WebFrameWidgetImpl::OnStartStylusWriting(
OnStartStylusWritingCallback callback) { … }
#if BUILDFLAG(IS_ANDROID)
void WebFrameWidgetImpl::PassImeRenderWidgetHost(
mojo::PendingRemote<mojom::blink::ImeRenderWidgetHost> pending_remote) {
ime_render_widget_host_ =
HeapMojoRemote<mojom::blink::ImeRenderWidgetHost>(nullptr);
ime_render_widget_host_.Bind(
std::move(pending_remote),
local_root_->GetTaskRunner(TaskType::kInternalDefault));
}
#endif
void WebFrameWidgetImpl::NotifyClearedDisplayedGraphics() { … }
void WebFrameWidgetImpl::HandleStylusWritingGestureAction(
mojom::blink::StylusWritingGestureDataPtr gesture_data,
HandleStylusWritingGestureActionCallback callback) { … }
void WebFrameWidgetImpl::SetBackgroundOpaque(bool opaque) { … }
void WebFrameWidgetImpl::SetTextDirection(base::i18n::TextDirection direction) { … }
void WebFrameWidgetImpl::SetInheritedEffectiveTouchActionForSubFrame(
TouchAction touch_action) { … }
void WebFrameWidgetImpl::UpdateRenderThrottlingStatusForSubFrame(
bool is_throttled,
bool subtree_throttled,
bool display_locked) { … }
#if BUILDFLAG(IS_MAC)
void WebFrameWidgetImpl::GetStringAtPoint(const gfx::Point& point_in_local_root,
GetStringAtPointCallback callback) {
gfx::Point baseline_point;
ui::mojom::blink::AttributedStringPtr attributed_string = nullptr;
base::apple::ScopedCFTypeRef<CFAttributedStringRef> string =
SubstringUtil::AttributedWordAtPoint(this, point_in_local_root,
baseline_point);
if (string) {
attributed_string = ui::mojom::blink::AttributedString::From(string.get());
}
std::move(callback).Run(std::move(attributed_string), baseline_point);
}
#endif
void WebFrameWidgetImpl::BindWidgetCompositor(
mojo::PendingReceiver<mojom::blink::WidgetCompositor> receiver) { … }
void WebFrameWidgetImpl::BindInputTargetClient(
mojo::PendingReceiver<viz::mojom::blink::InputTargetClient> receiver) { … }
void WebFrameWidgetImpl::FrameSinkIdAt(const gfx::PointF& point,
const uint64_t trace_id,
FrameSinkIdAtCallback callback) { … }
viz::FrameSinkId WebFrameWidgetImpl::GetFrameSinkIdAtPoint(
const gfx::PointF& point_in_dips,
gfx::PointF* local_point_in_dips) { … }
gfx::RectF WebFrameWidgetImpl::BlinkSpaceToDIPs(const gfx::RectF& rect) { … }
gfx::Rect WebFrameWidgetImpl::BlinkSpaceToEnclosedDIPs(const gfx::Rect& rect) { … }
gfx::Size WebFrameWidgetImpl::BlinkSpaceToFlooredDIPs(const gfx::Size& size) { … }
gfx::RectF WebFrameWidgetImpl::DIPsToBlinkSpace(const gfx::RectF& rect) { … }
gfx::PointF WebFrameWidgetImpl::DIPsToBlinkSpace(const gfx::PointF& point) { … }
gfx::Point WebFrameWidgetImpl::DIPsToRoundedBlinkSpace(
const gfx::Point& point) { … }
float WebFrameWidgetImpl::DIPsToBlinkSpace(float scalar) { … }
gfx::Size WebFrameWidgetImpl::DIPsToCeiledBlinkSpace(const gfx::Size& size) { … }
void WebFrameWidgetImpl::SetActive(bool active) { … }
WebInputEventResult WebFrameWidgetImpl::HandleKeyEvent(
const WebKeyboardEvent& event) { … }
void WebFrameWidgetImpl::HandleMouseDown(LocalFrame& local_root,
const WebMouseEvent& event) { … }
void WebFrameWidgetImpl::HandleMouseLeave(LocalFrame& local_root,
const WebMouseEvent& event) { … }
void WebFrameWidgetImpl::MouseContextMenu(const WebMouseEvent& event) { … }
WebInputEventResult WebFrameWidgetImpl::HandleMouseUp(
LocalFrame& local_root,
const WebMouseEvent& event) { … }
WebInputEventResult WebFrameWidgetImpl::HandleGestureEvent(
const WebGestureEvent& event) { … }
WebInputEventResult WebFrameWidgetImpl::HandleMouseWheel(
LocalFrame& frame,
const WebMouseWheelEvent& event) { … }
WebInputEventResult WebFrameWidgetImpl::HandleCharEvent(
const WebKeyboardEvent& event) { … }
void WebFrameWidgetImpl::CancelDrag() { … }
void WebFrameWidgetImpl::StartDragging(LocalFrame* source_frame,
const WebDragData& drag_data,
DragOperationsMask operations_allowed,
const SkBitmap& drag_image,
const gfx::Vector2d& cursor_offset,
const gfx::Rect& drag_obj_rect) { … }
void WebFrameWidgetImpl::DragTargetDragEnterOrOver(
const gfx::PointF& point_in_viewport,
const gfx::PointF& screen_point,
DragAction drag_action,
uint32_t key_modifiers) { … }
void WebFrameWidgetImpl::SendOverscrollEventFromImplSide(
const gfx::Vector2dF& overscroll_delta,
cc::ElementId scroll_latched_element_id) { … }
void WebFrameWidgetImpl::SendEndOfScrollEvents(
bool affects_outer_viewport,
bool affects_inner_viewport,
cc::ElementId scroll_latched_element_id) { … }
void WebFrameWidgetImpl::SendScrollSnapChangingEventIfNeeded(
const cc::CompositorCommitData& commit_data) { … }
void WebFrameWidgetImpl::UpdateCompositorScrollState(
const cc::CompositorCommitData& commit_data) { … }
bool WebFrameWidgetImpl::IsScrollGestureActive() const { … }
void WebFrameWidgetImpl::RequestViewportScreenshot(
const base::UnguessableToken& token) { … }
void WebFrameWidgetImpl::RequestNewLocalSurfaceId() { … }
WebInputMethodController*
WebFrameWidgetImpl::GetActiveWebInputMethodController() const { … }
void WebFrameWidgetImpl::DisableDragAndDrop() { … }
gfx::PointF WebFrameWidgetImpl::ViewportToRootFrame(
const gfx::PointF& point_in_viewport) const { … }
WebViewImpl* WebFrameWidgetImpl::View() const { … }
Page* WebFrameWidgetImpl::GetPage() const { … }
mojom::blink::FrameWidgetHost*
WebFrameWidgetImpl::GetAssociatedFrameWidgetHost() const { … }
void WebFrameWidgetImpl::RequestDecode(
const PaintImage& image,
base::OnceCallback<void(bool)> callback) { … }
void WebFrameWidgetImpl::Trace(Visitor* visitor) const { … }
void WebFrameWidgetImpl::SetNeedsRecalculateRasterScales() { … }
void WebFrameWidgetImpl::SetBackgroundColor(SkColor color) { … }
void WebFrameWidgetImpl::SetOverscrollBehavior(
const cc::OverscrollBehavior& overscroll_behavior) { … }
void WebFrameWidgetImpl::SetPrefersReducedMotion(bool prefers_reduced_motion) { … }
void WebFrameWidgetImpl::StartPageScaleAnimation(const gfx::Point& destination,
bool use_anchor,
float new_page_scale,
base::TimeDelta duration) { … }
void WebFrameWidgetImpl::RequestBeginMainFrameNotExpected(bool request) { … }
void WebFrameWidgetImpl::DidCommitAndDrawCompositorFrame() { … }
void WebFrameWidgetImpl::DidObserveFirstScrollDelay(
base::TimeDelta first_scroll_delay,
base::TimeTicks first_scroll_timestamp) { … }
bool WebFrameWidgetImpl::ShouldIgnoreInputEvents() { … }
std::unique_ptr<cc::LayerTreeFrameSink>
WebFrameWidgetImpl::AllocateNewLayerTreeFrameSink() { … }
void WebFrameWidgetImpl::ReportLongAnimationFrameTiming(
AnimationFrameTimingInfo* timing_info) { … }
void WebFrameWidgetImpl::ReportLongTaskTiming(base::TimeTicks start_time,
base::TimeTicks end_time,
ExecutionContext* task_context) { … }
bool WebFrameWidgetImpl::ShouldReportLongAnimationFrameTiming() const { … }
void WebFrameWidgetImpl::OnTaskCompletedForFrame(
base::TimeTicks start_time,
base::TimeTicks end_time,
LocalFrame* frame) { … }
void WebFrameWidgetImpl::DidBeginMainFrame() { … }
void WebFrameWidgetImpl::UpdateLifecycle(WebLifecycleUpdate requested_update,
DocumentUpdateReason reason) { … }
void WebFrameWidgetImpl::DidCompletePageScaleAnimation() { … }
void WebFrameWidgetImpl::ScheduleAnimation() { … }
void WebFrameWidgetImpl::FocusChanged(mojom::blink::FocusState focus_state) { … }
bool WebFrameWidgetImpl::ShouldAckSyntheticInputImmediately() { … }
void WebFrameWidgetImpl::UpdateVisualProperties(
const VisualProperties& visual_properties) { … }
void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
const VisualProperties& visual_properties) { … }
bool WebFrameWidgetImpl::DidChangeFullscreenState(
const VisualProperties& visual_properties) const { … }
int WebFrameWidgetImpl::GetLayerTreeId() { … }
const cc::LayerTreeSettings* WebFrameWidgetImpl::GetLayerTreeSettings() { … }
void WebFrameWidgetImpl::UpdateBrowserControlsState(
cc::BrowserControlsState constraints,
cc::BrowserControlsState current,
bool animate,
base::optional_ref<const cc::BrowserControlsOffsetTagsInfo>
offset_tags_info) { … }
void WebFrameWidgetImpl::SetHaveScrollEventHandlers(bool has_handlers) { … }
void WebFrameWidgetImpl::SetEventListenerProperties(
cc::EventListenerClass listener_class,
cc::EventListenerProperties listener_properties) { … }
cc::EventListenerProperties WebFrameWidgetImpl::EventListenerProperties(
cc::EventListenerClass listener_class) const { … }
mojom::blink::DisplayMode WebFrameWidgetImpl::DisplayMode() const { … }
ui::WindowShowState WebFrameWidgetImpl::WindowShowState() const { … }
bool WebFrameWidgetImpl::Resizable() const { … }
const WebVector<gfx::Rect>& WebFrameWidgetImpl::ViewportSegments() const { … }
bool WebFrameWidgetImpl::StartDeferringCommits(base::TimeDelta timeout,
cc::PaintHoldingReason reason) { … }
void WebFrameWidgetImpl::StopDeferringCommits(
cc::PaintHoldingCommitTrigger triggger) { … }
std::unique_ptr<cc::ScopedPauseRendering> WebFrameWidgetImpl::PauseRendering() { … }
std::optional<int> WebFrameWidgetImpl::GetMaxRenderBufferBounds() const { … }
std::unique_ptr<cc::ScopedDeferMainFrameUpdate>
WebFrameWidgetImpl::DeferMainFrameUpdate() { … }
void WebFrameWidgetImpl::SetBrowserControlsShownRatio(float top_ratio,
float bottom_ratio) { … }
void WebFrameWidgetImpl::SetBrowserControlsParams(
cc::BrowserControlsParams params) { … }
void WebFrameWidgetImpl::SynchronouslyCompositeForTesting(
base::TimeTicks frame_time) { … }
void WebFrameWidgetImpl::SetDeviceColorSpaceForTesting(
const gfx::ColorSpace& color_space) { … }
void WebFrameWidgetImpl::PointerLockMouseEvent(
const WebCoalescedInputEvent& coalesced_event) { … }
bool WebFrameWidgetImpl::IsPointerLocked() { … }
void WebFrameWidgetImpl::ShowContextMenu(
ui::mojom::blink::MenuSourceType source_type,
const gfx::Point& location) { … }
void WebFrameWidgetImpl::SetViewportIntersection(
mojom::blink::ViewportIntersectionStatePtr intersection_state,
const std::optional<VisualProperties>& visual_properties) { … }
void WebFrameWidgetImpl::ApplyViewportIntersectionForTesting(
mojom::blink::ViewportIntersectionStatePtr intersection_state) { … }
void WebFrameWidgetImpl::ApplyViewportIntersection(
mojom::blink::ViewportIntersectionStatePtr intersection_state) { … }
void WebFrameWidgetImpl::EnableDeviceEmulation(
const DeviceEmulationParams& parameters) { … }
void WebFrameWidgetImpl::DisableDeviceEmulation() { … }
void WebFrameWidgetImpl::SetIsInertForSubFrame(bool inert) { … }
std::optional<gfx::Point> WebFrameWidgetImpl::GetAndResetContextMenuLocation() { … }
double WebFrameWidgetImpl::GetZoomLevel() { … }
void WebFrameWidgetImpl::SetZoomLevel(double zoom_level) { … }
void WebFrameWidgetImpl::SetZoomInternal(double zoom_level,
double css_zoom_factor) { … }
void WebFrameWidgetImpl::SetAutoResizeMode(bool auto_resize,
const gfx::Size& min_window_size,
const gfx::Size& max_window_size,
float device_scale_factor) { … }
void WebFrameWidgetImpl::DidAutoResize(const gfx::Size& size) { … }
LocalFrame* WebFrameWidgetImpl::FocusedLocalFrameInWidget() const { … }
WebLocalFrameImpl* WebFrameWidgetImpl::FocusedWebLocalFrameInWidget() const { … }
bool WebFrameWidgetImpl::ScrollFocusedEditableElementIntoView() { … }
void WebFrameWidgetImpl::ResetMeaningfulLayoutStateForMainFrame() { … }
void WebFrameWidgetImpl::InitializeCompositing(
const display::ScreenInfos& screen_infos,
const cc::LayerTreeSettings* settings) { … }
void WebFrameWidgetImpl::InitializeCompositingFromPreviousWidget(
const display::ScreenInfos& screen_infos,
const cc::LayerTreeSettings* settings,
WebFrameWidget& previous_widget) { … }
void WebFrameWidgetImpl::InitializeCompositingInternal(
const display::ScreenInfos& screen_infos,
const cc::LayerTreeSettings* settings,
WebFrameWidget* previous_widget) { … }
void WebFrameWidgetImpl::InitializeNonCompositing(
WebNonCompositedWidgetClient* client) { … }
void WebFrameWidgetImpl::SetCompositorVisible(bool visible) { … }
void WebFrameWidgetImpl::WarmUpCompositor() { … }
gfx::Size WebFrameWidgetImpl::Size() { … }
void WebFrameWidgetImpl::Resize(const gfx::Size& new_size) { … }
void WebFrameWidgetImpl::OnCommitRequested() { … }
void WebFrameWidgetImpl::BeginMainFrame(base::TimeTicks last_frame_time) { … }
void WebFrameWidgetImpl::BeginCommitCompositorFrame() { … }
void WebFrameWidgetImpl::EndCommitCompositorFrame(
base::TimeTicks commit_start_time,
base::TimeTicks commit_finish_time) { … }
void WebFrameWidgetImpl::ApplyViewportChanges(
const ApplyViewportChangesArgs& args) { … }
void WebFrameWidgetImpl::RecordManipulationTypeCounts(
cc::ManipulationInfo info) { … }
void WebFrameWidgetImpl::RecordDispatchRafAlignedInputTime(
base::TimeTicks raf_aligned_input_start_time) { … }
void WebFrameWidgetImpl::SetSuppressFrameRequestsWorkaroundFor704763Only(
bool suppress_frame_requests) { … }
void WebFrameWidgetImpl::CountDroppedPointerDownForEventTiming(unsigned count) { … }
std::unique_ptr<cc::BeginMainFrameMetrics>
WebFrameWidgetImpl::GetBeginMainFrameMetrics() { … }
std::unique_ptr<cc::WebVitalMetrics> WebFrameWidgetImpl::GetWebVitalMetrics() { … }
void WebFrameWidgetImpl::BeginUpdateLayers() { … }
void WebFrameWidgetImpl::EndUpdateLayers() { … }
void WebFrameWidgetImpl::RecordStartOfFrameMetrics() { … }
void WebFrameWidgetImpl::RecordEndOfFrameMetrics(
base::TimeTicks frame_begin_time,
cc::ActiveFrameSequenceTrackers trackers) { … }
void WebFrameWidgetImpl::WillHandleGestureEvent(const WebGestureEvent& event,
bool* suppress) { … }
void WebFrameWidgetImpl::WillHandleMouseEvent(const WebMouseEvent& event) { … }
void WebFrameWidgetImpl::ObserveGestureEventAndResult(
const WebGestureEvent& gesture_event,
const gfx::Vector2dF& unused_delta,
const cc::OverscrollBehavior& overscroll_behavior,
bool event_processed) { … }
void WebFrameWidgetImpl::DidHandleKeyEvent() { … }
WebTextInputType WebFrameWidgetImpl::GetTextInputType() { … }
void WebFrameWidgetImpl::SetCursorVisibilityState(bool is_visible) { … }
void WebFrameWidgetImpl::ApplyViewportChangesForTesting(
const ApplyViewportChangesArgs& args) { … }
void WebFrameWidgetImpl::SetDisplayMode(mojom::blink::DisplayMode mode) { … }
void WebFrameWidgetImpl::SetWindowShowState(ui::WindowShowState state) { … }
void WebFrameWidgetImpl::SetResizable(bool resizable) { … }
void WebFrameWidgetImpl::OverrideDevicePostureForEmulation(
mojom::blink::DevicePostureType device_posture_param) { … }
void WebFrameWidgetImpl::DisableDevicePostureOverrideForEmulation() { … }
void WebFrameWidgetImpl::SetViewportSegments(
const std::vector<gfx::Rect>& viewport_segments_param) { … }
void WebFrameWidgetImpl::SetCursor(const ui::Cursor& cursor) { … }
bool WebFrameWidgetImpl::HandlingInputEvent() { … }
void WebFrameWidgetImpl::SetHandlingInputEvent(bool handling) { … }
void WebFrameWidgetImpl::ProcessInputEventSynchronouslyForTesting(
const WebCoalescedInputEvent& event,
WidgetBaseInputHandler::HandledEventCallback callback) { … }
void WebFrameWidgetImpl::ProcessInputEventSynchronouslyForTesting(
const WebCoalescedInputEvent& event) { … }
WebInputEventResult WebFrameWidgetImpl::DispatchBufferedTouchEvents() { … }
WebInputEventResult WebFrameWidgetImpl::HandleInputEvent(
const WebCoalescedInputEvent& coalesced_event) { … }
WebInputEventResult WebFrameWidgetImpl::HandleCapturedMouseEvent(
const WebCoalescedInputEvent& coalesced_event) { … }
void WebFrameWidgetImpl::UpdateTextInputState() { … }
void WebFrameWidgetImpl::UpdateSelectionBounds() { … }
void WebFrameWidgetImpl::ShowVirtualKeyboard() { … }
void WebFrameWidgetImpl::FlushInputProcessedCallback() { … }
void WebFrameWidgetImpl::CancelCompositionForPepper() { … }
void WebFrameWidgetImpl::RequestMouseLock(
bool has_transient_user_activation,
bool request_unadjusted_movement,
mojom::blink::WidgetInputHandlerHost::RequestMouseLockCallback callback) { … }
void WebFrameWidgetImpl::MouseCaptureLost() { … }
void WebFrameWidgetImpl::ApplyVisualProperties(
const VisualProperties& visual_properties) { … }
bool WebFrameWidgetImpl::IsFullscreenGranted() { … }
bool WebFrameWidgetImpl::PinchGestureActiveInMainFrame() { … }
float WebFrameWidgetImpl::PageScaleInMainFrame() { … }
void WebFrameWidgetImpl::UpdateSurfaceAndScreenInfo(
const viz::LocalSurfaceId& new_local_surface_id,
const gfx::Rect& compositor_viewport_pixel_rect,
const display::ScreenInfos& new_screen_infos) { … }
void WebFrameWidgetImpl::UpdateScreenInfo(
const display::ScreenInfos& new_screen_infos) { … }
void WebFrameWidgetImpl::UpdateSurfaceAndCompositorRect(
const viz::LocalSurfaceId& new_local_surface_id,
const gfx::Rect& compositor_viewport_pixel_rect) { … }
void WebFrameWidgetImpl::UpdateCompositorViewportRect(
const gfx::Rect& compositor_viewport_pixel_rect) { … }
const display::ScreenInfo& WebFrameWidgetImpl::GetScreenInfo() { … }
const display::ScreenInfos& WebFrameWidgetImpl::GetScreenInfos() { … }
const display::ScreenInfo& WebFrameWidgetImpl::GetOriginalScreenInfo() { … }
const display::ScreenInfos& WebFrameWidgetImpl::GetOriginalScreenInfos() { … }
gfx::Rect WebFrameWidgetImpl::WindowRect() { … }
double WebFrameWidgetImpl::GetCSSZoomFactor() const { … }
gfx::Rect WebFrameWidgetImpl::ViewRect() { … }
void WebFrameWidgetImpl::SetScreenRects(const gfx::Rect& widget_screen_rect,
const gfx::Rect& window_screen_rect) { … }
gfx::Size WebFrameWidgetImpl::VisibleViewportSizeInDIPs() { … }
void WebFrameWidgetImpl::SetPendingWindowRect(
const gfx::Rect& window_screen_rect) { … }
void WebFrameWidgetImpl::AckPendingWindowRect() { … }
bool WebFrameWidgetImpl::IsHidden() const { … }
WebString WebFrameWidgetImpl::GetLastToolTipTextForTesting() const { … }
float WebFrameWidgetImpl::GetEmulatorScale() { … }
void WebFrameWidgetImpl::IntrinsicSizingInfoChanged(
mojom::blink::IntrinsicSizingInfoPtr sizing_info) { … }
void WebFrameWidgetImpl::AutoscrollStart(const gfx::PointF& position) { … }
void WebFrameWidgetImpl::AutoscrollFling(const gfx::Vector2dF& velocity) { … }
void WebFrameWidgetImpl::AutoscrollEnd() { … }
void WebFrameWidgetImpl::DidMeaningfulLayout(WebMeaningfulLayout layout_type) { … }
void WebFrameWidgetImpl::PresentationCallbackForMeaningfulLayout(
const viz::FrameTimingDetails& first_paint_details) { … }
void WebFrameWidgetImpl::RequestAnimationAfterDelay(
const base::TimeDelta& delay) { … }
void WebFrameWidgetImpl::SetRootLayer(scoped_refptr<cc::Layer> layer) { … }
base::WeakPtr<AnimationWorkletMutatorDispatcherImpl>
WebFrameWidgetImpl::EnsureCompositorMutatorDispatcher(
scoped_refptr<base::SingleThreadTaskRunner> mutator_task_runner) { … }
HitTestResult WebFrameWidgetImpl::CoreHitTestResultAt(
const gfx::PointF& point_in_viewport) { … }
cc::AnimationHost* WebFrameWidgetImpl::AnimationHost() const { … }
cc::AnimationTimeline* WebFrameWidgetImpl::ScrollAnimationTimeline() const { … }
base::WeakPtr<PaintWorkletPaintDispatcher>
WebFrameWidgetImpl::EnsureCompositorPaintDispatcher(
scoped_refptr<base::SingleThreadTaskRunner>* paint_task_runner) { … }
void WebFrameWidgetImpl::SetDelegatedInkMetadata(
std::unique_ptr<gfx::DelegatedInkMetadata> metadata) { … }
class ReportTimeSwapPromise : public cc::SwapPromise { … };
void WebFrameWidgetImpl::NotifySwapAndPresentationTimeForTesting(
PromiseCallbacks callbacks) { … }
void WebFrameWidgetImpl::NotifyPresentationTimeInBlink(
base::OnceCallback<void(const viz::FrameTimingDetails&)>
presentation_callback) { … }
void WebFrameWidgetImpl::NotifyPresentationTime(
base::OnceCallback<void(const viz::FrameTimingDetails&)>
presentation_callback) { … }
#if BUILDFLAG(IS_APPLE)
void WebFrameWidgetImpl::NotifyCoreAnimationErrorCode(
base::OnceCallback<void(gfx::CALayerResult)>
core_animation_error_code_callback) {
NotifySwapAndPresentationTime(
{.core_animation_error_code_callback =
std::move(core_animation_error_code_callback)});
}
#endif
void WebFrameWidgetImpl::NotifySwapAndPresentationTime(
PromiseCallbacks callbacks) { … }
void WebFrameWidgetImpl::WaitForDebuggerWhenShown() { … }
void WebFrameWidgetImpl::SetTextZoomFactor(float text_zoom_factor) { … }
float WebFrameWidgetImpl::TextZoomFactor() { … }
void WebFrameWidgetImpl::SetMainFrameOverlayColor(SkColor color) { … }
void WebFrameWidgetImpl::AddEditCommandForNextKeyEvent(const WebString& name,
const WebString& value) { … }
bool WebFrameWidgetImpl::HandleCurrentKeyboardEvent() { … }
void WebFrameWidgetImpl::ClearEditCommands() { … }
WebTextInputInfo WebFrameWidgetImpl::TextInputInfo() { … }
ui::mojom::blink::VirtualKeyboardVisibilityRequest
WebFrameWidgetImpl::GetLastVirtualKeyboardVisibilityRequest() { … }
bool WebFrameWidgetImpl::ShouldSuppressKeyboardForFocusedElement() { … }
void WebFrameWidgetImpl::GetEditContextBoundsInWindow(
std::optional<gfx::Rect>* edit_context_control_bounds,
std::optional<gfx::Rect>* edit_context_selection_bounds) { … }
int32_t WebFrameWidgetImpl::ComputeWebTextInputNextPreviousFlags() { … }
void WebFrameWidgetImpl::ResetVirtualKeyboardVisibilityRequest() { … }
bool WebFrameWidgetImpl::GetSelectionBoundsInWindow(
gfx::Rect* focus,
gfx::Rect* anchor,
gfx::Rect* bounding_box,
base::i18n::TextDirection* focus_dir,
base::i18n::TextDirection* anchor_dir,
bool* is_anchor_first) { … }
void WebFrameWidgetImpl::ClearTextInputState() { … }
bool WebFrameWidgetImpl::IsPasting() { … }
bool WebFrameWidgetImpl::HandlingSelectRange() { … }
void WebFrameWidgetImpl::SetFocus(bool focus) { … }
bool WebFrameWidgetImpl::HasFocus() { … }
void WebFrameWidgetImpl::UpdateTooltipUnderCursor(const String& tooltip_text,
TextDirection dir) { … }
void WebFrameWidgetImpl::UpdateTooltipFromKeyboard(const String& tooltip_text,
TextDirection dir,
const gfx::Rect& bounds) { … }
void WebFrameWidgetImpl::ClearKeyboardTriggeredTooltip() { … }
void WebFrameWidgetImpl::InjectScrollbarGestureScroll(
const gfx::Vector2dF& delta,
ui::ScrollGranularity granularity,
cc::ElementId scrollable_area_element_id,
blink::WebInputEvent::Type injected_type) { … }
void WebFrameWidgetImpl::DidChangeCursor(const ui::Cursor& cursor) { … }
bool WebFrameWidgetImpl::SetComposition(
const String& text,
const Vector<ui::ImeTextSpan>& ime_text_spans,
const gfx::Range& replacement_range,
int selection_start,
int selection_end) { … }
void WebFrameWidgetImpl::CommitText(
const String& text,
const Vector<ui::ImeTextSpan>& ime_text_spans,
const gfx::Range& replacement_range,
int relative_cursor_pos) { … }
void WebFrameWidgetImpl::FinishComposingText(bool keep_selection) { … }
bool WebFrameWidgetImpl::IsProvisional() { … }
cc::ElementId WebFrameWidgetImpl::GetScrollableContainerIdAt(
const gfx::PointF& point) { … }
bool WebFrameWidgetImpl::ShouldHandleImeEvents() { … }
void WebFrameWidgetImpl::SetEditCommandsForNextKeyEvent(
Vector<mojom::blink::EditCommandPtr> edit_commands) { … }
void WebFrameWidgetImpl::FocusChangeComplete() { … }
void WebFrameWidgetImpl::ShowVirtualKeyboardOnElementFocus() { … }
void WebFrameWidgetImpl::ProcessTouchAction(WebTouchAction touch_action) { … }
void WebFrameWidgetImpl::SetPanAction(mojom::blink::PanAction pan_action) { … }
void WebFrameWidgetImpl::DidHandleGestureEvent(const WebGestureEvent& event) { … }
void WebFrameWidgetImpl::SetHasPointerRawUpdateEventHandlers(
bool has_handlers) { … }
void WebFrameWidgetImpl::SetNeedsLowLatencyInput(bool needs_low_latency) { … }
void WebFrameWidgetImpl::RequestUnbufferedInputEvents() { … }
void WebFrameWidgetImpl::SetNeedsUnbufferedInputForDebugger(bool unbuffered) { … }
void WebFrameWidgetImpl::DidNavigate() { … }
void WebFrameWidgetImpl::FlushInputForTesting(base::OnceClosure done_callback) { … }
void WebFrameWidgetImpl::SetMouseCapture(bool capture) { … }
void WebFrameWidgetImpl::NotifyAutoscrollForSelectionInMainFrame(
bool autoscroll_selection) { … }
gfx::Range WebFrameWidgetImpl::CompositionRange() { … }
void WebFrameWidgetImpl::GetCompositionCharacterBoundsInWindow(
Vector<gfx::Rect>* bounds_in_dips) { … }
namespace {
void GetLineBounds(Vector<gfx::QuadF>& line_quads,
TextControlInnerEditorElement* inner_editor) { … }
}
Vector<gfx::Rect> WebFrameWidgetImpl::CalculateVisibleLineBoundsOnScreen() { … }
Vector<gfx::Rect>& WebFrameWidgetImpl::GetVisibleLineBoundsOnScreen() { … }
void WebFrameWidgetImpl::UpdateLineBounds() { … }
void WebFrameWidgetImpl::UpdateCursorAnchorInfo() { … }
void WebFrameWidgetImpl::AddImeTextSpansToExistingText(
uint32_t start,
uint32_t end,
const Vector<ui::ImeTextSpan>& ime_text_spans) { … }
Vector<ui::mojom::blink::ImeTextSpanInfoPtr>
WebFrameWidgetImpl::GetImeTextSpansInfo(
const WebVector<ui::ImeTextSpan>& ime_text_spans) { … }
void WebFrameWidgetImpl::ClearImeTextSpansByType(uint32_t start,
uint32_t end,
ui::ImeTextSpan::Type type) { … }
void WebFrameWidgetImpl::SetCompositionFromExistingText(
int32_t start,
int32_t end,
const Vector<ui::ImeTextSpan>& ime_text_spans) { … }
void WebFrameWidgetImpl::ExtendSelectionAndDelete(int32_t before,
int32_t after) { … }
void WebFrameWidgetImpl::ExtendSelectionAndReplace(
uint32_t before,
uint32_t after,
const String& replacement_text) { … }
void WebFrameWidgetImpl::DeleteSurroundingText(int32_t before, int32_t after) { … }
void WebFrameWidgetImpl::DeleteSurroundingTextInCodePoints(int32_t before,
int32_t after) { … }
void WebFrameWidgetImpl::SetEditableSelectionOffsets(int32_t start,
int32_t end) { … }
void WebFrameWidgetImpl::ExecuteEditCommand(const String& command,
const String& value) { … }
void WebFrameWidgetImpl::Undo() { … }
void WebFrameWidgetImpl::Redo() { … }
void WebFrameWidgetImpl::Cut() { … }
void WebFrameWidgetImpl::Copy() { … }
void WebFrameWidgetImpl::CopyToFindPboard() { … }
void WebFrameWidgetImpl::CenterSelection() { … }
void WebFrameWidgetImpl::Paste() { … }
void WebFrameWidgetImpl::PasteAndMatchStyle() { … }
void WebFrameWidgetImpl::Delete() { … }
void WebFrameWidgetImpl::SelectAll() { … }
void WebFrameWidgetImpl::CollapseSelection() { … }
void WebFrameWidgetImpl::Replace(const String& word) { … }
void WebFrameWidgetImpl::ReplaceMisspelling(const String& word) { … }
void WebFrameWidgetImpl::SelectRange(const gfx::Point& base_in_dips,
const gfx::Point& extent_in_dips) { … }
void WebFrameWidgetImpl::AdjustSelectionByCharacterOffset(
int32_t start,
int32_t end,
mojom::blink::SelectionMenuBehavior selection_menu_behavior) { … }
void WebFrameWidgetImpl::MoveRangeSelectionExtent(
const gfx::Point& extent_in_dips) { … }
void WebFrameWidgetImpl::ScrollFocusedEditableNodeIntoView() { … }
void WebFrameWidgetImpl::WaitForPageScaleAnimationForTesting(
WaitForPageScaleAnimationForTestingCallback callback) { … }
void WebFrameWidgetImpl::ZoomToFindInPageRect(
const gfx::Rect& rect_in_root_frame) { … }
void WebFrameWidgetImpl::MoveCaret(const gfx::Point& point_in_dips) { … }
void WebFrameWidgetImpl::SelectAroundCaret(
mojom::blink::SelectionGranularity granularity,
bool should_show_handle,
bool should_show_context_menu,
SelectAroundCaretCallback callback) { … }
void WebFrameWidgetImpl::ForEachRemoteFrameControlledByWidget(
base::FunctionRef<void(RemoteFrame*)> callback) { … }
void WebFrameWidgetImpl::CalculateSelectionBounds(gfx::Rect& anchor_root_frame,
gfx::Rect& focus_root_frame) { … }
void WebFrameWidgetImpl::CalculateSelectionBounds(
gfx::Rect& anchor_root_frame,
gfx::Rect& focus_root_frame,
gfx::Rect* bounding_box_in_root_frame) { … }
const viz::LocalSurfaceId& WebFrameWidgetImpl::LocalSurfaceIdFromParent() { … }
cc::LayerTreeHost* WebFrameWidgetImpl::LayerTreeHost() { … }
cc::LayerTreeHost* WebFrameWidgetImpl::LayerTreeHostForTesting() const { … }
ScreenMetricsEmulator* WebFrameWidgetImpl::DeviceEmulator() { … }
bool WebFrameWidgetImpl::AutoResizeMode() { … }
void WebFrameWidgetImpl::SetScreenMetricsEmulationParameters(
bool enabled,
const DeviceEmulationParams& params) { … }
void WebFrameWidgetImpl::SetScreenInfoAndSize(
const display::ScreenInfos& screen_infos,
const gfx::Size& widget_size_in_dips,
const gfx::Size& visible_viewport_size_in_dips) { … }
float WebFrameWidgetImpl::GetCompositingScaleFactor() { … }
const cc::LayerTreeDebugState* WebFrameWidgetImpl::GetLayerTreeDebugState() { … }
void WebFrameWidgetImpl::SetLayerTreeDebugState(
const cc::LayerTreeDebugState& state) { … }
void WebFrameWidgetImpl::NotifyCompositingScaleFactorChanged(
float compositing_scale_factor) { … }
void WebFrameWidgetImpl::NotifyPageScaleFactorChanged(
float page_scale_factor,
bool is_pinch_gesture_active) { … }
void WebFrameWidgetImpl::SetPageScaleStateAndLimits(
float page_scale_factor,
bool is_pinch_gesture_active,
float minimum,
float maximum) { … }
void WebFrameWidgetImpl::UpdateViewportDescription(
const ViewportDescription& viewport) { … }
bool WebFrameWidgetImpl::UpdateScreenRects(
const gfx::Rect& widget_screen_rect,
const gfx::Rect& window_screen_rect) { … }
void WebFrameWidgetImpl::EnqueueMoveEvent() { … }
void WebFrameWidgetImpl::OrientationChanged() { … }
void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen(
const display::ScreenInfos& previous_original_screen_infos) { … }
gfx::Rect WebFrameWidgetImpl::ViewportVisibleRect() { … }
std::optional<display::mojom::blink::ScreenOrientation>
WebFrameWidgetImpl::ScreenOrientationOverride() { … }
void WebFrameWidgetImpl::WasHidden() { … }
void WebFrameWidgetImpl::WasShown(bool was_evicted) { … }
void WebFrameWidgetImpl::RunPaintBenchmark(int repeat_count,
cc::PaintBenchmarkResult& result) { … }
void WebFrameWidgetImpl::NotifyInputObservers(
const WebCoalescedInputEvent& coalesced_event) { … }
Frame* WebFrameWidgetImpl::FocusedCoreFrame() const { … }
Element* WebFrameWidgetImpl::FocusedElement() const { … }
HitTestResult WebFrameWidgetImpl::HitTestResultForRootFramePos(
const gfx::PointF& pos_in_root_frame) { … }
KURL WebFrameWidgetImpl::GetURLForDebugTrace() { … }
float WebFrameWidgetImpl::GetTestingDeviceScaleFactorOverride() { … }
void WebFrameWidgetImpl::ReleaseMouseLockAndPointerCaptureForTesting() { … }
const viz::FrameSinkId& WebFrameWidgetImpl::GetFrameSinkId() { … }
WebHitTestResult WebFrameWidgetImpl::HitTestResultAt(const gfx::PointF& point) { … }
void WebFrameWidgetImpl::SetZoomLevelForTesting(double zoom_level) { … }
void WebFrameWidgetImpl::ResetZoomLevelForTesting() { … }
void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { … }
FrameWidgetTestHelper*
WebFrameWidgetImpl::GetFrameWidgetTestHelperForTesting() { … }
void WebFrameWidgetImpl::PrepareForFinalLifecyclUpdateForTesting() { … }
void WebFrameWidgetImpl::ApplyLocalSurfaceIdUpdate(
const viz::LocalSurfaceId& id) { … }
void WebFrameWidgetImpl::SetMayThrottleIfUndrawnFrames(
bool may_throttle_if_undrawn_frames) { … }
int WebFrameWidgetImpl::GetVirtualKeyboardResizeHeight() const { … }
void WebFrameWidgetImpl::SetVirtualKeyboardResizeHeightForTesting(int height) { … }
bool WebFrameWidgetImpl::GetMayThrottleIfUndrawnFramesForTesting() { … }
WebPlugin* WebFrameWidgetImpl::GetFocusedPluginContainer() { … }
bool WebFrameWidgetImpl::HasPendingPageScaleAnimation() { … }
void WebFrameWidgetImpl::UpdateNavigationStateForCompositor(
ukm::SourceId source_id,
const KURL& url) { … }
base::ReadOnlySharedMemoryRegion
WebFrameWidgetImpl::CreateSharedMemoryForSmoothnessUkm() { … }
bool WebFrameWidgetImpl::CanComposeInline() { … }
bool WebFrameWidgetImpl::ShouldDispatchImeEventsToPlugin() { … }
void WebFrameWidgetImpl::ImeSetCompositionForPlugin(
const String& text,
const Vector<ui::ImeTextSpan>& ime_text_spans,
const gfx::Range& replacement_range,
int selection_start,
int selection_end) { … }
void WebFrameWidgetImpl::ImeCommitTextForPlugin(
const String& text,
const Vector<ui::ImeTextSpan>& ime_text_spans,
const gfx::Range& replacement_range,
int relative_cursor_pos) { … }
void WebFrameWidgetImpl::ImeFinishComposingTextForPlugin(bool keep_selection) { … }
void WebFrameWidgetImpl::SetWindowRect(const gfx::Rect& requested_rect,
const gfx::Rect& adjusted_rect) { … }
void WebFrameWidgetImpl::SetWindowRectSynchronouslyForTesting(
const gfx::Rect& new_window_rect) { … }
void WebFrameWidgetImpl::DidCreateLocalRootView() { … }
bool WebFrameWidgetImpl::ShouldAutoDetermineCompositingToLCDTextSetting() { … }
bool WebFrameWidgetImpl::WillBeDestroyed() const { … }
void WebFrameWidgetImpl::DispatchNonBlockingEventForTesting(
std::unique_ptr<WebCoalescedInputEvent> event) { … }
}