| Index: src/core/SkBBoxRecord.cpp
 | 
| diff --git a/src/core/SkBBoxRecord.cpp b/src/core/SkBBoxRecord.cpp
 | 
| index 0dadb5c382cc92ae185e4a174209301da199d4bc..b1c229e68b57483caac93224f3331a9a038527f9 100644
 | 
| --- a/src/core/SkBBoxRecord.cpp
 | 
| +++ b/src/core/SkBBoxRecord.cpp
 | 
| @@ -165,6 +165,18 @@ void SkBBoxRecord::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center,
 | 
|      }
 | 
|  }
 | 
|  
 | 
| +// Hack to work-around https://code.google.com/p/chromium/issues/detail?id=373785
 | 
| +// This logic assums that 'pad' is enough to add to the left and right to account for
 | 
| +// big glyphs. For the font in question (a logo font) the glyphs is much wider than just
 | 
| +// the pointsize (approx 3x wider).
 | 
| +// As a temp work-around, we scale-up pad.
 | 
| +// A more correct fix might be to add fontmetrics.fMaxX, but we don't have that value in hand
 | 
| +// at the moment, and (possibly) the value in the font may not be accurate (but who knows).
 | 
| +//
 | 
| +static SkScalar hack_373785_amend_pad(SkScalar pad) {
 | 
| +    return pad * 4;
 | 
| +}
 | 
| +
 | 
|  void SkBBoxRecord::onDrawPosText(const void* text, size_t byteLength, const SkPoint pos[],
 | 
|                                   const SkPaint& paint) {
 | 
|      SkRect bbox;
 | 
| @@ -176,6 +188,7 @@ void SkBBoxRecord::onDrawPosText(const void* text, size_t byteLength, const SkPo
 | 
|  
 | 
|      // pad on left and right by half of max vertical glyph extents
 | 
|      SkScalar pad = (metrics.fTop - metrics.fBottom) / 2;
 | 
| +    pad = hack_373785_amend_pad(pad);
 | 
|      bbox.fLeft += pad;
 | 
|      bbox.fRight -= pad;
 | 
|  
 | 
| @@ -212,6 +225,7 @@ void SkBBoxRecord::onDrawPosTextH(const void* text, size_t byteLength, const SkS
 | 
|      }
 | 
|  
 | 
|      // pad horizontally by max glyph height
 | 
| +    pad = hack_373785_amend_pad(pad);
 | 
|      bbox.fLeft  += pad;
 | 
|      bbox.fRight -= pad;
 | 
|  
 | 
| 
 |