Index: components/font_service/public/interfaces/font_service.mojom |
diff --git a/components/font_service/public/interfaces/font_service.mojom b/components/font_service/public/interfaces/font_service.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3d53b0007f30616b9eadd31754ebc1fce7ac1aef |
--- /dev/null |
+++ b/components/font_service/public/interfaces/font_service.mojom |
@@ -0,0 +1,38 @@ |
+// 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. |
+ |
+module font_service; |
+ |
+enum TypefaceStyle { |
+ NORMAL = 0, |
+ BOLD = 0x01, |
+ ITALIC = 0x02, |
+ BOLD_ITALIC = 0x03 |
+}; |
+ |
+// A reference to specific font on the font service. |
+struct FontIdentity { |
+ uint32 id; |
+ int32 ttc_index; |
+ // TODO(erg): So the string is supposed to be a path. However, the current |
+ // chrome code goes out of its way to send this to the renderer process, and |
+ // it is passed to blink, even though the openStream() IPC in chrome uses the |
+ // id number instead. Do more investigation about what we need to do to plug |
+ // this system path leak. |
+ string str_representation; |
+}; |
+ |
+// Loads and resolves fonts. |
+// |
+// We still need to load fonts from within a sandboxed process. We set |
+// up a service to match fonts and load them, |
+interface FontService { |
+ // Returns the best match for |family_name| and |style|. On error, returns a |
+ // null |identity|. |
+ MatchFamilyName(string family_name, TypefaceStyle style) => |
+ (FontIdentity? identity, string family_name, TypefaceStyle style); |
+ |
+ // Returns a handle to the raw font specified by |id_number|. |
+ OpenStream(uint32 id_number) => (handle font_handle); |
+}; |