Index: content/common/font_config_ipc_linux.h |
diff --git a/content/common/font_config_ipc_linux.h b/content/common/font_config_ipc_linux.h |
index 17082867986949f13ddf03f1d297ca5475f8694b..cbdabbeb1c9493358e70d696aefbc1f05a940989 100644 |
--- a/content/common/font_config_ipc_linux.h |
+++ b/content/common/font_config_ipc_linux.h |
@@ -6,6 +6,8 @@ |
#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" |
@@ -41,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 |