| Index: third_party/WebKit/Source/core/layout/LayoutTableCell.h | 
| diff --git a/third_party/WebKit/Source/core/layout/LayoutTableCell.h b/third_party/WebKit/Source/core/layout/LayoutTableCell.h | 
| index 6ce3209bf396e44e4c80f27cb087251db698acdd..0b0fd6a81fb4cc998d1074b3a07aebee7af6a3a1 100644 | 
| --- a/third_party/WebKit/Source/core/layout/LayoutTableCell.h | 
| +++ b/third_party/WebKit/Source/core/layout/LayoutTableCell.h | 
| @@ -185,8 +185,9 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { | 
| int borderBefore() const override; | 
| int borderAfter() const override; | 
|  | 
| -  void collectBorderValues(LayoutTable::CollapsedBorderValues&); | 
| -  static void sortBorderValues(LayoutTable::CollapsedBorderValues&); | 
| +  // Returns true if any collapsed borders related to this cell changed. | 
| +  bool collectBorderValues(Vector<CollapsedBorderValue>&); | 
| +  static void sortBorderValues(Vector<CollapsedBorderValue>&); | 
|  | 
| void layout() override; | 
|  | 
| @@ -286,38 +287,14 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { | 
| const char* name() const override { return "LayoutTableCell"; } | 
|  | 
| bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const override; | 
| -  void invalidateDisplayItemClients(PaintInvalidationReason) const override; | 
| - | 
| -  // TODO(wkorman): Consider renaming to more clearly differentiate from | 
| -  // CollapsedBorderValue. | 
| -  class CollapsedBorderValues : public DisplayItemClient { | 
| -   public: | 
| -    CollapsedBorderValues(const LayoutTable&, | 
| -                          const CollapsedBorderValue& startBorder, | 
| -                          const CollapsedBorderValue& endBorder, | 
| -                          const CollapsedBorderValue& beforeBorder, | 
| -                          const CollapsedBorderValue& afterBorder); | 
| - | 
| -    const CollapsedBorderValue& startBorder() const { return m_startBorder; } | 
| -    const CollapsedBorderValue& endBorder() const { return m_endBorder; } | 
| -    const CollapsedBorderValue& beforeBorder() const { return m_beforeBorder; } | 
| -    const CollapsedBorderValue& afterBorder() const { return m_afterBorder; } | 
| - | 
| -    void setCollapsedBorderValues(const CollapsedBorderValues& other); | 
| - | 
| -    // DisplayItemClient methods. | 
| -    String debugName() const; | 
| -    LayoutRect visualRect() const; | 
| - | 
| -   private: | 
| -    const LayoutTable& m_layoutTable; | 
| -    CollapsedBorderValue m_startBorder; | 
| -    CollapsedBorderValue m_endBorder; | 
| -    CollapsedBorderValue m_beforeBorder; | 
| -    CollapsedBorderValue m_afterBorder; | 
| + | 
| +  struct CollapsedBorderValues { | 
| +    CollapsedBorderValue startBorder; | 
| +    CollapsedBorderValue endBorder; | 
| +    CollapsedBorderValue beforeBorder; | 
| +    CollapsedBorderValue afterBorder; | 
| }; | 
|  | 
| -  bool usesTableAsAdditionalDisplayItemClient() const; | 
| const CollapsedBorderValues* collapsedBorderValues() const { | 
| return m_collapsedBorderValues.get(); | 
| } | 
| @@ -329,6 +306,8 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { | 
| // A table cell's location is relative to its containing section. | 
| LayoutBox* locationContainer() const override { return section(); } | 
|  | 
| +  LayoutRect localVisualRect() const override; | 
| + | 
| protected: | 
| void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; | 
| void computePreferredLogicalWidths() override; | 
| @@ -352,7 +331,6 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { | 
| void paintMask(const PaintInfo&, const LayoutPoint&) const override; | 
|  | 
| LayoutSize offsetFromContainer(const LayoutObject*) const override; | 
| -  LayoutRect localVisualRect() const override; | 
|  | 
| int borderHalfLeft(bool outer) const; | 
| int borderHalfRight(bool outer) const; | 
| @@ -390,8 +368,8 @@ class CORE_EXPORT LayoutTableCell final : public LayoutBlockFlow { | 
| // See also https://code.google.com/p/chromium/issues/detail?id=128227 for | 
| // some history. | 
| // | 
| -  // Those functions are called when the cache (m_collapsedBorders) is | 
| -  // invalidated on LayoutTable. | 
| +  // Those functions are called before paint invalidation if the collapsed | 
| +  // borders cache is invalidated on LayoutTable. | 
| CollapsedBorderValue computeCollapsedStartBorder( | 
| IncludeBorderColorOrNot = IncludeBorderColor) const; | 
| CollapsedBorderValue computeCollapsedEndBorder( | 
|  |