diff options
Diffstat (limited to 'chromium/content/common/font_config_ipc_linux.h')
-rw-r--r-- | chromium/content/common/font_config_ipc_linux.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/chromium/content/common/font_config_ipc_linux.h b/chromium/content/common/font_config_ipc_linux.h index c5cf80f7274..cbdabbeb1c9 100644 --- a/chromium/content/common/font_config_ipc_linux.h +++ b/chromium/content/common/font_config_ipc_linux.h @@ -6,10 +6,16 @@ #define CONTENT_COMMON_FONT_CONFIG_IPC_LINUX_H_ #include "base/compiler_specific.h" +#include "base/containers/hash_tables.h" +#include "base/synchronization/lock.h" +#include "third_party/skia/include/core/SkStream.h" +#include "third_party/skia/include/core/SkTypeface.h" #include "third_party/skia/include/ports/SkFontConfigInterface.h" #include <string> +class SkString; + namespace content { // FontConfig implementation for Skia that proxies out of process to get out @@ -25,7 +31,7 @@ class FontConfigIPC : public SkFontConfigInterface { SkString* outFamilyName, SkTypeface::Style* outStyle) override; - SkStream* openStream(const FontIdentity&) override; + SkStreamAsset* openStream(const FontIdentity&) override; enum Method { METHOD_MATCH = 0, @@ -37,7 +43,18 @@ class FontConfigIPC : public SkFontConfigInterface { }; private: + class MappedFontFile; + + // Removes |mapped_font_file| from |mapped_font_files_|. + // Does not delete the passed-in object. + void RemoveMappedFontFile(MappedFontFile* mapped_font_file); + const int fd_; + // Lock preventing multiple threads from opening font file and accessing + // |mapped_font_files_| map at the same time. + base::Lock lock_; + // Maps font identity ID to the memory-mapped file with font data. + base::hash_map<uint32_t, MappedFontFile*> mapped_font_files_; }; } // namespace content |