| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/html/canvas/CanvasFontCache.h" | 5 #include "core/html/canvas/CanvasFontCache.h" |
| 6 | 6 |
| 7 #include "core/css/parser/CSSParser.h" | 7 #include "core/css/parser/CSSParser.h" |
| 8 #include "core/css/resolver/StyleResolver.h" | 8 #include "core/css/resolver/StyleResolver.h" |
| 9 #include "core/dom/Document.h" | 9 #include "core/dom/Document.h" |
| 10 #include "core/style/ComputedStyle.h" | 10 #include "core/style/ComputedStyle.h" |
| 11 #include "platform/fonts/FontCache.h" | 11 #include "platform/fonts/FontCache.h" |
| 12 #include "public/platform/Platform.h" | 12 #include "public/platform/Platform.h" |
| 13 #include "wtf/PtrUtil.h" |
| 13 | 14 |
| 14 namespace { | 15 namespace { |
| 15 | 16 |
| 16 const unsigned CanvasFontCacheMaxFonts = 50; | 17 const unsigned CanvasFontCacheMaxFonts = 50; |
| 17 const unsigned CanvasFontCacheHardMaxFonts = 250; | 18 const unsigned CanvasFontCacheHardMaxFonts = 250; |
| 18 const unsigned CanvasFontCacheHiddenMaxFonts = 1; | 19 const unsigned CanvasFontCacheHiddenMaxFonts = 1; |
| 19 const int defaultFontSize = 10; | 20 const int defaultFontSize = 10; |
| 20 const char defaultFontFamily[] = "sans-serif"; | 21 const char defaultFontFamily[] = "sans-serif"; |
| 21 | 22 |
| 22 } | 23 } |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 m_mainCachePurgePreventer.reset(); | 128 m_mainCachePurgePreventer.reset(); |
| 128 Platform::current()->currentThread()->removeTaskObserver(this); | 129 Platform::current()->currentThread()->removeTaskObserver(this); |
| 129 m_pruningScheduled = false; | 130 m_pruningScheduled = false; |
| 130 } | 131 } |
| 131 | 132 |
| 132 void CanvasFontCache::schedulePruningIfNeeded() | 133 void CanvasFontCache::schedulePruningIfNeeded() |
| 133 { | 134 { |
| 134 if (m_pruningScheduled) | 135 if (m_pruningScheduled) |
| 135 return; | 136 return; |
| 136 ASSERT(!m_mainCachePurgePreventer); | 137 ASSERT(!m_mainCachePurgePreventer); |
| 137 m_mainCachePurgePreventer = adoptPtr(new FontCachePurgePreventer); | 138 m_mainCachePurgePreventer = wrapUnique(new FontCachePurgePreventer); |
| 138 Platform::current()->currentThread()->addTaskObserver(this); | 139 Platform::current()->currentThread()->addTaskObserver(this); |
| 139 m_pruningScheduled = true; | 140 m_pruningScheduled = true; |
| 140 } | 141 } |
| 141 | 142 |
| 142 bool CanvasFontCache::isInCache(const String& fontString) | 143 bool CanvasFontCache::isInCache(const String& fontString) |
| 143 { | 144 { |
| 144 return m_fetchedFonts.find(fontString) != m_fetchedFonts.end(); | 145 return m_fetchedFonts.find(fontString) != m_fetchedFonts.end(); |
| 145 } | 146 } |
| 146 | 147 |
| 147 void CanvasFontCache::pruneAll() | 148 void CanvasFontCache::pruneAll() |
| 148 { | 149 { |
| 149 m_fetchedFonts.clear(); | 150 m_fetchedFonts.clear(); |
| 150 m_fontLRUList.clear(); | 151 m_fontLRUList.clear(); |
| 151 m_fontsResolvedUsingDefaultStyle.clear(); | 152 m_fontsResolvedUsingDefaultStyle.clear(); |
| 152 } | 153 } |
| 153 | 154 |
| 154 DEFINE_TRACE(CanvasFontCache) | 155 DEFINE_TRACE(CanvasFontCache) |
| 155 { | 156 { |
| 156 visitor->trace(m_fetchedFonts); | 157 visitor->trace(m_fetchedFonts); |
| 157 visitor->trace(m_document); | 158 visitor->trace(m_document); |
| 158 } | 159 } |
| 159 | 160 |
| 160 } // namespace blink | 161 } // namespace blink |
| OLD | NEW |