| Index: Source/core/rendering/InlineTextBox.h
 | 
| diff --git a/Source/core/rendering/InlineTextBox.h b/Source/core/rendering/InlineTextBox.h
 | 
| index 69b2a1d756b7b46c8c1a6644f7f9326de83774fd..c0487466ddb6b22d47e7f96034642c045f3742ec 100644
 | 
| --- a/Source/core/rendering/InlineTextBox.h
 | 
| +++ b/Source/core/rendering/InlineTextBox.h
 | 
| @@ -119,6 +119,8 @@ public:
 | 
|  
 | 
|  protected:
 | 
|      virtual void paint(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom) OVERRIDE;
 | 
| +    virtual void paintDecorationStyle(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom, float decorationThickness) OVERRIDE;
 | 
| +    virtual void getPaintDecorationSyle(PaintInfo&, const LayoutPoint&, float *) OVERRIDE;
 | 
|      virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, LayoutUnit lineTop, LayoutUnit lineBottom) OVERRIDE;
 | 
|  
 | 
|  public:
 | 
| @@ -175,6 +177,8 @@ private:
 | 
|      unsigned short m_truncation; // Where to truncate when text overflow is applied.  We use special constants to
 | 
|                        // denote no truncation (the whole run paints) and full truncation (nothing paints at all).
 | 
|  
 | 
| +    float m_textDecorationThickness;
 | 
| +
 | 
|  protected:
 | 
|      void paintCompositionBackground(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, int startPos, int endPos);
 | 
|      void paintDocumentMarkers(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, bool background);
 | 
| @@ -185,7 +189,7 @@ protected:
 | 
|      virtual void paintTextMatchMarker(GraphicsContext*, const FloatPoint& boxOrigin, DocumentMarker*, RenderStyle*, const Font&);
 | 
|  
 | 
|  private:
 | 
| -    void paintDecoration(GraphicsContext*, const FloatPoint& boxOrigin, TextDecoration, const ShadowList*);
 | 
| +    void paintDecoration(GraphicsContext*, const FloatPoint& boxOrigin, TextDecoration, const ShadowList*,  float decorationThickness = 0);
 | 
|      void paintSelection(GraphicsContext*, const FloatPoint& boxOrigin, RenderStyle*, const Font&, Color textColor);
 | 
|  
 | 
|      TextRun::ExpansionBehavior expansionBehavior() const
 | 
| @@ -193,6 +197,9 @@ private:
 | 
|          return (canHaveLeadingExpansion() ? TextRun::AllowLeadingExpansion : TextRun::ForbidLeadingExpansion)
 | 
|              | (expansion() && nextLeafChild() ? TextRun::AllowTrailingExpansion : TextRun::ForbidTrailingExpansion);
 | 
|      }
 | 
| +
 | 
| +    float getDecorationThickness() { return m_textDecorationThickness; }
 | 
| +    void setDecorationThickness(float textDecorationThickness) { m_textDecorationThickness = textDecorationThickness; }
 | 
|  };
 | 
|  
 | 
|  DEFINE_INLINE_BOX_TYPE_CASTS(InlineTextBox);
 | 
| 
 |