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

Side by Side Diff: Source/core/fetch/FontResource.cpp

Issue 23720005: Move webfont usage metrics reporting to FontResource (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/fetch/FontResource.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Torch Mobile, Inc. 3 * Copyright (C) 2009 Torch Mobile, Inc.
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 12 matching lines...) Expand all
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */ 25 */
26 26
27 #include "config.h" 27 #include "config.h"
28 #include "core/fetch/FontResource.h" 28 #include "core/fetch/FontResource.h"
29 29
30 #include "core/fetch/ResourceClient.h" 30 #include "core/fetch/ResourceClient.h"
31 #include "core/fetch/ResourceClientWalker.h" 31 #include "core/fetch/ResourceClientWalker.h"
32 #include "core/fetch/TextResourceDecoder.h" 32 #include "core/fetch/TextResourceDecoder.h"
33 #include "core/platform/HistogramSupport.h"
33 #include "core/platform/SharedBuffer.h" 34 #include "core/platform/SharedBuffer.h"
34 #include "core/platform/graphics/FontCustomPlatformData.h" 35 #include "core/platform/graphics/FontCustomPlatformData.h"
35 #include "core/platform/graphics/FontPlatformData.h" 36 #include "core/platform/graphics/FontPlatformData.h"
37 #include "wtf/CurrentTime.h"
36 38
37 #if ENABLE(SVG_FONTS) 39 #if ENABLE(SVG_FONTS)
38 #include "SVGNames.h" 40 #include "SVGNames.h"
39 #include "core/dom/NodeList.h" 41 #include "core/dom/NodeList.h"
40 #include "core/svg/SVGDocument.h" 42 #include "core/svg/SVGDocument.h"
41 #include "core/svg/SVGFontElement.h" 43 #include "core/svg/SVGFontElement.h"
42 #endif 44 #endif
43 45
44 namespace WebCore { 46 namespace WebCore {
45 47
(...skipping 24 matching lines...) Expand all
70 72
71 void FontResource::beginLoadIfNeeded(ResourceFetcher* dl) 73 void FontResource::beginLoadIfNeeded(ResourceFetcher* dl)
72 { 74 {
73 if (!m_loadInitiated) { 75 if (!m_loadInitiated) {
74 m_loadInitiated = true; 76 m_loadInitiated = true;
75 Resource::load(dl, m_options); 77 Resource::load(dl, m_options);
76 78
77 ResourceClientWalker<FontResourceClient> walker(m_clients); 79 ResourceClientWalker<FontResourceClient> walker(m_clients);
78 while (FontResourceClient* client = walker.next()) 80 while (FontResourceClient* client = walker.next())
79 client->didStartFontLoad(this); 81 client->didStartFontLoad(this);
82 m_histograms.loadStarted();
80 } 83 }
81 } 84 }
82 85
83 bool FontResource::ensureCustomFontData() 86 bool FontResource::ensureCustomFontData()
84 { 87 {
85 if (!m_fontData && !errorOccurred() && !isLoading() && m_data) { 88 if (!m_fontData && !errorOccurred() && !isLoading() && m_data) {
86 m_fontData = FontCustomPlatformData::create(m_data.get()); 89 m_fontData = FontCustomPlatformData::create(m_data.get());
87 if (!m_fontData) 90 if (!m_fontData)
88 setStatus(DecodeError); 91 setStatus(DecodeError);
89 } 92 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 Resource::allClientsRemoved(); 158 Resource::allClientsRemoved();
156 } 159 }
157 160
158 void FontResource::checkNotify() 161 void FontResource::checkNotify()
159 { 162 {
160 ResourceClientWalker<FontResourceClient> w(m_clients); 163 ResourceClientWalker<FontResourceClient> w(m_clients);
161 while (FontResourceClient* c = w.next()) 164 while (FontResourceClient* c = w.next())
162 c->fontLoaded(this); 165 c->fontLoaded(this);
163 } 166 }
164 167
168 void FontResource::willUseFontData()
169 {
170 if (!isLoaded())
171 m_histograms.willUseFontData();
165 } 172 }
173
174 FontResource::FontResourceHistograms::~FontResourceHistograms()
175 {
176 if (m_styledTime > 0)
177 HistogramSupport::histogramEnumeration("WebFont.Resource.UsageType", Sty ledButNotUsed, UsageTypeMax);
178 }
179
180 void FontResource::FontResourceHistograms::willUseFontData()
181 {
182 if (!m_styledTime)
183 m_styledTime = currentTimeMS();
184 }
185
186 void FontResource::FontResourceHistograms::loadStarted()
187 {
188 if (m_styledTime < 0)
189 return;
190 if (!m_styledTime) {
191 HistogramSupport::histogramEnumeration("WebFont.Resource.UsageType", Not StyledButUsed, UsageTypeMax);
192 } else {
193 int duration = static_cast<int>(currentTimeMS() - m_styledTime);
194 HistogramSupport::histogramCustomCounts("WebFont.Resource.StyleRecalcToD ownloadLatency", duration, 0, 10000, 50);
195 HistogramSupport::histogramEnumeration("WebFont.Resource.UsageType", Sty ledAndUsed, UsageTypeMax);
196 }
197 m_styledTime = -1;
198 }
199
200 }
OLDNEW
« no previous file with comments | « Source/core/fetch/FontResource.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698