Roll src/third_party/WebKit 9f7fb92:f103b33 (svn 202621:202622)
[chromium-blink-merge.git] / components / font_service / public / interfaces / font_service.mojom
blob3d53b0007f30616b9eadd31754ebc1fce7ac1aef
1 // Copyright 2014 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.
5 module font_service;
7 enum TypefaceStyle {
8   NORMAL = 0,
9   BOLD = 0x01,
10   ITALIC = 0x02,
11   BOLD_ITALIC = 0x03
14 // A reference to specific font on the font service.
15 struct FontIdentity {
16   uint32 id;
17   int32 ttc_index;
18   // TODO(erg): So the string is supposed to be a path. However, the current
19   // chrome code goes out of its way to send this to the renderer process, and
20   // it is passed to blink, even though the openStream() IPC in chrome uses the
21   // id number instead. Do more investigation about what we need to do to plug
22   // this system path leak.
23   string str_representation;
26 // Loads and resolves fonts.
28 // We still need to load fonts from within a sandboxed process. We set
29 // up a service to match fonts and load them,
30 interface FontService {
31   // Returns the best match for |family_name| and |style|. On error, returns a
32   // null |identity|.
33   MatchFamilyName(string family_name, TypefaceStyle style) =>
34       (FontIdentity? identity, string family_name, TypefaceStyle style);
36   // Returns a handle to the raw font specified by |id_number|.
37   OpenStream(uint32 id_number) => (handle font_handle);