1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<!-- BEGIN AUTHORED CONTENT -->
<p>The Font Settings API allows you to manage Chrome's font settings.</p>
<h2 id="manifest">Manifest</h2>
<p>The Font Settings API is currently experimental, so you must declare the
"experimental" permission to use it. For example:</p>
<pre>{
"name": "My Font Settings Extension",
"description": "Customize your fonts",
"version": "0.2",
"permissions": ["experimental"]
}</pre>
<h2 id="scripts">Generic Font Families and Scripts</h2>
<p>Chrome allows for some font settings to depend on certain generic font
families and language scripts. For example, the font used for sans-serif
Simplified Chinese may be different than the font used for serif Japanese.</p>
<p>The generic font families supported by Chrome are based on
<a href="http://www.w3.org/TR/CSS21/fonts.html#generic-font-families">CSS generic font families</a>
and are listed in the API reference below. When a webpage specifies a generic
font family, Chrome selects the font based on the corresponding setting. If no
generic font family is specified, Chrome uses the setting for the "standard"
generic font family.</p>
<p>When a webpage specifies a language, Chrome selects the font based on the
setting for the corresponding language script. If no language is specified,
Chrome uses the setting for the default, or global, script.</p>
<p>The supported language scripts are based on ISO 15924 script codes and listed
in the API reference below. Technically, Chrome settings are not strictly
per-script but also depend on language. For example, Chrome chooses the font for
Hangul (ISO 15924 script code "Hang") when a webpage specifies Korean language,
and uses this font not just for Hangul script but for everything the font
covers, such as Hanja.</p>
<p>Although ISO 15924 provides script codes like "Japn" for Japanese and "Kore"
for Korean, these codes are newer than "Hrkt" and "Hang" which Chrome continues
to use for compatibility purposes.</p>
<h2 id="examples">Examples</h2>
<p>The following code gets the standard font for Arabic.</p>
<pre>
chrome.experimental.fontSettings.getFontName(
{ genericFamily: 'standard', script: 'Arab' },
function(details) { console.log(details.fontName); }
);
</pre>
<p>The next snippet sets the sans-serif font for Japanese.</p>
<pre>
chrome.experimental.fontSettings.setFontName(
{ genericFamily: 'sansserif', script: 'Hrkt', fontName: 'IPAPGothic' }
);
</pre>
<p>You can find a sample extension using the Font Settings API in the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/fontSettings/">examples/api/fontSettings</a>
directory. For other examples and for help in viewing the source code, see
<a href="samples.html">Samples</a>.</p>
<!-- END AUTHORED CONTENT -->
|