| Index: third_party/WebKit/Source/core/layout/LayoutTable.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/LayoutTable.cpp b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
|
| index e5b53c470932535491831dc9c7a360276cdd7eb1..f50226b7acb667296bf21b1284d27cc70b9bbd85 100644
|
| --- a/third_party/WebKit/Source/core/layout/LayoutTable.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
|
| @@ -1189,23 +1189,25 @@ int LayoutTable::CalcBorderStart() const {
|
|
|
| int border_width = 0;
|
|
|
| - const BorderValue& table_start_border = Style()->BorderStart();
|
| - if (table_start_border.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle table_start_border_style = Style()->BorderStartStyle();
|
| + if (table_start_border_style == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(table_start_border.Style()))
|
| - border_width = table_start_border.Width();
|
| + if (ComputedStyle::BorderStyleIsVisible(table_start_border_style))
|
| + border_width = Style()->BorderStartWidth();
|
|
|
| // TODO(dgrogan): This logic doesn't properly account for the first column in
|
| // the first column-group case.
|
| if (LayoutTableCol* column =
|
| ColElementAtAbsoluteColumn(0).InnermostColOrColGroup()) {
|
| // FIXME: We don't account for direction on columns and column groups.
|
| - const BorderValue& column_adjoining_border = column->Style()->BorderStart();
|
| - if (column_adjoining_border.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle column_adjoining_border_style =
|
| + column->Style()->BorderStartStyle();
|
| + if (column_adjoining_border_style == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border.Style()))
|
| + if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border_style)) {
|
| border_width =
|
| - std::max<int>(border_width, column_adjoining_border.Width());
|
| + std::max<int>(border_width, column->Style()->BorderStartWidth());
|
| + }
|
| }
|
|
|
| if (const LayoutTableSection* top_non_empty_section =
|
| @@ -1258,11 +1260,11 @@ int LayoutTable::CalcBorderEnd() const {
|
|
|
| int border_width = 0;
|
|
|
| - const BorderValue& table_end_border = Style()->BorderEnd();
|
| - if (table_end_border.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle table_end_border_style = Style()->BorderEndStyle();
|
| + if (table_end_border_style == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(table_end_border.Style()))
|
| - border_width = table_end_border.Width();
|
| + if (ComputedStyle::BorderStyleIsVisible(table_end_border_style))
|
| + border_width = Style()->BorderEndWidth();
|
|
|
| unsigned end_column = NumEffectiveColumns() - 1;
|
|
|
| @@ -1271,12 +1273,14 @@ int LayoutTable::CalcBorderEnd() const {
|
| if (LayoutTableCol* column =
|
| ColElementAtAbsoluteColumn(end_column).InnermostColOrColGroup()) {
|
| // FIXME: We don't account for direction on columns and column groups.
|
| - const BorderValue& column_adjoining_border = column->Style()->BorderEnd();
|
| - if (column_adjoining_border.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle column_adjoining_border_style =
|
| + column->Style()->BorderEndStyle();
|
| + if (column_adjoining_border_style == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border.Style()))
|
| + if (ComputedStyle::BorderStyleIsVisible(column_adjoining_border_style)) {
|
| border_width =
|
| - std::max<int>(border_width, column_adjoining_border.Width());
|
| + std::max<int>(border_width, column->Style()->BorderEndWidth());
|
| + }
|
| }
|
|
|
| if (const LayoutTableSection* top_non_empty_section =
|
| @@ -1350,11 +1354,13 @@ int LayoutTable::OuterBorderBefore() const {
|
| if (border_width < 0)
|
| return 0; // Overridden by hidden
|
| }
|
| - const BorderValue& tb = Style()->BorderBefore();
|
| - if (tb.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle tbs = Style()->BorderBeforeStyle();
|
| + if (tbs == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
|
| - border_width = std::max<int>(border_width, tb.Width() / 2);
|
| + if (ComputedStyle::BorderStyleIsVisible(tbs)) {
|
| + border_width =
|
| + std::max<int>(border_width, Style()->BorderBeforeWidth() / 2);
|
| + }
|
| return border_width;
|
| }
|
|
|
| @@ -1368,11 +1374,13 @@ int LayoutTable::OuterBorderAfter() const {
|
| if (border_width < 0)
|
| return 0; // Overridden by hidden
|
| }
|
| - const BorderValue& tb = Style()->BorderAfter();
|
| - if (tb.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle tbs = Style()->BorderAfterStyle();
|
| + if (tbs == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
|
| - border_width = std::max<int>(border_width, (tb.Width() + 1) / 2);
|
| + if (ComputedStyle::BorderStyleIsVisible(tbs)) {
|
| + border_width =
|
| + std::max<int>(border_width, (Style()->BorderAfterWidth() + 1) / 2);
|
| + }
|
| return border_width;
|
| }
|
|
|
| @@ -1382,12 +1390,14 @@ int LayoutTable::OuterBorderStart() const {
|
|
|
| int border_width = 0;
|
|
|
| - const BorderValue& tb = Style()->BorderStart();
|
| - if (tb.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle tbs = Style()->BorderStartStyle();
|
| + if (tbs == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
|
| - border_width =
|
| - (tb.Width() + (Style()->IsLeftToRightDirection() ? 0 : 1)) / 2;
|
| + if (ComputedStyle::BorderStyleIsVisible(tbs)) {
|
| + border_width = (Style()->BorderStartWidth() +
|
| + (Style()->IsLeftToRightDirection() ? 0 : 1)) /
|
| + 2;
|
| + }
|
|
|
| bool all_hidden = true;
|
| for (LayoutTableSection* section = TopSection(); section;
|
| @@ -1410,12 +1420,14 @@ int LayoutTable::OuterBorderEnd() const {
|
|
|
| int border_width = 0;
|
|
|
| - const BorderValue& tb = Style()->BorderEnd();
|
| - if (tb.Style() == EBorderStyle::kHidden)
|
| + EBorderStyle tbs = Style()->BorderEndStyle();
|
| + if (tbs == EBorderStyle::kHidden)
|
| return 0;
|
| - if (ComputedStyle::BorderStyleIsVisible(tb.Style()))
|
| - border_width =
|
| - (tb.Width() + (Style()->IsLeftToRightDirection() ? 1 : 0)) / 2;
|
| + if (ComputedStyle::BorderStyleIsVisible(tbs)) {
|
| + border_width = (Style()->BorderEndWidth() +
|
| + (Style()->IsLeftToRightDirection() ? 1 : 0)) /
|
| + 2;
|
| + }
|
|
|
| bool all_hidden = true;
|
| for (LayoutTableSection* section = TopSection(); section;
|
|
|