1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file.
4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "config.h"
6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/css/LocalFontFaceSource.h"
7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
8d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "platform/fonts/FontCache.h"
9d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "platform/fonts/FontDescription.h"
10d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "platform/fonts/SimpleFontData.h"
11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "public/platform/Platform.h"
12d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
15d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)bool LocalFontFaceSource::isLocalFontAvailable(const FontDescription& fontDescription)
16d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles){
175d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    return FontCache::fontCache()->isPlatformFontAvailable(fontDescription, m_fontName);
18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}
19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)PassRefPtr<SimpleFontData> LocalFontFaceSource::createFontData(const FontDescription& fontDescription)
21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles){
22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    // We don't want to check alternate font family names here, so pass true as the checkingAlternateName parameter.
235d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    RefPtr<SimpleFontData> fontData = FontCache::fontCache()->getFontData(fontDescription, m_fontName, true);
24d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    m_histograms.record(fontData);
25d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    return fontData.release();
26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}
27d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)void LocalFontFaceSource::LocalFontHistograms::record(bool loadSuccess)
29d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles){
30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    if (m_reported)
31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)        return;
32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    m_reported = true;
33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    blink::Platform::current()->histogramEnumeration("WebFont.LocalFontUsed", loadSuccess ? 1 : 0, 2);
34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}
35d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
36c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
37