OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008, 2011 Apple Inc. All rights reserved. |
3 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 3 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 29 matching lines...) Expand all Loading... |
40 #include "platform/fonts/FontCache.h" | 40 #include "platform/fonts/FontCache.h" |
41 #include "platform/fonts/SimpleFontData.h" | 41 #include "platform/fonts/SimpleFontData.h" |
42 #include "wtf/text/AtomicString.h" | 42 #include "wtf/text/AtomicString.h" |
43 | 43 |
44 using namespace std; | 44 using namespace std; |
45 | 45 |
46 namespace WebCore { | 46 namespace WebCore { |
47 | 47 |
48 CSSFontSelector::CSSFontSelector(Document* document) | 48 CSSFontSelector::CSSFontSelector(Document* document) |
49 : m_document(document) | 49 : m_document(document) |
50 , m_fontLoader(FontLoader::create(document->fetcher())) | 50 , m_fontLoader(FontLoader::create(this, document->fetcher())) |
51 , m_genericFontFamilySettings(document->frame()->settings()->genericFontFami
lySettings()) | 51 , m_genericFontFamilySettings(document->frame()->settings()->genericFontFami
lySettings()) |
52 { | 52 { |
53 // FIXME: An old comment used to say there was no need to hold a reference t
o m_document | 53 // FIXME: An old comment used to say there was no need to hold a reference t
o m_document |
54 // because "we are guaranteed to be destroyed before the document". But ther
e does not | 54 // because "we are guaranteed to be destroyed before the document". But ther
e does not |
55 // seem to be any such guarantee. | 55 // seem to be any such guarantee. |
56 | 56 |
57 ASSERT(m_document); | 57 ASSERT(m_document); |
58 ASSERT(m_document->frame()); | 58 ASSERT(m_document->frame()); |
59 FontCache::fontCache()->addClient(this); | 59 FontCache::fontCache()->addClient(this); |
60 FontFaceSet::from(*document)->addFontFacesToFontFaceCache(&m_fontFaceCache,
this); | 60 FontFaceSet::from(*document)->addFontFacesToFontFaceCache(&m_fontFaceCache,
this); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 { | 153 { |
154 AtomicString family = familyNameFromSettings(m_genericFontFamilySettings, fo
ntDescription, passedFamily); | 154 AtomicString family = familyNameFromSettings(m_genericFontFamilySettings, fo
ntDescription, passedFamily); |
155 if (family.isEmpty()) | 155 if (family.isEmpty()) |
156 family = passedFamily; | 156 family = passedFamily; |
157 return FontCache::fontCache()->isPlatformFontAvailable(fontDescription, fami
ly); | 157 return FontCache::fontCache()->isPlatformFontAvailable(fontDescription, fami
ly); |
158 } | 158 } |
159 | 159 |
160 #if !ENABLE(OILPAN) | 160 #if !ENABLE(OILPAN) |
161 void CSSFontSelector::clearDocument() | 161 void CSSFontSelector::clearDocument() |
162 { | 162 { |
163 m_fontLoader->clearResourceFetcher(); | 163 m_fontLoader->clearResourceFetcherAndFontSelector(); |
164 m_document = nullptr; | 164 m_document = nullptr; |
165 } | 165 } |
166 #endif | 166 #endif |
167 | 167 |
168 void CSSFontSelector::updateGenericFontFamilySettings(Document& document) | 168 void CSSFontSelector::updateGenericFontFamilySettings(Document& document) |
169 { | 169 { |
170 if (!document.settings()) | 170 if (!document.settings()) |
171 return; | 171 return; |
172 m_genericFontFamilySettings = document.settings()->genericFontFamilySettings
(); | 172 m_genericFontFamilySettings = document.settings()->genericFontFamilySettings
(); |
173 // Need to increment FontFaceCache version to update RenderStyles. | 173 // Need to increment FontFaceCache version to update RenderStyles. |
174 m_fontFaceCache.incrementVersion(); | 174 m_fontFaceCache.incrementVersion(); |
175 } | 175 } |
176 | 176 |
177 void CSSFontSelector::trace(Visitor* visitor) | 177 void CSSFontSelector::trace(Visitor* visitor) |
178 { | 178 { |
179 visitor->trace(m_document); | 179 visitor->trace(m_document); |
180 visitor->trace(m_fontFaceCache); | 180 visitor->trace(m_fontFaceCache); |
181 visitor->trace(m_clients); | 181 visitor->trace(m_clients); |
182 visitor->trace(m_fontLoader); | 182 visitor->trace(m_fontLoader); |
183 FontSelector::trace(visitor); | 183 FontSelector::trace(visitor); |
184 } | 184 } |
185 | 185 |
186 } | 186 } |
OLD | NEW |