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