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; |
} |