OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 Google Inc. All rights reserved. | 2 * Copyright (c) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 15 matching lines...) Expand all Loading... |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #ifndef CrossProcessFontLoading_h | 31 #ifndef CrossProcessFontLoading_h |
32 #define CrossProcessFontLoading_h | 32 #define CrossProcessFontLoading_h |
33 | 33 |
34 #import <wtf/RefCounted.h> | 34 #import <wtf/RefCounted.h> |
35 #import <wtf/RetainPtr.h> | 35 #import <wtf/RetainPtr.h> |
| 36 #import <wtf/text/WTFString.h> |
36 | 37 |
37 typedef struct CGFont* CGFontRef; | 38 typedef struct CGFont* CGFontRef; |
38 typedef UInt32 ATSFontContainerRef; | 39 typedef UInt32 ATSFontContainerRef; |
39 typedef UInt32 ATSFontRef; | 40 typedef UInt32 ATSFontRef; |
40 | 41 |
41 namespace WebCore { | 42 namespace WebCore { |
42 | 43 |
43 // MemoryActivatedFont encapsulates a font loaded from another process and | 44 // MemoryActivatedFont encapsulates a font loaded from another process and |
44 // activated from memory. | 45 // activated from memory. |
45 // | 46 // |
(...skipping 20 matching lines...) Expand all Loading... |
66 // correspond to the same on-disk font file are always the same and don't change | 67 // correspond to the same on-disk font file are always the same and don't change |
67 // with time. | 68 // with time. |
68 // | 69 // |
69 // Flushing caches: | 70 // Flushing caches: |
70 // When the system notifies us of a system font cache flush, all FontDataCache | 71 // When the system notifies us of a system font cache flush, all FontDataCache |
71 // objects are destroyed. This should in turn dereference all | 72 // objects are destroyed. This should in turn dereference all |
72 // MemoryActivatedFonts and thus unload all in-memory fonts. | 73 // MemoryActivatedFonts and thus unload all in-memory fonts. |
73 class MemoryActivatedFont : public RefCounted<MemoryActivatedFont> { | 74 class MemoryActivatedFont : public RefCounted<MemoryActivatedFont> { |
74 public: | 75 public: |
75 // Use to create a new object, see docs on constructor below. | 76 // Use to create a new object, see docs on constructor below. |
76 static PassRefPtr<MemoryActivatedFont> create(ATSFontContainerRef srcFontCon
tainerRef, ATSFontContainerRef container); | 77 static PassRefPtr<MemoryActivatedFont> create(uint32_t fontID, NSFont*, ATSF
ontContainerRef); |
77 ~MemoryActivatedFont(); | 78 ~MemoryActivatedFont(); |
78 | 79 |
79 // Get cached CGFontRef corresponding to the in-memory font. | 80 // Get cached CGFontRef corresponding to the in-memory font. |
80 CGFontRef cgFont() { return m_cgFont.get(); } | 81 CGFontRef cgFont() { return m_cgFont.get(); } |
81 | 82 |
82 // Get cached ATSFontRef corresponding to the in-memory font. | 83 // Get cached ATSFontRef corresponding to the in-memory font. |
83 ATSFontRef atsFontRef() { return m_atsFontRef; } | 84 ATSFontRef atsFontRef() { return m_atsFontRef; } |
84 | 85 |
85 private: | 86 private: |
86 // srcFontRef - ATSFontRef belonging to the NSFont object that failed to | 87 // srcFontRef - ATSFontRef belonging to the NSFont object that failed to |
87 // load in-process. | 88 // load in-process. |
88 // container - a font container corresponding to an identical font that | 89 // container - a font container corresponding to an identical font that |
89 // we loaded cross-process. | 90 // we loaded cross-process. |
90 MemoryActivatedFont(ATSFontContainerRef srcFontContainerRef, ATSFontContaine
rRef container); | 91 MemoryActivatedFont(uint32_t fontID, NSFont*, ATSFontContainerRef); |
91 | 92 |
92 ATSFontContainerRef m_fontContainer; | 93 ATSFontContainerRef m_fontContainer; |
93 WTF::RetainPtr<CGFontRef> m_cgFont; | 94 WTF::RetainPtr<CGFontRef> m_cgFont; |
94 ATSFontRef m_atsFontRef; | 95 ATSFontRef m_atsFontRef; |
95 ATSFontContainerRef m_srcFontContainerRef; | 96 uint32_t m_fontID; |
| 97 WTF::String m_inSandboxHashKey; |
96 }; | 98 }; |
97 | 99 |
98 } // namespace WebCore | 100 } // namespace WebCore |
99 | 101 |
100 #endif // CrossProcessFontLoading_h | 102 #endif // CrossProcessFontLoading_h |
OLD | NEW |