Index: third_party/WebKit/Source/core/layout/LayoutTableSection.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp b/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp |
index efd0a2dbcb7df5ead7a16ac7f921d4d29932af32..3c9f5ca3762309b422307f539ea7945bf1d684be 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp |
@@ -1360,22 +1360,27 @@ int LayoutTableSection::CalcBlockDirectionOuterBorder( |
int border_width = 0; |
- const BorderValue& sb = |
- side == kBorderBefore ? Style()->BorderBefore() : Style()->BorderAfter(); |
- if (sb.Style() == EBorderStyle::kHidden) |
+ EBorderStyle section_border_style = side == kBorderBefore |
+ ? Style()->BorderBeforeStyle() |
+ : Style()->BorderAfterStyle(); |
+ if (section_border_style == EBorderStyle::kHidden) |
return -1; |
- if (ComputedStyle::BorderStyleIsVisible(sb.Style())) |
- border_width = sb.Width(); |
+ if (ComputedStyle::BorderStyleIsVisible(section_border_style)) { |
+ border_width = side == kBorderBefore ? Style()->BorderBeforeWidth() |
+ : Style()->BorderAfterWidth(); |
+ } |
- const BorderValue& rb = side == kBorderBefore |
- ? FirstRow()->Style()->BorderBefore() |
- : LastRow()->Style()->BorderAfter(); |
- if (rb.Style() == EBorderStyle::kHidden) |
+ EBorderStyle row_border_style = side == kBorderBefore |
+ ? FirstRow()->Style()->BorderBeforeStyle() |
+ : LastRow()->Style()->BorderAfterStyle(); |
+ float row_border_width = side == kBorderBefore |
+ ? FirstRow()->Style()->BorderBeforeWidth() |
+ : LastRow()->Style()->BorderAfterWidth(); |
+ if (row_border_style == EBorderStyle::kHidden) |
return -1; |
- if (ComputedStyle::BorderStyleIsVisible(rb.Style()) && |
- rb.Width() > border_width) |
- border_width = rb.Width(); |
- |
+ if (ComputedStyle::BorderStyleIsVisible(row_border_style) && |
+ row_border_width > border_width) |
+ border_width = row_border_width; |
bool all_hidden = true; |
unsigned r = side == kBorderBefore ? 0 : grid_.size() - 1; |
unsigned n_cols = NumCols(r); |
@@ -1386,33 +1391,39 @@ int LayoutTableSection::CalcBlockDirectionOuterBorder( |
const ComputedStyle& primary_cell_style = |
grid_cell.PrimaryCell()->StyleRef(); |
// FIXME: Make this work with perpendicular and flipped cells. |
- const BorderValue& cb = side == kBorderBefore |
- ? primary_cell_style.BorderBefore() |
- : primary_cell_style.BorderAfter(); |
+ EBorderStyle cell_border_style = |
+ side == kBorderBefore ? primary_cell_style.BorderBeforeStyle() |
+ : primary_cell_style.BorderAfterStyle(); |
+ float cell_border_width = side == kBorderBefore |
+ ? primary_cell_style.BorderBeforeWidth() |
+ : primary_cell_style.BorderAfterWidth(); |
// FIXME: Don't repeat for the same col group |
LayoutTableCol* col = |
Table()->ColElementAtAbsoluteColumn(c).InnermostColOrColGroup(); |
if (col) { |
- const BorderValue& gb = side == kBorderBefore |
- ? col->Style()->BorderBefore() |
- : col->Style()->BorderAfter(); |
- if (gb.Style() == EBorderStyle::kHidden || |
- cb.Style() == EBorderStyle::kHidden) |
+ EBorderStyle col_border_style = side == kBorderBefore |
+ ? col->Style()->BorderBeforeStyle() |
+ : col->Style()->BorderAfterStyle(); |
+ const float col_border_width = side == kBorderBefore |
+ ? col->Style()->BorderBeforeWidth() |
+ : col->Style()->BorderAfterWidth(); |
+ if (col_border_style == EBorderStyle::kHidden || |
+ cell_border_style == EBorderStyle::kHidden) |
continue; |
all_hidden = false; |
- if (ComputedStyle::BorderStyleIsVisible(gb.Style()) && |
- gb.Width() > border_width) |
- border_width = gb.Width(); |
- if (ComputedStyle::BorderStyleIsVisible(cb.Style()) && |
- cb.Width() > border_width) |
- border_width = cb.Width(); |
+ if (ComputedStyle::BorderStyleIsVisible(col_border_style) && |
+ col_border_width > border_width) |
+ border_width = col_border_width; |
+ if (ComputedStyle::BorderStyleIsVisible(cell_border_style) && |
+ cell_border_width > border_width) |
+ border_width = cell_border_width; |
} else { |
- if (cb.Style() == EBorderStyle::kHidden) |
+ if (cell_border_style == EBorderStyle::kHidden) |
continue; |
all_hidden = false; |
- if (ComputedStyle::BorderStyleIsVisible(cb.Style()) && |
- cb.Width() > border_width) |
- border_width = cb.Width(); |
+ if (ComputedStyle::BorderStyleIsVisible(cell_border_style) && |
+ cell_border_width > border_width) |
+ border_width = cell_border_width; |
} |
} |
if (all_hidden) |
@@ -1432,23 +1443,31 @@ int LayoutTableSection::CalcInlineDirectionOuterBorder( |
int border_width = 0; |
- const BorderValue& sb = |
- side == kBorderStart ? Style()->BorderStart() : Style()->BorderEnd(); |
- if (sb.Style() == EBorderStyle::kHidden) |
+ EBorderStyle section_border_style = side == kBorderStart |
+ ? Style()->BorderStartStyle() |
+ : Style()->BorderEndStyle(); |
+ const float section_border_width = side == kBorderStart |
+ ? Style()->BorderStartWidth() |
+ : Style()->BorderEndWidth(); |
+ if (section_border_style == EBorderStyle::kHidden) |
return -1; |
- if (ComputedStyle::BorderStyleIsVisible(sb.Style())) |
- border_width = sb.Width(); |
+ if (ComputedStyle::BorderStyleIsVisible(section_border_style)) |
+ border_width = section_border_width; |
if (LayoutTableCol* col = Table() |
->ColElementAtAbsoluteColumn(col_index) |
.InnermostColOrColGroup()) { |
- const BorderValue& gb = side == kBorderStart ? col->Style()->BorderStart() |
- : col->Style()->BorderEnd(); |
- if (gb.Style() == EBorderStyle::kHidden) |
+ EBorderStyle col_border_style = side == kBorderStart |
+ ? col->Style()->BorderStartStyle() |
+ : col->Style()->BorderEndStyle(); |
+ const float col_border_width = side == kBorderStart |
+ ? col->Style()->BorderStartWidth() |
+ : col->Style()->BorderEndWidth(); |
+ if (col_border_style == EBorderStyle::kHidden) |
return -1; |
- if (ComputedStyle::BorderStyleIsVisible(gb.Style()) && |
- gb.Width() > border_width) |
- border_width = gb.Width(); |
+ if (ComputedStyle::BorderStyleIsVisible(col_border_style) && |
+ col_border_width > border_width) |
+ border_width = col_border_width; |
} |
bool all_hidden = true; |
@@ -1464,22 +1483,28 @@ int LayoutTableSection::CalcInlineDirectionOuterBorder( |
const ComputedStyle& primary_cell_parent_style = |
grid_cell.PrimaryCell()->Parent()->StyleRef(); |
// FIXME: Make this work with perpendicular and flipped cells. |
- const BorderValue& cb = side == kBorderStart |
- ? primary_cell_style.BorderStart() |
- : primary_cell_style.BorderEnd(); |
- const BorderValue& rb = side == kBorderStart |
- ? primary_cell_parent_style.BorderStart() |
- : primary_cell_parent_style.BorderEnd(); |
- if (cb.Style() == EBorderStyle::kHidden || |
- rb.Style() == EBorderStyle::kHidden) |
+ EBorderStyle cell_border_style = side == kBorderStart |
+ ? primary_cell_style.BorderStartStyle() |
+ : primary_cell_style.BorderEndStyle(); |
+ EBorderStyle row_border_style = |
+ side == kBorderStart ? primary_cell_parent_style.BorderStartStyle() |
+ : primary_cell_parent_style.BorderEndStyle(); |
+ const float cell_border_width = side == kBorderStart |
+ ? primary_cell_style.BorderStartWidth() |
+ : primary_cell_style.BorderEndWidth(); |
+ const float row_border_width = |
+ side == kBorderStart ? primary_cell_parent_style.BorderStartWidth() |
+ : primary_cell_parent_style.BorderEndWidth(); |
+ if (cell_border_style == EBorderStyle::kHidden || |
+ row_border_style == EBorderStyle::kHidden) |
continue; |
all_hidden = false; |
- if (ComputedStyle::BorderStyleIsVisible(cb.Style()) && |
- cb.Width() > border_width) |
- border_width = cb.Width(); |
- if (ComputedStyle::BorderStyleIsVisible(rb.Style()) && |
- rb.Width() > border_width) |
- border_width = rb.Width(); |
+ if (ComputedStyle::BorderStyleIsVisible(cell_border_style) && |
+ cell_border_width > border_width) |
+ border_width = cell_border_width; |
+ if (ComputedStyle::BorderStyleIsVisible(row_border_style) && |
+ row_border_width > border_width) |
+ border_width = row_border_width; |
} |
if (all_hidden) |
return -1; |