Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1724)

Unified Diff: content/common/font_warmup_win.h

Issue 1438603002: Create direct write font proxy classes and unit tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding crash logging Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/font_warmup_win.h
diff --git a/content/common/font_warmup_win.h b/content/common/font_warmup_win.h
index 7a0e9b502c7e8c4c3d5c36d29532c3305d63cf8f..587b731a7b980b555181020d13447ca6466d100e 100644
--- a/content/common/font_warmup_win.h
+++ b/content/common/font_warmup_win.h
@@ -50,6 +50,24 @@ CONTENT_EXPORT void SetPreSandboxWarmupFontMgrForTesting(SkFontMgr* fontmgr);
// Warmup the direct write font manager for content processes.
CONTENT_EXPORT void WarmupDirectWrite();
+// Directwrite connects to the font cache service to retrieve information about
+// fonts installed on the system etc. This works well outside the sandbox and
+// within the sandbox as long as the lpc connection maintained by the current
+// process with the font cache service remains valid. It appears that there
+// are cases when this connection is dropped after which directwrite is unable
+// to connect to the font cache service which causes problems with characters
+// disappearing.
+// Directwrite has fallback code to enumerate fonts if it is unable to connect
+// to the font cache service. We need to intercept the following APIs to
+// ensure that it does not connect to the font cache service.
+// NtALpcConnectPort
+// OpenSCManagerW
+// OpenServiceW
+// StartServiceW
+// CloseServiceHandle.
+// These are all IAT patched.
+CONTENT_EXPORT void PatchServiceManagerCalls();
+
} // namespace content
#endif // CONTENT_COMMON_FONT_WARMUP_WIN_H_

Powered by Google App Engine
This is Rietveld 408576698