Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: Source/WebCore/platform/graphics/chromium/CrossProcessFontLoading.h

Issue 7618010: Merge 92269 - [Chromium] Fix OOP font loading to work on 10.6.6 and above. (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/835/
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698