Index: cc/resources/raster_worker_pool.cc |
diff --git a/cc/resources/raster_worker_pool.cc b/cc/resources/raster_worker_pool.cc |
index ca26edd6a41f3c80da14e61d59b2d626d94b1c40..4511f9d561f0930ee4d4fa120dab3d9df3b55ca3 100644 |
--- a/cc/resources/raster_worker_pool.cc |
+++ b/cc/resources/raster_worker_pool.cc |
@@ -228,28 +228,26 @@ void RasterWorkerPool::PlaybackToMemory(void* memory, |
SkColorType buffer_color_type = ResourceFormatToSkColorType(format); |
bool needs_copy = buffer_color_type != info.colorType(); |
- // TODO(danakj): Make a SkSurfaceProps with an SkPixelGeometry to enable or |
- // disable LCD text. |
- // TODO(danakj): Disable LCD text on Mac during layout tests: |
- // https://cs.chromium.org#chromium/src/third_party/WebKit/Source/platform/fonts/mac/FontPlatformDataMac.mm&l=55 |
- // TODO(danakj): On Windows when LCD text is disabled, ask skia to draw LCD |
- // text offscreen and downsample it to AA text. |
- // https://cs.chromium.org#chromium/src/third_party/WebKit/Source/platform/fonts/win/FontPlatformDataWin.cpp&l=86 |
- SkSurfaceProps* surface_props = nullptr; |
+ // Use unknown pixel geometry to disable LCD text. |
+ SkSurfaceProps surface_props(0, kUnknown_SkPixelGeometry); |
+ if (raster_source->CanUseLCDText()) { |
+ // LegacyFontHost will get LCD text and skia figures out what type to use. |
+ surface_props = SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType); |
+ } |
if (!stride) |
stride = info.minRowBytes(); |
if (!needs_copy) { |
skia::RefPtr<SkSurface> surface = skia::AdoptRef( |
- SkSurface::NewRasterDirect(info, memory, stride, surface_props)); |
+ SkSurface::NewRasterDirect(info, memory, stride, &surface_props)); |
skia::RefPtr<SkCanvas> canvas = skia::SharePtr(surface->getCanvas()); |
raster_source->PlaybackToCanvas(canvas.get(), rect, scale); |
return; |
} |
skia::RefPtr<SkSurface> surface = |
- skia::AdoptRef(SkSurface::NewRaster(info, surface_props)); |
+ skia::AdoptRef(SkSurface::NewRaster(info, &surface_props)); |
skia::RefPtr<SkCanvas> canvas = skia::SharePtr(surface->getCanvas()); |
raster_source->PlaybackToCanvas(canvas.get(), rect, scale); |