[M108 Migration][Text Selection] Selection handles & Caret Selection
[platform/framework/web/chromium-efl.git] / third_party / blink / public / common / context_menu_data / context_menu_mojom_traits.h
1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_CONTEXT_MENU_DATA_CONTEXT_MENU_MOJOM_TRAITS_H_
6 #define THIRD_PARTY_BLINK_PUBLIC_COMMON_CONTEXT_MENU_DATA_CONTEXT_MENU_MOJOM_TRAITS_H_
7
8 #include "build/build_config.h"
9 #include "mojo/public/cpp/bindings/struct_traits.h"
10 #include "third_party/abseil-cpp/absl/types/optional.h"
11 #include "third_party/blink/public/common/common_export.h"
12 #include "third_party/blink/public/common/context_menu_data/untrustworthy_context_menu_params.h"
13 #include "third_party/blink/public/mojom/context_menu/context_menu.mojom.h"
14 #include "url/mojom/url_gurl_mojom_traits.h"
15
16 namespace mojo {
17
18 template <>
19 struct BLINK_COMMON_EXPORT
20     StructTraits<blink::mojom::FormRendererIdDataView, uint64_t> {
21   static uint64_t id(uint64_t r) { return r; }
22
23   static bool Read(blink::mojom::FormRendererIdDataView data, uint64_t* out);
24 };
25
26 template <>
27 struct BLINK_COMMON_EXPORT
28     StructTraits<blink::mojom::FieldRendererIdDataView, uint64_t> {
29   static uint64_t id(uint64_t r) { return r; }
30
31   static bool Read(blink::mojom::FieldRendererIdDataView data, uint64_t* out);
32 };
33
34 template <>
35 struct BLINK_COMMON_EXPORT
36     StructTraits<blink::mojom::UntrustworthyContextMenuParamsDataView,
37                  blink::UntrustworthyContextMenuParams> {
38   static blink::mojom::ContextMenuDataMediaType media_type(
39       const blink::UntrustworthyContextMenuParams& r) {
40     return r.media_type;
41   }
42
43   static int x(const blink::UntrustworthyContextMenuParams& r) { return r.x; }
44
45   static int y(const blink::UntrustworthyContextMenuParams& r) { return r.y; }
46
47   static const GURL& link_url(const blink::UntrustworthyContextMenuParams& r) {
48     return r.link_url;
49   }
50
51   static const std::u16string& link_text(
52       const blink::UntrustworthyContextMenuParams& r) {
53     return r.link_text;
54   }
55
56   static const absl::optional<blink::Impression>& impression(
57       const blink::UntrustworthyContextMenuParams& r) {
58     return r.impression;
59   }
60
61   static const GURL& unfiltered_link_url(
62       const blink::UntrustworthyContextMenuParams& r) {
63     return r.unfiltered_link_url;
64   }
65
66   static const GURL& src_url(const blink::UntrustworthyContextMenuParams& r) {
67     return r.src_url;
68   }
69
70   static bool has_image_contents(
71       const blink::UntrustworthyContextMenuParams& r) {
72     return r.has_image_contents;
73   }
74
75   static int media_flags(const blink::UntrustworthyContextMenuParams& r) {
76     return r.media_flags;
77   }
78
79   static const std::u16string& selection_text(
80       const blink::UntrustworthyContextMenuParams& r) {
81     return r.selection_text;
82   }
83
84   static const std::u16string& title_text(
85       const blink::UntrustworthyContextMenuParams& r) {
86     return r.title_text;
87   }
88
89   static const std::u16string& alt_text(
90       const blink::UntrustworthyContextMenuParams& r) {
91     return r.alt_text;
92   }
93
94   static const std::u16string& suggested_filename(
95       const blink::UntrustworthyContextMenuParams& r) {
96     return r.suggested_filename;
97   }
98
99   static const std::u16string& misspelled_word(
100       const blink::UntrustworthyContextMenuParams& r) {
101     return r.misspelled_word;
102   }
103
104   static const std::vector<std::u16string>& dictionary_suggestions(
105       const blink::UntrustworthyContextMenuParams& r) {
106     return r.dictionary_suggestions;
107   }
108
109   static bool spellcheck_enabled(
110       const blink::UntrustworthyContextMenuParams& r) {
111     return r.spellcheck_enabled;
112   }
113
114   static bool is_editable(const blink::UntrustworthyContextMenuParams& r) {
115     return r.is_editable;
116   }
117
118 #if BUILDFLAG(IS_EFL)
119   static bool is_text_node(const blink::UntrustworthyContextMenuParams& r) {
120     return r.is_text_node;
121   }
122 #endif
123
124   static int writing_direction_default(
125       const blink::UntrustworthyContextMenuParams& r) {
126     return r.writing_direction_default;
127   }
128
129   static int writing_direction_left_to_right(
130       const blink::UntrustworthyContextMenuParams& r) {
131     return r.writing_direction_left_to_right;
132   }
133
134   static int writing_direction_right_to_left(
135       const blink::UntrustworthyContextMenuParams& r) {
136     return r.writing_direction_right_to_left;
137   }
138
139   static int edit_flags(const blink::UntrustworthyContextMenuParams& r) {
140     return r.edit_flags;
141   }
142
143   static const std::string& frame_charset(
144       const blink::UntrustworthyContextMenuParams& r) {
145     return r.frame_charset;
146   }
147
148   static network::mojom::ReferrerPolicy referrer_policy(
149       const blink::UntrustworthyContextMenuParams& r) {
150     return r.referrer_policy;
151   }
152
153   static const GURL& link_followed(
154       const blink::UntrustworthyContextMenuParams& r) {
155     return r.link_followed;
156   }
157
158   static const std::vector<blink::mojom::CustomContextMenuItemPtr>&
159   custom_items(const blink::UntrustworthyContextMenuParams& r) {
160     return r.custom_items;
161   }
162
163   static ui::MenuSourceType source_type(
164       const blink::UntrustworthyContextMenuParams& r) {
165     return r.source_type;
166   }
167
168   static blink::mojom::ContextMenuDataInputFieldType input_field_type(
169       const blink::UntrustworthyContextMenuParams& r) {
170     return r.input_field_type;
171   }
172
173   static const gfx::Rect& selection_rect(
174       const blink::UntrustworthyContextMenuParams& r) {
175     return r.selection_rect;
176   }
177
178   static int selection_start_offset(
179       const blink::UntrustworthyContextMenuParams& r) {
180     return r.selection_start_offset;
181   }
182
183   static bool opened_from_highlight(
184       const blink::UntrustworthyContextMenuParams& r) {
185     return r.opened_from_highlight;
186   }
187
188   static const absl::optional<uint64_t>& form_renderer_id(
189       const blink::UntrustworthyContextMenuParams& r) {
190     return r.form_renderer_id;
191   }
192
193   static const absl::optional<uint64_t>& field_renderer_id(
194       const blink::UntrustworthyContextMenuParams& r) {
195     return r.field_renderer_id;
196   }
197
198   static bool Read(blink::mojom::UntrustworthyContextMenuParamsDataView r,
199                    blink::UntrustworthyContextMenuParams* out);
200 };
201
202 }  // namespace mojo
203
204 #endif  // THIRD_PARTY_BLINK_PUBLIC_COMMON_CONTEXT_MENU_DATA_CONTEXT_MENU_MOJOM_TRAITS_H_