Chromium Code Reviews| Index: content/ppapi_plugin/ppapi_plugin_main.cc |
| diff --git a/content/ppapi_plugin/ppapi_plugin_main.cc b/content/ppapi_plugin/ppapi_plugin_main.cc |
| index 52f87a5e8ece396be9f15a9d8558ed1fa309adb1..c74583bc674b16731394ee9725509ffb5d297a10 100644 |
| --- a/content/ppapi_plugin/ppapi_plugin_main.cc |
| +++ b/content/ppapi_plugin/ppapi_plugin_main.cc |
| @@ -20,6 +20,7 @@ |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/main_function_params.h" |
| #include "content/public/plugin/content_plugin_client.h" |
| +#include "ipc/ipc_sender.h" |
| #include "ppapi/proxy/plugin_globals.h" |
| #include "ppapi/proxy/proxy_module.h" |
| #include "ui/base/ui_base_switches.h" |
| @@ -27,7 +28,9 @@ |
| #if defined(OS_WIN) |
| #include "base/win/win_util.h" |
| #include "base/win/windows_version.h" |
| +#include "content/child/dwrite_font_proxy/dwrite_font_proxy_init_win.h" |
| #include "content/common/font_warmup_win.h" |
| +#include "content/public/common/dwrite_font_platform_win.h" |
| #include "sandbox/win/src/sandbox.h" |
| #include "third_party/WebKit/public/web/win/WebFontRendering.h" |
| #include "third_party/skia/include/ports/SkTypeface_win.h" |
| @@ -63,6 +66,13 @@ void SkiaPreCacheFont(const LOGFONT& logfont) { |
| ppapi::proxy::PluginGlobals::Get()->PreCacheFontForFlash( |
| reinterpret_cast<const void*>(&logfont)); |
| } |
| + |
| +// Helper function so that we can Bind() GetBrowserSender. We can't bind it |
| +// as a member function because PluginGlobals is not ref counted. |
|
fdoray
2015/12/30 01:15:08
You can use base::Bind with a non-refcounted class
Ilya Kulshin
2015/12/30 01:59:46
Done.
|
| +IPC::Sender* GetPluginGlobalsSender() { |
| + return ppapi::proxy::PluginGlobals::Get()->GetBrowserSender(); |
| +} |
| + |
| #endif |
| } // namespace |
| @@ -139,7 +149,10 @@ int PpapiPluginMain(const MainFunctionParams& parameters) { |
| gfx::win::MaybeInitializeDirectWrite(); |
| bool use_direct_write = gfx::win::IsDirectWriteEnabled(); |
| if (use_direct_write) { |
| - WarmupDirectWrite(); |
| + if (content::ShouldUseDirectWriteFontProxyFieldTrial()) |
| + InitializeDWriteFontProxy(base::Bind(&GetPluginGlobalsSender)); |
| + else |
| + WarmupDirectWrite(); |
| } else { |
| SkTypeface_SetEnsureLOGFONTAccessibleProc(SkiaPreCacheFont); |
| } |
| @@ -149,6 +162,11 @@ int PpapiPluginMain(const MainFunctionParams& parameters) { |
| #endif |
| main_message_loop.Run(); |
| + |
| +#if defined(OS_WIN) |
| + if (content::ShouldUseDirectWriteFontProxyFieldTrial()) |
| + UninitializeDWriteFontProxy(); |
| +#endif |
| return 0; |
| } |