#include "third_party/blink/renderer/core/layout/scrollable_overflow_calculator.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/layout/block_node.h"
#include "third_party/blink/renderer/core/layout/geometry/writing_mode_converter.h"
#include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
#include "third_party/blink/renderer/core/layout/layout_box.h"
#include "third_party/blink/renderer/core/layout/layout_text_combine.h"
#include "third_party/blink/renderer/core/layout/legacy_layout_tree_walking.h"
#include "third_party/blink/renderer/core/layout/length_utils.h"
#include "third_party/blink/renderer/core/layout/logical_fragment.h"
#include "third_party/blink/renderer/core/layout/physical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/physical_fragment.h"
#include "third_party/blink/renderer/core/style/style_overflow_clip_margin.h"
#include "third_party/blink/renderer/platform/geometry/layout_unit.h"
namespace blink {
PhysicalRect
ScrollableOverflowCalculator::RecalculateScrollableOverflowForFragment(
const PhysicalBoxFragment& fragment,
bool has_block_fragmentation) { … }
ScrollableOverflowCalculator::ScrollableOverflowCalculator(
const BlockNode& node,
bool is_css_box,
bool has_block_fragmentation,
const PhysicalBoxStrut& borders,
const PhysicalBoxStrut& scrollbar,
const PhysicalBoxStrut& padding,
PhysicalSize size,
WritingDirectionMode writing_direction)
: … { … }
const PhysicalRect ScrollableOverflowCalculator::Result(
const std::optional<PhysicalRect> inflow_bounds) { … }
void ScrollableOverflowCalculator::AddTableSelfRect() { … }
template <typename Items>
void ScrollableOverflowCalculator::AddItemsInternal(
const LayoutObject* layout_object,
const Items& items) { … }
void ScrollableOverflowCalculator::AddItems(
const LayoutObject* layout_object,
const FragmentItemsBuilder::ItemWithOffsetList& items) { … }
void ScrollableOverflowCalculator::AddItems(
const PhysicalBoxFragment& box_fragment,
const FragmentItems& items) { … }
PhysicalRect ScrollableOverflowCalculator::AdjustOverflowForHanging(
const PhysicalRect& line_rect,
PhysicalRect overflow) { … }
PhysicalRect ScrollableOverflowCalculator::AdjustOverflowForScrollOrigin(
const PhysicalRect& overflow) { … }
PhysicalRect ScrollableOverflowCalculator::ScrollableOverflowForPropagation(
const PhysicalBoxFragment& child_fragment) { … }
}