| Index: content/zygote/zygote_main_linux.cc
|
| diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
|
| index c30e1084a92c6eecaf07417f30c3d5464b9b0f8a..37314abed831b35e91101ddc18ea3b2382fe39c4 100644
|
| --- a/content/zygote/zygote_main_linux.cc
|
| +++ b/content/zygote/zygote_main_linux.cc
|
| @@ -46,6 +46,7 @@
|
| #include "sandbox/linux/services/namespace_sandbox.h"
|
| #include "sandbox/linux/services/thread_helpers.h"
|
| #include "sandbox/linux/suid/client/setuid_sandbox_client.h"
|
| +#include "third_party/WebKit/public/web/linux/WebFontRendering.h"
|
| #include "third_party/icu/source/i18n/unicode/timezone.h"
|
| #include "third_party/skia/include/ports/SkFontConfigInterface.h"
|
|
|
| @@ -67,6 +68,8 @@
|
| #include <sanitizer/coverage_interface.h>
|
| #endif
|
|
|
| +#include "third_party/skia/include/ports/SkFontMgr_android.h"
|
| +
|
| namespace content {
|
|
|
| namespace {
|
| @@ -344,8 +347,32 @@ static void ZygotePreSandboxInit() {
|
| #if defined(ENABLE_WEBRTC)
|
| InitializeWebRtcModule();
|
| #endif
|
| +
|
| SkFontConfigInterface::SetGlobal(
|
| new FontConfigIPC(GetSandboxFD()))->unref();
|
| +
|
| + // Set the android SkFontMgr for blink. We need to ensure this is done
|
| + // before the sandbox is initialized to allow the font manager to access
|
| + // font configuration files on disk.
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kAndroidFontsLocation)) {
|
| + std::string android_fonts_dir =
|
| + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| + switches::kAndroidFontsLocation);
|
| +
|
| + if (android_fonts_dir.size() > 0 && android_fonts_dir.back() != '/')
|
| + android_fonts_dir += '/';
|
| + std::string font_config = android_fonts_dir + "fonts.xml";
|
| + SkFontMgr_Android_CustomFonts custom = {
|
| + SkFontMgr_Android_CustomFonts::SystemFontUse::kOnlyCustom,
|
| + android_fonts_dir.c_str(),
|
| + font_config.c_str(),
|
| + nullptr,
|
| + true,
|
| + };
|
| +
|
| + blink::WebFontRendering::setSkiaFontManager(SkFontMgr_New_Android(&custom));
|
| + }
|
| }
|
|
|
| static bool CreateInitProcessReaper(base::Closure* post_fork_parent_callback) {
|
|
|