chromium/third_party/blink/renderer/core/layout/layout_view.cc

/*
 * Copyright (C) 1999 Lars Knoll ([email protected])
 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc.
 *               All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

#include "third_party/blink/renderer/core/layout/layout_view.h"

#include <inttypes.h>

#include "base/time/time.h"
#include "build/build_config.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/scroll/scrollbar_mode.mojom-blink.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/web/web_print_page_description.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/editing/markers/document_marker_controller.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.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/html/html_iframe_element.h"
#include "third_party/blink/renderer/core/html/plugin_document.h"
#include "third_party/blink/renderer/core/input/event_handler.h"
#include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
#include "third_party/blink/renderer/core/layout/block_node.h"
#include "third_party/blink/renderer/core/layout/constraint_space_builder.h"
#include "third_party/blink/renderer/core/layout/geometry/transform_state.h"
#include "third_party/blink/renderer/core/layout/hit_test_cache.h"
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/layout/layout_counter.h"
#include "third_party/blink/renderer/core/layout/layout_embedded_content.h"
#include "third_party/blink/renderer/core/layout/layout_result.h"
#include "third_party/blink/renderer/core/layout/layout_view_transition_root.h"
#include "third_party/blink/renderer/core/layout/length_utils.h"
#include "third_party/blink/renderer/core/layout/list/layout_inline_list_item.h"
#include "third_party/blink/renderer/core/layout/list/layout_list_item.h"
#include "third_party/blink/renderer/core/layout/physical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_root.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_text.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
#include "third_party/blink/renderer/core/paint/view_painter.h"
#include "third_party/blink/renderer/core/svg/svg_document_extensions.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/paint/paint_controller.h"
#include "third_party/blink/renderer/platform/instrumentation/histogram.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
#include "ui/display/screen_info.h"
#include "ui/gfx/geometry/quad_f.h"

#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
#include "third_party/blink/renderer/platform/fonts/font_cache.h"
#endif

namespace blink {

LayoutView::LayoutView(ContainerNode* document)
    :{}

LayoutView::~LayoutView() = default;

void LayoutView::Trace(Visitor* visitor) const {}

bool LayoutView::HitTest(const HitTestLocation& location,
                         HitTestResult& result) {}

bool LayoutView::HitTestNoLifecycleUpdate(const HitTestLocation& location,
                                          HitTestResult& result) {}

void LayoutView::ClearHitTestCache() {}

LayoutUnit LayoutView::ComputeMinimumWidth() {}

void LayoutView::AddChild(LayoutObject* new_child, LayoutObject* before_child) {}

bool LayoutView::IsChildAllowed(LayoutObject* child,
                                const ComputedStyle&) const {}

bool LayoutView::CanHaveChildren() const {}

bool LayoutView::ShouldPlaceBlockDirectionScrollbarOnLogicalLeft() const {}

PhysicalRect LayoutView::LocalVisualRectIgnoringVisibility() const {}

void LayoutView::MapLocalToAncestor(const LayoutBoxModelObject* ancestor,
                                    TransformState& transform_state,
                                    MapCoordinatesFlags mode) const {}

void LayoutView::MapAncestorToLocal(const LayoutBoxModelObject* ancestor,
                                    TransformState& transform_state,
                                    MapCoordinatesFlags mode) const {}

LogicalSize LayoutView::InitialContainingBlockSize() const {}

TrackedDescendantsMap& LayoutView::SvgTextDescendantsMap() {}

void LayoutView::RegisterVariableLengthTransformResult(
    const LayoutText& text,
    const VariableLengthTransformResult& result) {}

void LayoutView::UnregisterVariableLengthTransformResult(
    const LayoutText& text) {}

VariableLengthTransformResult LayoutView::GetVariableLengthTransformResult(
    const LayoutText& text) {}

LayoutViewTransitionRoot* LayoutView::GetViewTransitionRoot() const {}

void LayoutView::InvalidatePaintForViewAndDescendants() {}

bool LayoutView::MapToVisualRectInAncestorSpaceInternal(
    const LayoutBoxModelObject* ancestor,
    TransformState& transform_state,
    VisualRectFlags visual_rect_flags) const {}

PhysicalOffset LayoutView::OffsetForFixedPosition() const {}

void LayoutView::AbsoluteQuads(Vector<gfx::QuadF>& quads,
                               MapCoordinatesFlags mode) const {}

void LayoutView::CommitPendingSelection() {}

bool LayoutView::ShouldUsePaginatedLayout(const Document& document) {}

PhysicalRect LayoutView::ViewRect() const {}

PhysicalRect LayoutView::OverflowClipRect(
    const PhysicalOffset& location,
    OverlayScrollbarClipBehavior overlay_scrollbar_clip_behavior) const {}

void LayoutView::SetAutosizeScrollbarModes(mojom::blink::ScrollbarMode h_mode,
                                           mojom::blink::ScrollbarMode v_mode) {}

void LayoutView::CalculateScrollbarModes(
    mojom::blink::ScrollbarMode& h_mode,
    mojom::blink::ScrollbarMode& v_mode) const {}

AtomicString LayoutView::NamedPageAtIndex(wtf_size_t page_index) const {}

PhysicalRect LayoutView::DocumentRect() const {}

gfx::Size LayoutView::GetLayoutSize(
    IncludeScrollbarsInRect scrollbar_inclusion) const {}

gfx::Size LayoutView::GetNonPrintingLayoutSize(
    IncludeScrollbarsInRect scrollbar_inclusion) const {}

int LayoutView::ViewLogicalWidth(
    IncludeScrollbarsInRect scrollbar_inclusion) const {}

int LayoutView::ViewLogicalHeight(
    IncludeScrollbarsInRect scrollbar_inclusion) const {}

LayoutUnit LayoutView::ViewLogicalHeightForPercentages() const {}

const LayoutBox& LayoutView::RootBox() const {}

void LayoutView::InvalidateSvgRootsWithRelativeLengthDescendents() {}

void LayoutView::LayoutRoot() {}

void LayoutView::UpdateAfterLayout() {}

void LayoutView::UpdateHitTestResult(HitTestResult& result,
                                     const PhysicalOffset& point) const {}

bool LayoutView::BackgroundIsKnownToBeOpaqueInRect(const PhysicalRect&) const {}

gfx::SizeF LayoutView::SmallViewportSizeForViewportUnits() const {}

gfx::SizeF LayoutView::LargeViewportSizeForViewportUnits() const {}

gfx::SizeF LayoutView::DynamicViewportSizeForViewportUnits() const {}

gfx::SizeF LayoutView::DefaultPageAreaSize() const {}

void LayoutView::WillBeDestroyed() {}

void LayoutView::UpdateFromStyle() {}

void LayoutView::StyleDidChange(StyleDifference diff,
                                const ComputedStyle* old_style) {}

PhysicalRect LayoutView::DebugRect() const {}

CompositingReasons LayoutView::AdditionalCompositingReasons() const {}

bool LayoutView::AffectedByResizedInitialContainingBlock(
    const LayoutResult& layout_result) {}

void LayoutView::UpdateCountersAfterStyleChange(LayoutObject* container) {}

bool LayoutView::HasTickmarks() const {}

Vector<gfx::Rect> LayoutView::GetTickmarks() const {}

bool LayoutView::IsFragmentationContextRoot() const {}

}  // namespace blink