// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_COMMON_FONT_WARMUP_WIN_H_ #define CONTENT_COMMON_FONT_WARMUP_WIN_H_ #include "base/files/file_path.h" #include "content/common/content_export.h" class SkFontMgr; class SkTypeface; namespace content { // Make necessary calls to cache the data for a given font, used before // sandbox lockdown. CONTENT_EXPORT void DoPreSandboxWarmupForTypeface(SkTypeface* typeface); // Get the shared font manager used during pre-sandbox warmup for DirectWrite // fonts. CONTENT_EXPORT SkFontMgr* GetPreSandboxWarmupFontMgr(); class GdiFontPatchData { public: virtual ~GdiFontPatchData() {} protected: GdiFontPatchData() {} private: DISALLOW_COPY_AND_ASSIGN(GdiFontPatchData); }; // Hook a module's imported GDI font functions to reimplement font enumeration // and font data retrieval for DLLs which can't be easily modified. CONTENT_EXPORT GdiFontPatchData* PatchGdiFontEnumeration( const base::FilePath& path); // Testing method to get the number of in-flight emulated GDI handles. CONTENT_EXPORT size_t GetEmulatedGdiHandleCountForTesting(); // Testing method to reset the table of emulated GDI handles. CONTENT_EXPORT void ResetEmulatedGdiHandlesForTesting(); // Sets the pre-sandbox warmup font manager directly. This should only be used // for testing the implementation. CONTENT_EXPORT void SetPreSandboxWarmupFontMgrForTesting(SkFontMgr* fontmgr); // Warmup the direct write font manager for content processes. CONTENT_EXPORT void WarmupDirectWrite(); } // namespace content #endif // CONTENT_COMMON_FONT_WARMUP_WIN_H_