| Index: third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h
|
| diff --git a/third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h b/third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h
|
| index efdf25d6206f9d9e05bb5fbebceb40010d1eec51..90d9449e1ac54dc86e2d5070de0884c9a59216d2 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h
|
| +++ b/third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h
|
| @@ -110,7 +110,15 @@
|
| kTableCellBackgroundFromColumn,
|
| kTableCellBackgroundFromSection,
|
| kTableCellBackgroundFromRow,
|
| - kTableCollapsedBorders,
|
| + // Table collapsed borders can be painted together (e.g., left & top) but
|
| + // there are at most 4 phases of collapsed border painting for a single
|
| + // cell. To disambiguate these phases of collapsed border painting, a mask
|
| + // is used. TableCollapsedBorderBase can be larger than
|
| + // TableCollapsedBorderUnalignedBase to ensure the base lower bits are 0's.
|
| + kTableCollapsedBorderUnalignedBase,
|
| + kTableCollapsedBorderBase =
|
| + (((kTableCollapsedBorderUnalignedBase - 1) >> 4) + 1) << 4,
|
| + kTableCollapsedBorderLast = kTableCollapsedBorderBase + 0x0f,
|
| kTableSectionBoxShadowInset,
|
| kTableSectionBoxShadowNormal,
|
| kTableRowBoxShadowInset,
|
| @@ -194,6 +202,19 @@
|
| kTypeLast = kUninitializedType
|
| };
|
|
|
| + static_assert(kTableCollapsedBorderBase >= kTableCollapsedBorderUnalignedBase,
|
| + "TableCollapsedBorder types overlap with other types");
|
| + static_assert((kTableCollapsedBorderBase & 0xf) == 0,
|
| + "The lowest 4 bits of TableCollapsedBorderBase should be zero");
|
| + // Bits or'ed onto TableCollapsedBorderBase to generate a real table collapsed
|
| + // border type.
|
| + enum TableCollapsedBorderSides {
|
| + TableCollapsedBorderTop = 1 << 0,
|
| + TableCollapsedBorderRight = 1 << 1,
|
| + TableCollapsedBorderBottom = 1 << 2,
|
| + TableCollapsedBorderLeft = 1 << 3,
|
| + };
|
| +
|
| DisplayItem(const DisplayItemClient& client, Type type, size_t derivedSize)
|
| : m_client(&client),
|
| m_type(type),
|
|
|