| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_COMMON_FONT_LIST_H_ | 5 #ifndef CONTENT_COMMON_FONT_LIST_H_ |
| 6 #define CONTENT_COMMON_FONT_LIST_H_ | 6 #define CONTENT_COMMON_FONT_LIST_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/sequenced_task_runner.h" |
| 11 |
| 10 namespace base { | 12 namespace base { |
| 11 class ListValue; | 13 class ListValue; |
| 12 } | 14 } |
| 13 | 15 |
| 14 namespace content { | 16 namespace content { |
| 15 | 17 |
| 16 // Getting the list of fonts on the system is non-threadsafe on Linux for | 18 // GetFontList_SlowBlocking() must only be called from the SequencedTaskRunner |
| 17 // versions of Pango predating 2013. This sequence token can be used to enforce | 19 // returned by this function because it is non-threadsafe on Linux for versions |
| 18 // serial execution of get font list tasks. | 20 // of Pango predating 2013. |
| 19 extern const char kFontListSequenceToken[]; | 21 scoped_refptr<base::SequencedTaskRunner> GetFontListTaskRunner(); |
| 20 | 22 |
| 21 // Retrieves the fonts available on the current platform and returns them. | 23 // 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 | 24 // 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 | 25 // two strings, the first being the font family, and the second being the |
| 24 // localized name. | 26 // localized name. |
| 25 // | 27 // |
| 26 // This function is potentially slow (the system may do a bunch of I/O) so be | 28 // Can only be called from the SequencedTaskRunner returned by |
| 27 // sure not to call this on a time-critical thread like the UI or I/O threads. | 29 // GetFontListTaskRunner(). Most callers will want to use the GetFontListAsync |
| 28 // | 30 // function in content/browser/font_list_async.h which does an asynchronous |
| 29 // Since getting the fonts is not threadsafe on Linux, use | 31 // call. |
| 30 // |kFontListSequenceToken| to prevent race conditions. | |
| 31 // | |
| 32 // Most callers will want to use the GetFontListAsync function in | |
| 33 // content/browser/font_list_async.h which does an asynchronous call. | |
| 34 std::unique_ptr<base::ListValue> GetFontList_SlowBlocking(); | 32 std::unique_ptr<base::ListValue> GetFontList_SlowBlocking(); |
| 35 | 33 |
| 36 } // namespace content | 34 } // namespace content |
| 37 | 35 |
| 38 #endif // CONTENT_COMMON_FONT_LIST_H_ | 36 #endif // CONTENT_COMMON_FONT_LIST_H_ |
| OLD | NEW |