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

Unified Diff: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp

Issue 2416033003: Remove unsafe getFontMetrics methods (Closed)
Patch Set: Address wkroman suggestions Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
diff --git a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
index 34159d0147c430dd3b0d49e5ed90a19d0ff5fb7e..c0b3b7ca8ed4b79930c6af6a0ce19fb0b09a53ea 100644
--- a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
+++ b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
@@ -753,6 +753,10 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
canvas()->document().updateStyleAndLayoutTreeForNode(canvas());
const Font& font = accessFont();
+ const SimpleFontData* fontData = font.primaryFont();
+ DCHECK(fontData);
+ if (!fontData)
+ return metrics;
TextDirection direction;
if (state().getDirection() == CanvasRenderingContext2DState::DirectionInherit)
@@ -773,7 +777,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
metrics->setActualBoundingBoxRight(textBounds.maxX());
// y direction
- const FontMetrics& fontMetrics = font.getFontMetrics();
+ const FontMetrics& fontMetrics = fontData->getFontMetrics();
const float ascent = fontMetrics.floatAscent();
const float descent = fontMetrics.floatDescent();
const float baselineY = getFontBaseline(fontMetrics);
@@ -829,10 +833,11 @@ void CanvasRenderingContext2D::drawTextInternal(
DisableDeferralReasonSubPixelTextAntiAliasingSupport);
const Font& font = accessFont();
- if (!font.primaryFont())
+ const SimpleFontData* fontData = font.primaryFont();
+ DCHECK(fontData);
+ if (!fontData)
return;
-
- const FontMetrics& fontMetrics = font.getFontMetrics();
+ const FontMetrics& fontMetrics = fontData->getFontMetrics();
// FIXME: Need to turn off font smoothing.
« no previous file with comments | « third_party/WebKit/Source/core/testing/Internals.cpp ('k') | third_party/WebKit/Source/platform/DragImage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698