blob: 7a0e9b502c7e8c4c3d5c36d29532c3305d63cf8f [file] [log] [blame]
// 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_