// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SKY_ENGINE_CORE_CSS_FONTLOADER_H_ #define SKY_ENGINE_CORE_CSS_FONTLOADER_H_ #include "sky/engine/core/fetch/ResourceLoader.h" #include "sky/engine/core/fetch/ResourcePtr.h" #include "sky/engine/platform/Timer.h" #include "sky/engine/platform/heap/Handle.h" #include "sky/engine/wtf/Vector.h" namespace blink { class CSSFontSelector; class FontResource; class FontLoader : public RefCounted { public: static PassRefPtr create(CSSFontSelector* fontSelector, ResourceFetcher* fetcher) { return adoptRef(new FontLoader(fontSelector, fetcher)); } ~FontLoader(); void addFontToBeginLoading(FontResource*); void loadPendingFonts(); void fontFaceInvalidated(); #if !ENABLE(OILPAN) void clearResourceFetcherAndFontSelector(); #endif private: FontLoader(CSSFontSelector*, ResourceFetcher*); void beginLoadTimerFired(Timer*); void clearPendingFonts(); Timer m_beginLoadingTimer; typedef Vector, ResourceLoader::RequestCountTracker> > FontsToLoadVector; FontsToLoadVector m_fontsToBeginLoading; RawPtr m_fontSelector; RawPtr m_resourceFetcher; }; } // namespace blink #endif // SKY_ENGINE_CORE_CSS_FONTLOADER_H_