#include "third_party/blink/renderer/core/layout/table/table_borders.h"
#include "third_party/blink/renderer/core/css/properties/longhands.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/constraint_space.h"
#include "third_party/blink/renderer/core/layout/constraint_space_builder.h"
#include "third_party/blink/renderer/core/layout/length_utils.h"
#include "third_party/blink/renderer/core/layout/table/layout_table.h"
#include "third_party/blink/renderer/core/layout/table/layout_table_column_visitor.h"
#include "third_party/blink/renderer/core/layout/table/table_layout_algorithm_types.h"
#include "third_party/blink/renderer/core/layout/table/table_layout_utils.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
namespace blink {
namespace {
bool IsSourceMoreSpecificThanEdge(EBorderStyle source_style,
LayoutUnit source_width,
const TableBorders::Edge& edge) { … }
class ColBordersMarker { … };
class ColgroupBordersMarker { … };
}
const TableBorders* TableBorders::ComputeTableBorders(const BlockNode& table) { … }
TableBorders::TableBorders(const BoxStrut& table_border,
const bool is_collapsed)
: … { … }
Color TableBorders::BorderColor(const ComputedStyle* style,
EdgeSide edge_side) { … }
#if DCHECK_IS_ON()
String TableBorders::DumpEdges() { … }
void TableBorders::ShowEdges() { … }
bool TableBorders::operator==(const TableBorders& other) const { … }
#endif
BoxStrut TableBorders::GetCellBorders(wtf_size_t row,
wtf_size_t column,
wtf_size_t rowspan,
wtf_size_t colspan) const { … }
void TableBorders::UpdateTableBorder(wtf_size_t table_row_count,
wtf_size_t table_column_count) { … }
BoxStrut TableBorders::CellBorder(
const BlockNode& cell,
wtf_size_t row,
wtf_size_t column,
wtf_size_t section,
WritingDirectionMode table_writing_direction) const { … }
BoxStrut TableBorders::CellPaddingForMeasure(
const ComputedStyle& cell_style,
WritingDirectionMode table_writing_direction) const { … }
void TableBorders::MergeBorders(wtf_size_t cell_start_row,
wtf_size_t cell_start_column,
wtf_size_t rowspan,
wtf_size_t colspan,
const ComputedStyle& source_style,
EdgeSource source,
const wtf_size_t box_order,
WritingDirectionMode table_writing_direction,
wtf_size_t section_index) { … }
void TableBorders::MergeRowAxisBorder(wtf_size_t start_row,
wtf_size_t start_column,
wtf_size_t colspan,
const ComputedStyle& source_style,
const wtf_size_t box_order,
EdgeSide physical_side) { … }
void TableBorders::MergeColumnAxisBorder(wtf_size_t start_row,
wtf_size_t start_column,
wtf_size_t rowspan,
const ComputedStyle& source_style,
const wtf_size_t box_order,
EdgeSide physical_side) { … }
void TableBorders::MarkInnerBordersAsDoNotFill(wtf_size_t start_row,
wtf_size_t start_column,
wtf_size_t rowspan,
wtf_size_t colspan) { … }
void TableBorders::EnsureCellColumnFits(wtf_size_t cell_column) { … }
void TableBorders::EnsureCellRowFits(wtf_size_t cell_row) { … }
}