Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutTableCell.cpp

Issue 2884573002: Replace LayoutTableCell::AbsoluteColumnIndex() with EffectiveColumnIndex()
Patch Set: - Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 * (C) 1997 Torben Weis (weis@kde.org) 3 * (C) 1997 Torben Weis (weis@kde.org)
4 * (C) 1998 Waldo Bastian (bastian@kde.org) 4 * (C) 1998 Waldo Bastian (bastian@kde.org)
5 * (C) 1999 Lars Knoll (knoll@kde.org) 5 * (C) 1999 Lars Knoll (knoll@kde.org)
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) 6 * (C) 1999 Antti Koivisto (koivisto@kde.org)
7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc.
8 * All rights reserved. 8 * All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 LayoutInvalidationReason::kAttributeChanged); 158 LayoutInvalidationReason::kAttributeChanged);
159 if (Parent() && Section()) 159 if (Parent() && Section())
160 Section()->SetNeedsCellRecalc(); 160 Section()->SetNeedsCellRecalc();
161 } 161 }
162 162
163 Length LayoutTableCell::LogicalWidthFromColumns( 163 Length LayoutTableCell::LogicalWidthFromColumns(
164 LayoutTableCol* first_col_for_this_cell, 164 LayoutTableCol* first_col_for_this_cell,
165 Length width_from_style) const { 165 Length width_from_style) const {
166 DCHECK(first_col_for_this_cell); 166 DCHECK(first_col_for_this_cell);
167 DCHECK_EQ(first_col_for_this_cell, 167 DCHECK_EQ(first_col_for_this_cell,
168 Table() 168 GetColAndColGroup().InnermostColOrColGroup());
169 ->ColElementAtAbsoluteColumn(AbsoluteColumnIndex())
170 .InnermostColOrColGroup());
171 LayoutTableCol* table_col = first_col_for_this_cell; 169 LayoutTableCol* table_col = first_col_for_this_cell;
172 170
173 unsigned col_span_count = ColSpan(); 171 unsigned col_span_count = ColSpan();
174 int col_width_sum = 0; 172 int col_width_sum = 0;
175 for (unsigned i = 1; i <= col_span_count; i++) { 173 for (unsigned i = 1; i <= col_span_count; i++) {
176 Length col_width = table_col->Style()->LogicalWidth(); 174 Length col_width = table_col->Style()->LogicalWidth();
177 175
178 // Percentage value should be returned only for colSpan == 1. 176 // Percentage value should be returned only for colSpan == 1.
179 // Otherwise we return original width for the cell. 177 // Otherwise we return original width for the cell.
180 if (!col_width.IsFixed()) { 178 if (!col_width.IsFixed()) {
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 // row over row group, etc.) 585 // row over row group, etc.)
588 return border1.Precedence() < border2.Precedence(); 586 return border1.Precedence() < border2.Precedence();
589 } 587 }
590 588
591 static CollapsedBorderValue ChooseBorder(const CollapsedBorderValue& border1, 589 static CollapsedBorderValue ChooseBorder(const CollapsedBorderValue& border1,
592 const CollapsedBorderValue& border2) { 590 const CollapsedBorderValue& border2) {
593 return CompareBorders(border1, border2) ? border2 : border1; 591 return CompareBorders(border1, border2) ? border2 : border1;
594 } 592 }
595 593
596 bool LayoutTableCell::IsInStartColumn() const { 594 bool LayoutTableCell::IsInStartColumn() const {
597 return !AbsoluteColumnIndex(); 595 return !EffectiveColumnIndex();
598 } 596 }
599 597
600 bool LayoutTableCell::IsInEndColumn() const { 598 bool LayoutTableCell::IsInEndColumn() const {
601 return Table()->AbsoluteColumnToEffectiveColumn(AbsoluteColumnIndex() + 599 return EffectiveColumnIndexOfCellAfter() >= Table()->NumEffectiveColumns();
602 ColSpan() - 1) ==
603 Table()->NumEffectiveColumns() - 1;
604 } 600 }
605 601
606 bool LayoutTableCell::HasStartBorderAdjoiningTable() const { 602 bool LayoutTableCell::HasStartBorderAdjoiningTable() const {
607 // The table direction determines the row direction. In mixed directionality, 603 // The table direction determines the row direction. In mixed directionality,
608 // we cannot guarantee that we have a common border with the table (think a 604 // we cannot guarantee that we have a common border with the table (think a
609 // ltr table with rtl start cell). 605 // ltr table with rtl start cell).
610 return HasSameDirectionAs(Table()) ? IsInStartColumn() : IsInEndColumn(); 606 return HasSameDirectionAs(Table()) ? IsInStartColumn() : IsInEndColumn();
611 } 607 }
612 608
613 bool LayoutTableCell::HasEndBorderAdjoiningTable() const { 609 bool LayoutTableCell::HasEndBorderAdjoiningTable() const {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 result = ChooseBorder( 668 result = ChooseBorder(
673 result, 669 result,
674 CollapsedBorderValue(Section()->BorderAdjoiningStartCell(this), 670 CollapsedBorderValue(Section()->BorderAdjoiningStartCell(this),
675 Section()->ResolveColor(start_color_property), 671 Section()->ResolveColor(start_color_property),
676 kBorderPrecedenceRowGroup)); 672 kBorderPrecedenceRowGroup));
677 if (!result.Exists()) 673 if (!result.Exists())
678 return result; 674 return result;
679 } 675 }
680 676
681 // (5) Our column and column group's start borders. 677 // (5) Our column and column group's start borders.
682 LayoutTable::ColAndColGroup col_and_col_group = 678 auto start_col = GetColAndColGroup();
683 table->ColElementAtAbsoluteColumn(AbsoluteColumnIndex()); 679 if (start_col.colgroup && start_col.adjoins_start_border_of_col_group) {
684 if (col_and_col_group.colgroup &&
685 col_and_col_group.adjoins_start_border_of_col_group) {
686 // Only apply the colgroup's border if this cell touches the colgroup edge. 680 // Only apply the colgroup's border if this cell touches the colgroup edge.
687 result = ChooseBorder( 681 result = ChooseBorder(
688 result, 682 result, CollapsedBorderValue(
689 CollapsedBorderValue( 683 start_col.colgroup->BorderAdjoiningCellStartBorder(this),
690 col_and_col_group.colgroup->BorderAdjoiningCellStartBorder(this), 684 start_col.colgroup->ResolveColor(start_color_property),
691 col_and_col_group.colgroup->ResolveColor(start_color_property), 685 kBorderPrecedenceColumnGroup));
692 kBorderPrecedenceColumnGroup));
693 if (!result.Exists()) 686 if (!result.Exists())
694 return result; 687 return result;
695 } 688 }
696 if (col_and_col_group.col) { 689 if (start_col.col) {
697 // Always apply the col's border irrespective of whether this cell touches 690 // Always apply the col's border irrespective of whether this cell touches
698 // it. This is per HTML5: "For the purposes of the CSS table model, the col 691 // it. This is per HTML5: "For the purposes of the CSS table model, the col
699 // element is expected to be treated as if it "was present as many times as 692 // element is expected to be treated as if it "was present as many times as
700 // its span attribute specifies". 693 // its span attribute specifies".
701 result = ChooseBorder( 694 result = ChooseBorder(
702 result, CollapsedBorderValue( 695 result, CollapsedBorderValue(
703 col_and_col_group.col->BorderAdjoiningCellStartBorder(this), 696 start_col.col->BorderAdjoiningCellStartBorder(this),
704 col_and_col_group.col->ResolveColor(start_color_property), 697 start_col.col->ResolveColor(start_color_property),
705 kBorderPrecedenceColumn)); 698 kBorderPrecedenceColumn));
706 if (!result.Exists()) 699 if (!result.Exists())
707 return result; 700 return result;
708 } 701 }
709 702
710 // (6) The end border of the preceding column. 703 // (6) The end border of the preceding column.
711 if (cell_before) { 704 if (cell_before) {
712 LayoutTable::ColAndColGroup col_and_col_group = 705 auto col_before =
713 table->ColElementAtAbsoluteColumn(AbsoluteColumnIndex() - 1); 706 table->ColAndColGroupAtEffectiveColumn(EffectiveColumnIndex() - 1);
714 // Only apply the colgroup's border if this cell touches the colgroup edge. 707 // Only apply the colgroup's border if this cell touches the colgroup edge.
715 if (col_and_col_group.colgroup && 708 if (col_before.colgroup && col_before.adjoins_end_border_of_col_group) {
716 col_and_col_group.adjoins_end_border_of_col_group) {
717 result = ChooseBorder( 709 result = ChooseBorder(
718 CollapsedBorderValue( 710 CollapsedBorderValue(
719 col_and_col_group.colgroup->BorderAdjoiningCellEndBorder(this), 711 col_before.colgroup->BorderAdjoiningCellEndBorder(this),
720 col_and_col_group.colgroup->ResolveColor(end_color_property), 712 col_before.colgroup->ResolveColor(end_color_property),
721 kBorderPrecedenceColumnGroup), 713 kBorderPrecedenceColumnGroup),
722 result); 714 result);
723 if (!result.Exists()) 715 if (!result.Exists())
724 return result; 716 return result;
725 } 717 }
726 // Always apply the col's border irrespective of whether this cell touches 718 // Always apply the col's border irrespective of whether this cell touches
727 // it. This is per HTML5: "For the purposes of the CSS table model, the col 719 // it. This is per HTML5: "For the purposes of the CSS table model, the col
728 // element is expected to be treated as if it "was present as many times as 720 // element is expected to be treated as if it "was present as many times as
729 // its span attribute specifies". 721 // its span attribute specifies".
730 if (col_and_col_group.col) { 722 if (col_before.col) {
731 result = ChooseBorder( 723 result = ChooseBorder(
732 CollapsedBorderValue( 724 CollapsedBorderValue(col_before.col->BorderAdjoiningCellAfter(this),
733 col_and_col_group.col->BorderAdjoiningCellAfter(this), 725 col_before.col->ResolveColor(end_color_property),
734 col_and_col_group.col->ResolveColor(end_color_property), 726 kBorderPrecedenceColumn),
735 kBorderPrecedenceColumn),
736 result); 727 result);
737 if (!result.Exists()) 728 if (!result.Exists())
738 return result; 729 return result;
739 } 730 }
740 } 731 }
741 732
742 if (start_border_adjoins_table) { 733 if (start_border_adjoins_table) {
743 // (7) The table's start border. 734 // (7) The table's start border.
744 result = ChooseBorder( 735 result = ChooseBorder(
745 result, CollapsedBorderValue(table->TableStartBorderAdjoiningCell(this), 736 result, CollapsedBorderValue(table->TableStartBorderAdjoiningCell(this),
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 result = ChooseBorder( 793 result = ChooseBorder(
803 result, 794 result,
804 CollapsedBorderValue(Section()->BorderAdjoiningEndCell(this), 795 CollapsedBorderValue(Section()->BorderAdjoiningEndCell(this),
805 Section()->ResolveColor(end_color_property), 796 Section()->ResolveColor(end_color_property),
806 kBorderPrecedenceRowGroup)); 797 kBorderPrecedenceRowGroup));
807 if (!result.Exists()) 798 if (!result.Exists())
808 return result; 799 return result;
809 } 800 }
810 801
811 // (5) Our column and column group's end borders. 802 // (5) Our column and column group's end borders.
812 LayoutTable::ColAndColGroup col_and_col_group = 803 auto end_col = table->ColAndColGroupAtEffectiveColumn(
813 table->ColElementAtAbsoluteColumn(AbsoluteColumnIndex() + ColSpan() - 1); 804 EffectiveColumnIndexOfCellAfter() - 1);
814 if (col_and_col_group.colgroup && 805 if (end_col.colgroup && end_col.adjoins_end_border_of_col_group) {
815 col_and_col_group.adjoins_end_border_of_col_group) {
816 // Only apply the colgroup's border if this cell touches the colgroup edge. 806 // Only apply the colgroup's border if this cell touches the colgroup edge.
817 result = ChooseBorder( 807 result = ChooseBorder(
818 result, 808 result, CollapsedBorderValue(
819 CollapsedBorderValue( 809 end_col.colgroup->BorderAdjoiningCellEndBorder(this),
820 col_and_col_group.colgroup->BorderAdjoiningCellEndBorder(this), 810 end_col.colgroup->ResolveColor(end_color_property),
821 col_and_col_group.colgroup->ResolveColor(end_color_property), 811 kBorderPrecedenceColumnGroup));
822 kBorderPrecedenceColumnGroup));
823 if (!result.Exists()) 812 if (!result.Exists())
824 return result; 813 return result;
825 } 814 }
826 if (col_and_col_group.col) { 815 if (end_col.col) {
827 // Always apply the col's border irrespective of whether this cell touches 816 // Always apply the col's border irrespective of whether this cell touches
828 // it. This is per HTML5: "For the purposes of the CSS table model, the col 817 // it. This is per HTML5: "For the purposes of the CSS table model, the col
829 // element is expected to be treated as if it "was present as many times as 818 // element is expected to be treated as if it "was present as many times as
830 // its span attribute specifies". 819 // its span attribute specifies".
831 result = ChooseBorder( 820 result = ChooseBorder(
832 result, CollapsedBorderValue( 821 result,
833 col_and_col_group.col->BorderAdjoiningCellEndBorder(this), 822 CollapsedBorderValue(end_col.col->BorderAdjoiningCellEndBorder(this),
834 col_and_col_group.col->ResolveColor(end_color_property), 823 end_col.col->ResolveColor(end_color_property),
835 kBorderPrecedenceColumn)); 824 kBorderPrecedenceColumn));
836 if (!result.Exists()) 825 if (!result.Exists())
837 return result; 826 return result;
838 } 827 }
839 828
840 // (6) The start border of the next column. 829 // (6) The start border of the next column.
841 if (!is_end_column) { 830 if (!is_end_column) {
842 LayoutTable::ColAndColGroup col_and_col_group = 831 auto col_after = table->ColAndColGroupAtEffectiveColumn(
843 table->ColElementAtAbsoluteColumn(AbsoluteColumnIndex() + ColSpan()); 832 EffectiveColumnIndexOfCellAfter());
844 if (col_and_col_group.colgroup && 833 if (col_after.colgroup && col_after.adjoins_start_border_of_col_group) {
845 col_and_col_group.adjoins_start_border_of_col_group) {
846 // Only apply the colgroup's border if this cell touches the colgroup 834 // Only apply the colgroup's border if this cell touches the colgroup
847 // edge. 835 // edge.
848 result = ChooseBorder( 836 result = ChooseBorder(
849 result, 837 result, CollapsedBorderValue(
850 CollapsedBorderValue( 838 col_after.colgroup->BorderAdjoiningCellStartBorder(this),
851 col_and_col_group.colgroup->BorderAdjoiningCellStartBorder(this), 839 col_after.colgroup->ResolveColor(start_color_property),
852 col_and_col_group.colgroup->ResolveColor(start_color_property), 840 kBorderPrecedenceColumnGroup));
853 kBorderPrecedenceColumnGroup));
854 if (!result.Exists()) 841 if (!result.Exists())
855 return result; 842 return result;
856 } 843 }
857 if (col_and_col_group.col) { 844 if (col_after.col) {
858 // Always apply the col's border irrespective of whether this cell touches 845 // Always apply the col's border irrespective of whether this cell touches
859 // it. This is per HTML5: "For the purposes of the CSS table model, the 846 // it. This is per HTML5: "For the purposes of the CSS table model, the
860 // col element is expected to be treated as if it "was present as many 847 // col element is expected to be treated as if it "was present as many
861 // times as its span attribute specifies". 848 // times as its span attribute specifies".
862 result = ChooseBorder( 849 result = ChooseBorder(
863 result, CollapsedBorderValue( 850 result, CollapsedBorderValue(
864 col_and_col_group.col->BorderAdjoiningCellBefore(this), 851 col_after.col->BorderAdjoiningCellBefore(this),
865 col_and_col_group.col->ResolveColor(start_color_property), 852 col_after.col->ResolveColor(start_color_property),
866 kBorderPrecedenceColumn)); 853 kBorderPrecedenceColumn));
867 if (!result.Exists()) 854 if (!result.Exists())
868 return result; 855 return result;
869 } 856 }
870 } 857 }
871 858
872 if (end_border_adjoins_table) { 859 if (end_border_adjoins_table) {
873 // (7) The table's end border. 860 // (7) The table's end border.
874 result = ChooseBorder( 861 result = ChooseBorder(
875 result, CollapsedBorderValue(table->TableEndBorderAdjoiningCell(this), 862 result, CollapsedBorderValue(table->TableEndBorderAdjoiningCell(this),
876 table->ResolveColor(end_color_property), 863 table->ResolveColor(end_color_property),
877 kBorderPrecedenceTable)); 864 kBorderPrecedenceTable));
878 if (!result.Exists()) 865 if (!result.Exists())
879 return result; 866 return result;
880 } 867 }
881 868
882 return result; 869 return result;
883 } 870 }
884 871
885 CollapsedBorderValue LayoutTableCell::ComputeCollapsedBeforeBorder() const { 872 CollapsedBorderValue LayoutTableCell::ComputeCollapsedBeforeBorder() const {
886 LayoutTable* table = this->Table(); 873 LayoutTable* table = this->Table();
887 LayoutTableCell* prev_cell = table->CellAbove(this); 874 LayoutTableCell* prev_cell = table->CellAbove(this);
888 // We can use the border shared with |prev_cell| if it is valid. 875 // We can use the border shared with |prev_cell| if it is valid.
889 if (prev_cell && prev_cell->collapsed_border_values_valid_ && 876 if (prev_cell && prev_cell->collapsed_border_values_valid_ &&
890 prev_cell->AbsoluteColumnIndex() == AbsoluteColumnIndex()) { 877 prev_cell->EffectiveColumnIndex() == EffectiveColumnIndex()) {
891 return prev_cell->GetCollapsedBorderValues() 878 return prev_cell->GetCollapsedBorderValues()
892 ? prev_cell->GetCollapsedBorderValues()->AfterBorder() 879 ? prev_cell->GetCollapsedBorderValues()->AfterBorder()
893 : CollapsedBorderValue(); 880 : CollapsedBorderValue();
894 } 881 }
895 882
896 // For before border, we need to check, in order of precedence: 883 // For before border, we need to check, in order of precedence:
897 // (1) Our before border. 884 // (1) Our before border.
898 int before_color_property = 885 int before_color_property =
899 ResolveBorderProperty(CSSPropertyWebkitBorderBeforeColor); 886 ResolveBorderProperty(CSSPropertyWebkitBorderBeforeColor);
900 int after_color_property = 887 int after_color_property =
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 curr_section->ResolveColor(after_color_property), 949 curr_section->ResolveColor(after_color_property),
963 kBorderPrecedenceRowGroup), 950 kBorderPrecedenceRowGroup),
964 result); 951 result);
965 if (!result.Exists()) 952 if (!result.Exists())
966 return result; 953 return result;
967 } 954 }
968 } 955 }
969 956
970 if (!curr_section) { 957 if (!curr_section) {
971 // (8) Our column and column group's before borders. 958 // (8) Our column and column group's before borders.
972 LayoutTableCol* col_elt = 959 LayoutTableCol* col_elt = GetColAndColGroup().InnermostColOrColGroup();
973 table->ColElementAtAbsoluteColumn(AbsoluteColumnIndex())
974 .InnermostColOrColGroup();
975 if (col_elt) { 960 if (col_elt) {
976 result = ChooseBorder( 961 result = ChooseBorder(
977 result, 962 result,
978 CollapsedBorderValue(col_elt->Style()->BorderBefore(), 963 CollapsedBorderValue(col_elt->Style()->BorderBefore(),
979 col_elt->ResolveColor(before_color_property), 964 col_elt->ResolveColor(before_color_property),
980 kBorderPrecedenceColumn)); 965 kBorderPrecedenceColumn));
981 if (!result.Exists()) 966 if (!result.Exists())
982 return result; 967 return result;
983 if (LayoutTableCol* enclosing_column_group = 968 if (LayoutTableCol* enclosing_column_group =
984 col_elt->EnclosingColumnGroup()) { 969 col_elt->EnclosingColumnGroup()) {
(...skipping 18 matching lines...) Expand all
1003 } 988 }
1004 989
1005 return result; 990 return result;
1006 } 991 }
1007 992
1008 CollapsedBorderValue LayoutTableCell::ComputeCollapsedAfterBorder() const { 993 CollapsedBorderValue LayoutTableCell::ComputeCollapsedAfterBorder() const {
1009 LayoutTable* table = this->Table(); 994 LayoutTable* table = this->Table();
1010 LayoutTableCell* next_cell = table->CellBelow(this); 995 LayoutTableCell* next_cell = table->CellBelow(this);
1011 // We can use the border shared with |next_cell| if it is valid. 996 // We can use the border shared with |next_cell| if it is valid.
1012 if (next_cell && next_cell->collapsed_border_values_valid_ && 997 if (next_cell && next_cell->collapsed_border_values_valid_ &&
1013 next_cell->AbsoluteColumnIndex() == AbsoluteColumnIndex()) { 998 next_cell->EffectiveColumnIndex() == EffectiveColumnIndex()) {
1014 return next_cell->GetCollapsedBorderValues() 999 return next_cell->GetCollapsedBorderValues()
1015 ? next_cell->GetCollapsedBorderValues()->BeforeBorder() 1000 ? next_cell->GetCollapsedBorderValues()->BeforeBorder()
1016 : CollapsedBorderValue(); 1001 : CollapsedBorderValue();
1017 } 1002 }
1018 1003
1019 // For after border, we need to check, in order of precedence: 1004 // For after border, we need to check, in order of precedence:
1020 // (1) Our after border. 1005 // (1) Our after border.
1021 int before_color_property = 1006 int before_color_property =
1022 ResolveBorderProperty(CSSPropertyWebkitBorderBeforeColor); 1007 ResolveBorderProperty(CSSPropertyWebkitBorderBeforeColor);
1023 int after_color_property = 1008 int after_color_property =
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 curr_section->Style()->BorderBefore(), 1061 curr_section->Style()->BorderBefore(),
1077 curr_section->ResolveColor(before_color_property), 1062 curr_section->ResolveColor(before_color_property),
1078 kBorderPrecedenceRowGroup)); 1063 kBorderPrecedenceRowGroup));
1079 if (!result.Exists()) 1064 if (!result.Exists())
1080 return result; 1065 return result;
1081 } 1066 }
1082 } 1067 }
1083 1068
1084 if (!curr_section) { 1069 if (!curr_section) {
1085 // (8) Our column and column group's after borders. 1070 // (8) Our column and column group's after borders.
1086 LayoutTableCol* col_elt = 1071 LayoutTableCol* col_elt = GetColAndColGroup().InnermostColOrColGroup();
1087 table->ColElementAtAbsoluteColumn(AbsoluteColumnIndex())
1088 .InnermostColOrColGroup();
1089 if (col_elt) { 1072 if (col_elt) {
1090 result = ChooseBorder( 1073 result = ChooseBorder(
1091 result, 1074 result,
1092 CollapsedBorderValue(col_elt->Style()->BorderAfter(), 1075 CollapsedBorderValue(col_elt->Style()->BorderAfter(),
1093 col_elt->ResolveColor(after_color_property), 1076 col_elt->ResolveColor(after_color_property),
1094 kBorderPrecedenceColumn)); 1077 kBorderPrecedenceColumn));
1095 if (!result.Exists()) 1078 if (!result.Exists())
1096 return result; 1079 return result;
1097 if (LayoutTableCol* enclosing_column_group = 1080 if (LayoutTableCol* enclosing_column_group =
1098 col_elt->EnclosingColumnGroup()) { 1081 col_elt->EnclosingColumnGroup()) {
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
1495 1478
1496 return LayoutBlock::HasLineIfEmpty(); 1479 return LayoutBlock::HasLineIfEmpty();
1497 } 1480 }
1498 1481
1499 PaintInvalidationReason LayoutTableCell::InvalidatePaint( 1482 PaintInvalidationReason LayoutTableCell::InvalidatePaint(
1500 const PaintInvalidatorContext& context) const { 1483 const PaintInvalidatorContext& context) const {
1501 return TableCellPaintInvalidator(*this, context).InvalidatePaint(); 1484 return TableCellPaintInvalidator(*this, context).InvalidatePaint();
1502 } 1485 }
1503 1486
1504 } // namespace blink 1487 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutTableCell.h ('k') | third_party/WebKit/Source/core/layout/LayoutTableCellTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698