blob: dd14ce71c6866fda05865c8552f365c9433cecb4 [file] [log] [blame]
[email protected]d259a8e2011-05-18 22:31:091// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_COMMON_FONT_LIST_H_
6#define CONTENT_COMMON_FONT_LIST_H_
7
[email protected]ec810db2012-02-29 19:20:148#include "base/memory/scoped_ptr.h"
9
[email protected]f3a1c642011-07-12 19:15:0310namespace base {
[email protected]d259a8e2011-05-18 22:31:0911class ListValue;
[email protected]f3a1c642011-07-12 19:15:0312}
[email protected]d259a8e2011-05-18 22:31:0913
14namespace content {
15
[email protected]bc96dad52013-04-04 12:01:3516// Getting the list of fonts on the system is non-threadsafe on Linux for
17// versions of Pango predating 2013. This sequence token can be used to enforce
18// serial execution of get font list tasks.
19extern const char kFontListSequenceToken[];
20
[email protected]d259a8e2011-05-18 22:31:0921// Retrieves the fonts available on the current platform and returns them.
22// The caller will own the returned pointer. Each entry will be a list of
23// two strings, the first being the font family, and the second being the
24// localized name.
25//
26// This function is potentially slow (the system may do a bunch of I/O) so be
27// sure not to call this on a time-critical thread like the UI or I/O threads.
28//
[email protected]bc96dad52013-04-04 12:01:3529// Since getting the fonts is not threadsafe on Linux, use
30// |kFontListSequenceToken| to prevent race conditions.
31//
[email protected]d259a8e2011-05-18 22:31:0932// Most callers will want to use the GetFontListAsync function in
33// content/browser/font_list_async.h which does an asynchronous call.
[email protected]ec810db2012-02-29 19:20:1434scoped_ptr<base::ListValue> GetFontList_SlowBlocking();
[email protected]d259a8e2011-05-18 22:31:0935
36} // namespace content
37
38#endif // CONTENT_COMMON_FONT_LIST_H_