#include "third_party/blink/renderer/core/layout/svg/layout_svg_root.h"
#include "third_party/blink/renderer/core/editing/position_with_affinity.h"
#include "third_party/blink/renderer/core/frame/frame_owner.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/layout/hit_test_location.h"
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/layout/intrinsic_sizing_info.h"
#include "third_party/blink/renderer/core/layout/layout_embedded_content.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_container.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_text.h"
#include "third_party/blink/renderer/core/layout/svg/svg_layout_info.h"
#include "third_party/blink/renderer/core/layout/svg/svg_layout_support.h"
#include "third_party/blink/renderer/core/layout/svg/svg_resources.h"
#include "third_party/blink/renderer/core/layout/svg/transform_helper.h"
#include "third_party/blink/renderer/core/layout/svg/transformed_hit_test_location.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/svg_root_painter.h"
#include "third_party/blink/renderer/core/svg/graphics/svg_image.h"
#include "third_party/blink/renderer/core/svg/svg_animated_length.h"
#include "third_party/blink/renderer/core/svg/svg_animated_rect.h"
#include "third_party/blink/renderer/core/svg/svg_element.h"
#include "third_party/blink/renderer/core/svg/svg_svg_element.h"
#include "third_party/blink/renderer/platform/geometry/length_functions.h"
namespace blink {
LayoutSVGRoot::LayoutSVGRoot(SVGElement* node)
: … { … }
LayoutSVGRoot::~LayoutSVGRoot() = default;
void LayoutSVGRoot::Trace(Visitor* visitor) const { … }
void LayoutSVGRoot::UnscaledIntrinsicSizingInfo(
const SVGRect* override_viewbox,
IntrinsicSizingInfo& intrinsic_sizing_info) const { … }
void LayoutSVGRoot::ComputeIntrinsicSizingInfo(
IntrinsicSizingInfo& intrinsic_sizing_info) const { … }
bool LayoutSVGRoot::IsEmbeddedThroughSVGImage() const { … }
bool LayoutSVGRoot::IsEmbeddedThroughFrameContainingSVGDocument() const { … }
double LayoutSVGRoot::LogicalSizeScaleFactorForPercentageLengths() const { … }
void LayoutSVGRoot::LayoutRoot(const PhysicalRect& content_rect) { … }
void LayoutSVGRoot::RecalcVisualOverflow() { … }
PhysicalRect LayoutSVGRoot::ComputeContentsVisualOverflow() const { … }
void LayoutSVGRoot::PaintReplaced(const PaintInfo& paint_info,
const PhysicalOffset& paint_offset) const { … }
void LayoutSVGRoot::WillBeDestroyed() { … }
bool LayoutSVGRoot::IntrinsicSizeIsFontMetricsDependent() const { … }
bool LayoutSVGRoot::StyleChangeAffectsIntrinsicSize(
const ComputedStyle& old_style) const { … }
void LayoutSVGRoot::IntrinsicSizingInfoChanged() { … }
void LayoutSVGRoot::StyleDidChange(StyleDifference diff,
const ComputedStyle* old_style) { … }
bool LayoutSVGRoot::IsChildAllowed(LayoutObject* child,
const ComputedStyle&) const { … }
void LayoutSVGRoot::AddChild(LayoutObject* child, LayoutObject* before_child) { … }
void LayoutSVGRoot::RemoveChild(LayoutObject* child) { … }
bool LayoutSVGRoot::HasNonIsolatedBlendingDescendants() const { … }
void LayoutSVGRoot::DescendantIsolationRequirementsChanged(
DescendantIsolationState state) { … }
void LayoutSVGRoot::InsertedIntoTree() { … }
void LayoutSVGRoot::WillBeRemovedFromTree() { … }
PositionWithAffinity LayoutSVGRoot::PositionForPoint(
const PhysicalOffset& point) const { … }
SVGTransformChange LayoutSVGRoot::BuildLocalToBorderBoxTransform(
const PhysicalRect& content_rect) { … }
AffineTransform LayoutSVGRoot::LocalToSVGParentTransform() const { … }
gfx::RectF LayoutSVGRoot::ViewBoxRect() const { … }
gfx::SizeF LayoutSVGRoot::ViewportSize() const { … }
void LayoutSVGRoot::MapLocalToAncestor(const LayoutBoxModelObject* ancestor,
TransformState& transform_state,
MapCoordinatesFlags mode) const { … }
bool LayoutSVGRoot::HitTestChildren(HitTestResult& result,
const HitTestLocation& hit_test_location,
const PhysicalOffset& accumulated_offset,
HitTestPhase phase) { … }
bool LayoutSVGRoot::IsInSelfHitTestingPhase(HitTestPhase phase) const { … }
void LayoutSVGRoot::IntersectChildren(HitTestResult& result,
const HitTestLocation& location) const { … }
void LayoutSVGRoot::AddSvgTextDescendant(LayoutSVGText& svg_text) { … }
void LayoutSVGRoot::RemoveSvgTextDescendant(LayoutSVGText& svg_text) { … }
PaintLayerType LayoutSVGRoot::LayerTypeRequired() const { … }
OverflowClipAxes LayoutSVGRoot::ComputeOverflowClipAxes() const { … }
}