summaryrefslogtreecommitdiff
path: root/chromium/ui/base/mojom/attributed_string.mojom
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/base/mojom/attributed_string.mojom')
-rw-r--r--chromium/ui/base/mojom/attributed_string.mojom32
1 files changed, 32 insertions, 0 deletions
diff --git a/chromium/ui/base/mojom/attributed_string.mojom b/chromium/ui/base/mojom/attributed_string.mojom
new file mode 100644
index 00000000000..18969f51079
--- /dev/null
+++ b/chromium/ui/base/mojom/attributed_string.mojom
@@ -0,0 +1,32 @@
+// Copyright 2020 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 ui.mojom;
+
+import "mojo/public/mojom/base/string16.mojom";
+import "ui/gfx/range/mojom/range.mojom";
+
+// This will serialize the font information of an NSAttributedString so that
+// it can be sent over mojo. This only stores the information of the
+// NSFontAttributeName. The motive is that of security: using NSArchiver and
+// friends to send objects from the renderer to the browser could lead to
+// deserialization of arbitrary objects. This restricts serialization to a
+// specific object class and specific attributes of that object.
+
+// A C++ mojo-friendly representation of the NSFontAttributeName attribute
+// set.
+struct FontAttribute {
+ mojo_base.mojom.String16 font_name;
+ float font_point_size;
+ gfx.mojom.Range effective_range;
+};
+
+// A struct that contains the pertinent information from an NSAttributedString,
+// which can be serialized over mojo.
+struct AttributedString {
+ // The plain-text string.
+ mojo_base.mojom.String16 string;
+ // The set of attributes that style |string|.
+ array<FontAttribute> attributes;
+};