From 72708b905309af930ca76a09746be5d09204cecd Mon Sep 17 00:00:00 2001 From: caryclark Date: Mon, 13 Jun 2016 06:08:25 -0700 Subject: fix skia + windows + gn The Skia Windows build for PDFium differs from the Skia Chromium build in that it uses FreeType within PDFium and Direct Write within Chromium. This allows Chrome to match the UI of Windows, and allows PDFium to use FreeType to measure and draw. When PDFium was updated to use gn, the settings from Chrome were used as the basis for the PDFium settings. Subsequently, PDFium built with Skia on Windows drew text incorrectly as it used FreeType to look up the font glyphs and Direct Write to draw them. This fixes the gn files, and also fixes an error that crept into the now less-used gyp files. R=dsinclair@chromium.org BUG= Review-Url: https://codereview.chromium.org/2055353002 --- skia/BUILD.gn | 11 +++-------- skia/skia_gn_files.gypi | 2 -- skia/skia_library.gypi | 1 - third_party/BUILD.gn | 9 ++++++++- xfa.gyp | 2 +- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/skia/BUILD.gn b/skia/BUILD.gn index d83ca3acab..e12129153f 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn @@ -112,6 +112,7 @@ config("skia_config") { "//third_party/skia/include/pipe", "//third_party/skia/include/ports", "//third_party/skia/include/utils", + # TODO(dsinclair): Right way to use //third_party/freetype? "//third_party/freetype/include", ] @@ -311,14 +312,10 @@ component("skia") { sources -= [ "//third_party/skia/src/ports/SkOSFile_posix.cpp", "//third_party/skia/src/ports/SkTLS_pthread.cpp", - "//third_party/skia/src/ports/SkFontMgr_custom.cpp", - "//third_party/skia/src/ports/SkFontMgr_custom_empty_factory.cpp", ] } else { sources -= [ "//third_party/skia/src/ports/SkFontHost_win.cpp", - "//third_party/skia/src/ports/SkFontMgr_win_dw.cpp", - "//third_party/skia/src/ports/SkFontMgr_win_dw_factory.cpp", "//third_party/skia/src/ports/SkOSFile_win.cpp", "//third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp", "//third_party/skia/src/ports/SkScalerContext_win_dw.cpp", @@ -337,7 +334,7 @@ component("skia") { sources -= [ "//third_party/skia/src/ports/SkFontHost_mac.cpp" ] } - if (!is_linux && !is_android) { + if (!is_linux && !is_android && !is_win) { sources -= [ "//third_party/skia/src/ports/SkFontHost_FreeType.cpp", "//third_party/skia/src/ports/SkFontHost_FreeType_common.cpp", @@ -365,9 +362,7 @@ component("skia") { ] if (is_linux) { - deps += [ - "//third_party/icu:icuuc", - ] + deps += [ "//third_party/icu:icuuc" ] } if (is_android) { diff --git a/skia/skia_gn_files.gypi b/skia/skia_gn_files.gypi index f54ac03ff5..062460b1c6 100644 --- a/skia/skia_gn_files.gypi +++ b/skia/skia_gn_files.gypi @@ -14,8 +14,6 @@ '<(skia_src_path)/ports/SkFontMgr_android.cpp', '<(skia_src_path)/ports/SkFontMgr_android_factory.cpp', '<(skia_src_path)/ports/SkFontMgr_android_parser.cpp', - '<(skia_src_path)/ports/SkFontMgr_win_dw.cpp', - '<(skia_src_path)/ports/SkFontMgr_win_dw_factory.cpp', '<(skia_src_path)/ports/SkGlobalInitialization_default.cpp', '<(skia_src_path)/ports/SkImageEncoder_none.cpp', '<(skia_src_path)/ports/SkOSFile_posix.cpp', diff --git a/skia/skia_library.gypi b/skia/skia_library.gypi index a4eb0abf30..5757be226c 100644 --- a/skia/skia_library.gypi +++ b/skia/skia_library.gypi @@ -260,7 +260,6 @@ ], },{ # not 'OS == "win"' 'sources!': [ - '../third_party/skia/src/ports/SkFontMgr_win_dw.cpp', '../third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp', '../third_party/skia/src/ports/SkScalerContext_win_dw.cpp', '../third_party/skia/src/ports/SkTypeface_win_dw.cpp', diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn index 1564a97bc5..766b6762c3 100644 --- a/third_party/BUILD.gn +++ b/third_party/BUILD.gn @@ -13,7 +13,7 @@ group("third_party") { } config("pdfium_third_party_config") { - configs = ["..:pdfium_common_config"] + configs = [ "..:pdfium_common_config" ] } source_set("bigint") { @@ -88,6 +88,13 @@ static_library("fx_freetype") { "freetype/src/truetype/truetype.c", "freetype/src/type1/type1.c", ] + if (pdf_use_skia) { + sources += [ + "freetype/src/base/ftfntfmt.c", + "freetype/src/base/ftfstype.c", + "freetype/src/base/fttype1.c", + ] + } } if (!pdf_use_skia) { diff --git a/xfa.gyp b/xfa.gyp index 2066190c98..8d540dcb63 100644 --- a/xfa.gyp +++ b/xfa.gyp @@ -40,7 +40,7 @@ "fxjse/dynprop.cpp", "fxjse/include/cfxjse_arguments.h", "fxjse/include/cfxjse_class.h", - "fxjse/include/cfxjse_value.h" + "fxjse/include/cfxjse_value.h", "fxjse/include/fxjse.h", "fxjse/runtime.cpp", "fxjse/runtime.h", -- cgit v1.2.3