#include "third_party/blink/renderer/core/paint/table_painters.h"
#include "third_party/blink/renderer/core/layout/fragmentation_utils.h"
#include "third_party/blink/renderer/core/layout/geometry/writing_mode_converter.h"
#include "third_party/blink/renderer/core/layout/layout_box.h"
#include "third_party/blink/renderer/core/layout/physical_box_fragment.h"
#include "third_party/blink/renderer/core/layout/physical_fragment_link.h"
#include "third_party/blink/renderer/core/layout/table/layout_table.h"
#include "third_party/blink/renderer/core/layout/table/layout_table_cell.h"
#include "third_party/blink/renderer/core/layout/table/layout_table_column.h"
#include "third_party/blink/renderer/core/layout/table/table_borders.h"
#include "third_party/blink/renderer/core/paint/box_background_paint_context.h"
#include "third_party/blink/renderer/core/paint/box_border_painter.h"
#include "third_party/blink/renderer/core/paint/box_decoration_data.h"
#include "third_party/blink/renderer/core/paint/box_fragment_painter.h"
#include "third_party/blink/renderer/core/paint/box_model_object_painter.h"
#include "third_party/blink/renderer/core/paint/box_painter.h"
#include "third_party/blink/renderer/core/paint/paint_auto_dark_mode.h"
#include "third_party/blink/renderer/core/paint/paint_info.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/scoped_paint_state.h"
#include "third_party/blink/renderer/core/paint/theme_painter.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h"
namespace blink {
namespace {
class TableCollapsedEdge { … };
void ComputeEdgeJoints(const TableBorders& collapsed_borders,
const TableCollapsedEdge& edge,
bool is_over_edge_fragmentation_boundary,
bool is_under_edge_fragmentation_boundary,
LogicalSize& start_joint,
LogicalSize& end_joint,
bool& start_wins,
bool& end_wins) { … }
PhysicalRect ComputeColumnsRect(const PhysicalBoxFragment& fragment) { … }
class TableCellBackgroundClipper { … };
}
bool TablePainter::WillCheckColumnBackgrounds() { … }
void TablePainter::PaintBoxDecorationBackground(
const PaintInfo& paint_info,
const PhysicalRect& paint_rect,
const BoxDecorationData& box_decoration_data) { … }
namespace {
const PhysicalFragment* StartSection(const PhysicalBoxFragment& table) { … }
const PhysicalFragment* EndSection(const PhysicalBoxFragment& table) { … }
bool IsStartRowFragmented(const PhysicalBoxFragment& section) { … }
bool IsEndRowFragmented(const PhysicalBoxFragment& section) { … }
}
void TablePainter::PaintCollapsedBorders(const PaintInfo& paint_info,
const PhysicalOffset& paint_offset,
const gfx::Rect& visual_rect) { … }
void TableSectionPainter::PaintBoxDecorationBackground(
const PaintInfo& paint_info,
const PhysicalRect& paint_rect,
const BoxDecorationData& box_decoration_data) { … }
void TableSectionPainter::PaintColumnsBackground(
const PaintInfo& paint_info,
const PhysicalOffset& section_paint_offset,
const PhysicalRect& columns_paint_rect,
const TableFragmentData::ColumnGeometries& column_geometries) { … }
void TableRowPainter::PaintBoxDecorationBackground(
const PaintInfo& paint_info,
const PhysicalRect& paint_rect,
const BoxDecorationData& box_decoration_data) { … }
void TableRowPainter::PaintTablePartBackgroundIntoCells(
const PaintInfo& paint_info,
const LayoutBox& table_part,
const PhysicalRect& table_part_paint_rect,
const PhysicalOffset& row_paint_offset) { … }
void TableRowPainter::PaintColumnsBackground(
const PaintInfo& paint_info,
const PhysicalOffset& row_paint_offset,
const PhysicalRect& columns_paint_rect,
const TableFragmentData::ColumnGeometries& column_geometries) { … }
void TableCellPainter::PaintBoxDecorationBackground(
const PaintInfo& paint_info,
const PhysicalRect& paint_rect,
const BoxDecorationData& box_decoration_data) { … }
void TableCellPainter::PaintBackgroundForTablePart(
const PaintInfo& paint_info,
const LayoutBox& table_part,
const PhysicalRect& table_part_paint_rect,
const PhysicalOffset& table_cell_paint_offset) { … }
}