Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 : /* This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : /* a list of all Servo binding functions */
8 :
9 : /* This file contains the list of all Servo binding functions. Each
10 : * entry is defined as a SERVO_BINDING_FUNC macro with the following
11 : * parameters:
12 : * - 'name_' the name of the binding function
13 : * - 'return_' the return type of the binding function
14 : * and the parameter list of the function.
15 : *
16 : * Users of this list should define a macro
17 : * SERVO_BINDING_FUNC(name_, return_, ...)
18 : * before including this file.
19 : */
20 :
21 : // Element data
22 0 : SERVO_BINDING_FUNC(Servo_Element_ClearData, void, RawGeckoElementBorrowed node)
23 :
24 : // Styleset and Stylesheet management
25 0 : SERVO_BINDING_FUNC(Servo_StyleSheet_FromUTF8Bytes, RawServoStyleSheetContentsStrong,
26 : mozilla::css::Loader* loader,
27 : mozilla::ServoStyleSheet* gecko_stylesheet,
28 : const nsACString* data,
29 : mozilla::css::SheetParsingMode parsing_mode,
30 : RawGeckoURLExtraData* extra_data,
31 : uint32_t line_number_offset,
32 : nsCompatibility quirks_mode)
33 0 : SERVO_BINDING_FUNC(Servo_StyleSheet_Empty, RawServoStyleSheetContentsStrong,
34 : mozilla::css::SheetParsingMode parsing_mode)
35 0 : SERVO_BINDING_FUNC(Servo_StyleSheet_HasRules, bool,
36 : RawServoStyleSheetContentsBorrowed sheet)
37 0 : SERVO_BINDING_FUNC(Servo_StyleSheet_GetRules, ServoCssRulesStrong,
38 : RawServoStyleSheetContentsBorrowed sheet)
39 0 : SERVO_BINDING_FUNC(Servo_StyleSheet_Clone, RawServoStyleSheetContentsStrong,
40 : RawServoStyleSheetContentsBorrowed sheet,
41 : const mozilla::ServoStyleSheet* reference_sheet);
42 0 : SERVO_BINDING_FUNC(Servo_StyleSheet_SizeOfIncludingThis, size_t,
43 : mozilla::MallocSizeOf malloc_size_of,
44 : RawServoStyleSheetContentsBorrowed sheet)
45 0 : SERVO_BINDING_FUNC(Servo_StyleSet_Init, RawServoStyleSetOwned, RawGeckoPresContextOwned pres_context)
46 0 : SERVO_BINDING_FUNC(Servo_StyleSet_Clear, void,
47 : RawServoStyleSetBorrowed set)
48 0 : SERVO_BINDING_FUNC(Servo_StyleSet_RebuildData, void,
49 : RawServoStyleSetBorrowed set)
50 0 : SERVO_BINDING_FUNC(Servo_StyleSet_MediumFeaturesChanged, bool,
51 : RawServoStyleSetBorrowed set)
52 0 : SERVO_BINDING_FUNC(Servo_StyleSet_Drop, void, RawServoStyleSetOwned set)
53 0 : SERVO_BINDING_FUNC(Servo_StyleSet_CompatModeChanged, void,
54 : RawServoStyleSetBorrowed raw_data)
55 0 : SERVO_BINDING_FUNC(Servo_StyleSet_AppendStyleSheet, void,
56 : RawServoStyleSetBorrowed set,
57 : const mozilla::ServoStyleSheet* gecko_sheet)
58 0 : SERVO_BINDING_FUNC(Servo_StyleSet_PrependStyleSheet, void,
59 : RawServoStyleSetBorrowed set,
60 : const mozilla::ServoStyleSheet* gecko_sheet)
61 0 : SERVO_BINDING_FUNC(Servo_StyleSet_RemoveStyleSheet, void,
62 : RawServoStyleSetBorrowed set,
63 : const mozilla::ServoStyleSheet* gecko_sheet)
64 0 : SERVO_BINDING_FUNC(Servo_StyleSet_InsertStyleSheetBefore, void,
65 : RawServoStyleSetBorrowed set,
66 : const mozilla::ServoStyleSheet* gecko_sheet,
67 : const mozilla::ServoStyleSheet* before)
68 0 : SERVO_BINDING_FUNC(Servo_StyleSet_FlushStyleSheets, void, RawServoStyleSetBorrowed set,
69 : RawGeckoElementBorrowedOrNull doc_elem)
70 0 : SERVO_BINDING_FUNC(Servo_StyleSet_NoteStyleSheetsChanged, void,
71 : RawServoStyleSetBorrowed set, bool author_style_disabled)
72 0 : SERVO_BINDING_FUNC(Servo_StyleSet_GetKeyframesForName, bool,
73 : RawServoStyleSetBorrowed set,
74 : const nsACString* property,
75 : nsTimingFunctionBorrowed timing_function,
76 : RawGeckoKeyframeListBorrowedMut keyframe_list)
77 0 : SERVO_BINDING_FUNC(Servo_StyleSet_GetFontFaceRules, void,
78 : RawServoStyleSetBorrowed set,
79 : RawGeckoFontFaceRuleListBorrowedMut list)
80 0 : SERVO_BINDING_FUNC(Servo_StyleSet_GetCounterStyleRule, nsCSSCounterStyleRule*,
81 : RawServoStyleSetBorrowed set, nsIAtom* name)
82 0 : SERVO_BINDING_FUNC(Servo_StyleSet_ResolveForDeclarations,
83 : ServoComputedValuesStrong,
84 : RawServoStyleSetBorrowed set,
85 : ServoComputedValuesBorrowedOrNull parent_style,
86 : RawServoDeclarationBlockBorrowed declarations)
87 0 : SERVO_BINDING_FUNC(Servo_StyleSet_MightHaveAttributeDependency, bool,
88 : RawServoStyleSetBorrowed set,
89 : RawGeckoElementBorrowed element,
90 : nsIAtom* local_name)
91 0 : SERVO_BINDING_FUNC(Servo_StyleSet_HasStateDependency, bool,
92 : RawServoStyleSetBorrowed set,
93 : RawGeckoElementBorrowed element,
94 : uint64_t state)
95 :
96 : // CSSRuleList
97 0 : SERVO_BINDING_FUNC(Servo_CssRules_ListTypes, void,
98 : ServoCssRulesBorrowed rules,
99 : nsTArrayBorrowed_uintptr_t result)
100 0 : SERVO_BINDING_FUNC(Servo_CssRules_InsertRule, nsresult,
101 : ServoCssRulesBorrowed rules,
102 : RawServoStyleSheetContentsBorrowed sheet,
103 : const nsACString* rule,
104 : uint32_t index,
105 : bool nested,
106 : mozilla::css::Loader* loader,
107 : mozilla::ServoStyleSheet* gecko_stylesheet,
108 : uint16_t* rule_type)
109 0 : SERVO_BINDING_FUNC(Servo_CssRules_DeleteRule, nsresult,
110 : ServoCssRulesBorrowed rules, uint32_t index)
111 :
112 : // CSS Rules
113 : #define BASIC_RULE_FUNCS_WITHOUT_GETTER(type_) \
114 : SERVO_BINDING_FUNC(Servo_##type_##_Debug, void, \
115 : RawServo##type_##Borrowed rule, nsACString* result) \
116 : SERVO_BINDING_FUNC(Servo_##type_##_GetCssText, void, \
117 : RawServo##type_##Borrowed rule, nsAString* result)
118 : #define BASIC_RULE_FUNCS(type_) \
119 : SERVO_BINDING_FUNC(Servo_CssRules_Get##type_##RuleAt, \
120 : RawServo##type_##RuleStrong, \
121 : ServoCssRulesBorrowed rules, uint32_t index, \
122 : uint32_t* line, uint32_t* column) \
123 : BASIC_RULE_FUNCS_WITHOUT_GETTER(type_##Rule)
124 : #define GROUP_RULE_FUNCS(type_) \
125 : BASIC_RULE_FUNCS(type_) \
126 : SERVO_BINDING_FUNC(Servo_##type_##Rule_GetRules, ServoCssRulesStrong, \
127 : RawServo##type_##RuleBorrowed rule)
128 0 : BASIC_RULE_FUNCS(Style)
129 0 : BASIC_RULE_FUNCS(Import)
130 0 : BASIC_RULE_FUNCS_WITHOUT_GETTER(Keyframe)
131 0 : BASIC_RULE_FUNCS(Keyframes)
132 0 : GROUP_RULE_FUNCS(Media)
133 0 : BASIC_RULE_FUNCS(Namespace)
134 0 : BASIC_RULE_FUNCS(Page)
135 0 : GROUP_RULE_FUNCS(Supports)
136 0 : GROUP_RULE_FUNCS(Document)
137 : #undef GROUP_RULE_FUNCS
138 : #undef BASIC_RULE_FUNCS
139 : #undef BASIC_RULE_FUNCS_WITHOUT_GETTER
140 0 : SERVO_BINDING_FUNC(Servo_CssRules_GetFontFaceRuleAt, nsCSSFontFaceRule*,
141 : ServoCssRulesBorrowed rules, uint32_t index)
142 0 : SERVO_BINDING_FUNC(Servo_CssRules_GetCounterStyleRuleAt, nsCSSCounterStyleRule*,
143 : ServoCssRulesBorrowed rules, uint32_t index)
144 0 : SERVO_BINDING_FUNC(Servo_StyleRule_GetStyle, RawServoDeclarationBlockStrong,
145 : RawServoStyleRuleBorrowed rule)
146 0 : SERVO_BINDING_FUNC(Servo_StyleRule_SetStyle, void,
147 : RawServoStyleRuleBorrowed rule,
148 : RawServoDeclarationBlockBorrowed declarations)
149 0 : SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorText, void,
150 : RawServoStyleRuleBorrowed rule, nsAString* result)
151 0 : SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorTextAtIndex, void,
152 : RawServoStyleRuleBorrowed rule, uint32_t index,
153 : nsAString* result)
154 0 : SERVO_BINDING_FUNC(Servo_StyleRule_GetSpecificityAtIndex, void,
155 : RawServoStyleRuleBorrowed rule, uint32_t index,
156 : uint64_t* specificity)
157 0 : SERVO_BINDING_FUNC(Servo_StyleRule_GetSelectorCount, void,
158 : RawServoStyleRuleBorrowed rule, uint32_t* count)
159 0 : SERVO_BINDING_FUNC(Servo_StyleRule_SelectorMatchesElement, bool,
160 : RawServoStyleRuleBorrowed, RawGeckoElementBorrowed,
161 : uint32_t index, mozilla::CSSPseudoElementType pseudo_type)
162 0 : SERVO_BINDING_FUNC(Servo_ImportRule_GetHref, void,
163 : RawServoImportRuleBorrowed rule, nsAString* result)
164 0 : SERVO_BINDING_FUNC(Servo_ImportRule_GetSheet,
165 : const mozilla::ServoStyleSheet*,
166 : RawServoImportRuleBorrowed rule)
167 0 : SERVO_BINDING_FUNC(Servo_Keyframe_GetKeyText, void,
168 : RawServoKeyframeBorrowed keyframe, nsAString* result)
169 : // Returns whether it successfully changes the key text.
170 0 : SERVO_BINDING_FUNC(Servo_Keyframe_SetKeyText, bool,
171 : RawServoKeyframeBorrowed keyframe, const nsACString* text)
172 0 : SERVO_BINDING_FUNC(Servo_Keyframe_GetStyle, RawServoDeclarationBlockStrong,
173 : RawServoKeyframeBorrowed keyframe)
174 0 : SERVO_BINDING_FUNC(Servo_Keyframe_SetStyle, void,
175 : RawServoKeyframeBorrowed keyframe,
176 : RawServoDeclarationBlockBorrowed declarations)
177 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_GetName, nsIAtom*,
178 : RawServoKeyframesRuleBorrowed rule)
179 : // This method takes an addrefed nsIAtom.
180 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_SetName, void,
181 : RawServoKeyframesRuleBorrowed rule, nsIAtom* name)
182 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_GetCount, uint32_t,
183 : RawServoKeyframesRuleBorrowed rule)
184 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_GetKeyframe, RawServoKeyframeStrong,
185 : RawServoKeyframesRuleBorrowed rule, uint32_t index)
186 : // Returns the index of the rule, max value of uint32_t if nothing found.
187 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_FindRule, uint32_t,
188 : RawServoKeyframesRuleBorrowed rule, const nsACString* key)
189 : // Returns whether it successfully appends the rule.
190 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_AppendRule, bool,
191 : RawServoKeyframesRuleBorrowed rule,
192 : RawServoStyleSheetContentsBorrowed sheet,
193 : const nsACString* css)
194 0 : SERVO_BINDING_FUNC(Servo_KeyframesRule_DeleteRule, void,
195 : RawServoKeyframesRuleBorrowed rule, uint32_t index)
196 0 : SERVO_BINDING_FUNC(Servo_MediaRule_GetMedia, RawServoMediaListStrong,
197 : RawServoMediaRuleBorrowed rule)
198 0 : SERVO_BINDING_FUNC(Servo_NamespaceRule_GetPrefix, nsIAtom*,
199 : RawServoNamespaceRuleBorrowed rule)
200 0 : SERVO_BINDING_FUNC(Servo_NamespaceRule_GetURI, nsIAtom*,
201 : RawServoNamespaceRuleBorrowed rule)
202 0 : SERVO_BINDING_FUNC(Servo_PageRule_GetStyle, RawServoDeclarationBlockStrong,
203 : RawServoPageRuleBorrowed rule)
204 0 : SERVO_BINDING_FUNC(Servo_PageRule_SetStyle, void,
205 : RawServoPageRuleBorrowed rule,
206 : RawServoDeclarationBlockBorrowed declarations)
207 0 : SERVO_BINDING_FUNC(Servo_SupportsRule_GetConditionText, void,
208 : RawServoSupportsRuleBorrowed rule, nsAString* result)
209 0 : SERVO_BINDING_FUNC(Servo_DocumentRule_GetConditionText, void,
210 : RawServoDocumentRuleBorrowed rule, nsAString* result)
211 :
212 : // Animations API
213 0 : SERVO_BINDING_FUNC(Servo_ParseProperty,
214 : RawServoDeclarationBlockStrong,
215 : nsCSSPropertyID property, const nsACString* value,
216 : RawGeckoURLExtraData* data,
217 : mozilla::ParsingMode parsing_mode,
218 : nsCompatibility quirks_mode,
219 : mozilla::css::Loader* loader)
220 0 : SERVO_BINDING_FUNC(Servo_ParseEasing, bool,
221 : const nsAString* easing,
222 : RawGeckoURLExtraData* data,
223 : nsTimingFunctionBorrowedMut output)
224 0 : SERVO_BINDING_FUNC(Servo_GetComputedKeyframeValues, void,
225 : RawGeckoKeyframeListBorrowed keyframes,
226 : RawGeckoElementBorrowed element,
227 : ServoComputedValuesBorrowed style,
228 : RawServoStyleSetBorrowed set,
229 : RawGeckoComputedKeyframeValuesListBorrowedMut result)
230 0 : SERVO_BINDING_FUNC(Servo_ComputedValues_ExtractAnimationValue,
231 : RawServoAnimationValueStrong,
232 : ServoComputedValuesBorrowed computed_values,
233 : nsCSSPropertyID property)
234 0 : SERVO_BINDING_FUNC(Servo_ComputedValues_SpecifiesAnimationsOrTransitions, bool,
235 : ServoComputedValuesBorrowed computed_values)
236 0 : SERVO_BINDING_FUNC(Servo_Property_IsAnimatable, bool,
237 : nsCSSPropertyID property)
238 0 : SERVO_BINDING_FUNC(Servo_Property_IsTransitionable, bool,
239 : nsCSSPropertyID property)
240 0 : SERVO_BINDING_FUNC(Servo_Property_IsDiscreteAnimatable, bool,
241 : nsCSSPropertyID property)
242 0 : SERVO_BINDING_FUNC(Servo_GetProperties_Overriding_Animation, void,
243 : RawGeckoElementBorrowed,
244 : RawGeckoCSSPropertyIDListBorrowed,
245 : nsCSSPropertyIDSetBorrowedMut)
246 0 : SERVO_BINDING_FUNC(Servo_MatrixTransform_Operate, void,
247 : nsStyleTransformMatrix::MatrixTransformOperator
248 : matrix_operator,
249 : const RawGeckoGfxMatrix4x4* from,
250 : const RawGeckoGfxMatrix4x4* to,
251 : double progress,
252 : RawGeckoGfxMatrix4x4* result)
253 0 : SERVO_BINDING_FUNC(Servo_GetAnimationValues, void,
254 : RawServoDeclarationBlockBorrowed declarations,
255 : RawGeckoElementBorrowed element,
256 : ServoComputedValuesBorrowed style,
257 : RawServoStyleSetBorrowed style_set,
258 : RawGeckoServoAnimationValueListBorrowedMut animation_values)
259 :
260 : // AnimationValues handling
261 0 : SERVO_BINDING_FUNC(Servo_AnimationValues_Interpolate,
262 : RawServoAnimationValueStrong,
263 : RawServoAnimationValueBorrowed from,
264 : RawServoAnimationValueBorrowed to,
265 : double progress)
266 0 : SERVO_BINDING_FUNC(Servo_AnimationValues_IsInterpolable, bool,
267 : RawServoAnimationValueBorrowed from,
268 : RawServoAnimationValueBorrowed to)
269 0 : SERVO_BINDING_FUNC(Servo_AnimationValues_Add,
270 : RawServoAnimationValueStrong,
271 : RawServoAnimationValueBorrowed a,
272 : RawServoAnimationValueBorrowed b)
273 0 : SERVO_BINDING_FUNC(Servo_AnimationValues_Accumulate,
274 : RawServoAnimationValueStrong,
275 : RawServoAnimationValueBorrowed a,
276 : RawServoAnimationValueBorrowed b,
277 : uint64_t count)
278 0 : SERVO_BINDING_FUNC(Servo_AnimationValues_GetZeroValue,
279 : RawServoAnimationValueStrong,
280 : RawServoAnimationValueBorrowed value_to_match)
281 0 : SERVO_BINDING_FUNC(Servo_AnimationValues_ComputeDistance, double,
282 : RawServoAnimationValueBorrowed from,
283 : RawServoAnimationValueBorrowed to)
284 0 : SERVO_BINDING_FUNC(Servo_AnimationValue_Serialize, void,
285 : RawServoAnimationValueBorrowed value,
286 : nsCSSPropertyID property,
287 : nsAString* buffer)
288 0 : SERVO_BINDING_FUNC(Servo_Shorthand_AnimationValues_Serialize, void,
289 : nsCSSPropertyID shorthand_property,
290 : RawGeckoServoAnimationValueListBorrowed values,
291 : nsAString* buffer)
292 0 : SERVO_BINDING_FUNC(Servo_AnimationValue_GetOpacity, float,
293 : RawServoAnimationValueBorrowed value)
294 0 : SERVO_BINDING_FUNC(Servo_AnimationValue_GetTransform, void,
295 : RawServoAnimationValueBorrowed value,
296 : RefPtr<nsCSSValueSharedList>* list)
297 0 : SERVO_BINDING_FUNC(Servo_AnimationValue_DeepEqual, bool,
298 : RawServoAnimationValueBorrowed,
299 : RawServoAnimationValueBorrowed)
300 0 : SERVO_BINDING_FUNC(Servo_AnimationValue_Uncompute,
301 : RawServoDeclarationBlockStrong,
302 : RawServoAnimationValueBorrowed value)
303 0 : SERVO_BINDING_FUNC(Servo_AnimationValue_Compute,
304 : RawServoAnimationValueStrong,
305 : RawGeckoElementBorrowed element,
306 : RawServoDeclarationBlockBorrowed declarations,
307 : ServoComputedValuesBorrowed style,
308 : RawServoStyleSetBorrowed raw_data)
309 :
310 : // Style attribute
311 0 : SERVO_BINDING_FUNC(Servo_ParseStyleAttribute, RawServoDeclarationBlockStrong,
312 : const nsACString* data,
313 : RawGeckoURLExtraData* extra_data,
314 : nsCompatibility quirks_mode,
315 : mozilla::css::Loader* loader)
316 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_CreateEmpty,
317 : RawServoDeclarationBlockStrong)
318 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_Clone, RawServoDeclarationBlockStrong,
319 : RawServoDeclarationBlockBorrowed declarations)
320 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_Equals, bool,
321 : RawServoDeclarationBlockBorrowed a,
322 : RawServoDeclarationBlockBorrowed b)
323 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetCssText, void,
324 : RawServoDeclarationBlockBorrowed declarations,
325 : nsAString* result)
326 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SerializeOneValue, void,
327 : RawServoDeclarationBlockBorrowed declarations,
328 : nsCSSPropertyID property, nsAString* buffer)
329 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_Count, uint32_t,
330 : RawServoDeclarationBlockBorrowed declarations)
331 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetNthProperty, bool,
332 : RawServoDeclarationBlockBorrowed declarations,
333 : uint32_t index, nsAString* result)
334 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetPropertyValue, void,
335 : RawServoDeclarationBlockBorrowed declarations,
336 : const nsACString* property, nsAString* value)
337 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetPropertyValueById, void,
338 : RawServoDeclarationBlockBorrowed declarations,
339 : nsCSSPropertyID property, nsAString* value)
340 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_GetPropertyIsImportant, bool,
341 : RawServoDeclarationBlockBorrowed declarations,
342 : const nsACString* property)
343 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetProperty, bool,
344 : RawServoDeclarationBlockBorrowed declarations,
345 : const nsACString* property,
346 : const nsACString* value, bool is_important,
347 : RawGeckoURLExtraData* data,
348 : mozilla::ParsingMode parsing_mode,
349 : nsCompatibility quirks_mode,
350 : mozilla::css::Loader* loader)
351 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPropertyById, bool,
352 : RawServoDeclarationBlockBorrowed declarations,
353 : nsCSSPropertyID property,
354 : const nsACString* value, bool is_important,
355 : RawGeckoURLExtraData* data,
356 : mozilla::ParsingMode parsing_mode,
357 : nsCompatibility quirks_mode,
358 : mozilla::css::Loader* loader)
359 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemoveProperty, void,
360 : RawServoDeclarationBlockBorrowed declarations,
361 : const nsACString* property)
362 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_RemovePropertyById, void,
363 : RawServoDeclarationBlockBorrowed declarations,
364 : nsCSSPropertyID property)
365 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_HasCSSWideKeyword, bool,
366 : RawServoDeclarationBlockBorrowed declarations,
367 : nsCSSPropertyID property)
368 : // Compose animation value for a given property.
369 : // |base_values| is nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>.
370 : // We use void* to avoid exposing nsRefPtrHashtable in FFI.
371 0 : SERVO_BINDING_FUNC(Servo_AnimationCompose, void,
372 : RawServoAnimationValueMapBorrowedMut animation_values,
373 : void* base_values,
374 : nsCSSPropertyID property,
375 : RawGeckoAnimationPropertySegmentBorrowed animation_segment,
376 : RawGeckoAnimationPropertySegmentBorrowed last_segment,
377 : RawGeckoComputedTimingBorrowed computed_timing,
378 : mozilla::dom::IterationCompositeOperation iteration_composite)
379 :
380 : // presentation attributes
381 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_PropertyIsSet, bool,
382 : RawServoDeclarationBlockBorrowed declarations,
383 : nsCSSPropertyID property)
384 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetIdentStringValue, void,
385 : RawServoDeclarationBlockBorrowed declarations,
386 : nsCSSPropertyID property,
387 : nsIAtom* value)
388 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetKeywordValue, void,
389 : RawServoDeclarationBlockBorrowed declarations,
390 : nsCSSPropertyID property,
391 : int32_t value)
392 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetIntValue, void,
393 : RawServoDeclarationBlockBorrowed declarations,
394 : nsCSSPropertyID property,
395 : int32_t value)
396 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPixelValue, void,
397 : RawServoDeclarationBlockBorrowed declarations,
398 : nsCSSPropertyID property,
399 : float value)
400 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetLengthValue, void,
401 : RawServoDeclarationBlockBorrowed declarations,
402 : nsCSSPropertyID property,
403 : float value,
404 : nsCSSUnit unit)
405 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetNumberValue, void,
406 : RawServoDeclarationBlockBorrowed declarations,
407 : nsCSSPropertyID property,
408 : float value)
409 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetPercentValue, void,
410 : RawServoDeclarationBlockBorrowed declarations,
411 : nsCSSPropertyID property,
412 : float value)
413 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetAutoValue, void,
414 : RawServoDeclarationBlockBorrowed declarations,
415 : nsCSSPropertyID property)
416 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetCurrentColor, void,
417 : RawServoDeclarationBlockBorrowed declarations,
418 : nsCSSPropertyID property)
419 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetColorValue, void,
420 : RawServoDeclarationBlockBorrowed declarations,
421 : nsCSSPropertyID property,
422 : nscolor value)
423 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetFontFamily, void,
424 : RawServoDeclarationBlockBorrowed declarations,
425 : const nsAString& value)
426 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetTextDecorationColorOverride, void,
427 : RawServoDeclarationBlockBorrowed declarations)
428 0 : SERVO_BINDING_FUNC(Servo_DeclarationBlock_SetBackgroundImage, void,
429 : RawServoDeclarationBlockBorrowed declarations,
430 : const nsAString& value,
431 : RawGeckoURLExtraData* extra_data)
432 :
433 : // MediaList
434 0 : SERVO_BINDING_FUNC(Servo_MediaList_Create, RawServoMediaListStrong)
435 0 : SERVO_BINDING_FUNC(Servo_MediaList_DeepClone, RawServoMediaListStrong,
436 : RawServoMediaListBorrowed list)
437 0 : SERVO_BINDING_FUNC(Servo_MediaList_Matches, bool,
438 : RawServoMediaListBorrowed list,
439 : RawServoStyleSetBorrowed set)
440 0 : SERVO_BINDING_FUNC(Servo_MediaList_GetText, void,
441 : RawServoMediaListBorrowed list, nsAString* result)
442 0 : SERVO_BINDING_FUNC(Servo_MediaList_SetText, void,
443 : RawServoMediaListBorrowed list, const nsACString* text)
444 0 : SERVO_BINDING_FUNC(Servo_MediaList_GetLength, uint32_t,
445 : RawServoMediaListBorrowed list)
446 0 : SERVO_BINDING_FUNC(Servo_MediaList_GetMediumAt, bool,
447 : RawServoMediaListBorrowed list, uint32_t index,
448 : nsAString* result)
449 0 : SERVO_BINDING_FUNC(Servo_MediaList_AppendMedium, void,
450 : RawServoMediaListBorrowed list, const nsACString* new_medium)
451 0 : SERVO_BINDING_FUNC(Servo_MediaList_DeleteMedium, bool,
452 : RawServoMediaListBorrowed list, const nsACString* old_medium)
453 :
454 : // CSS supports()
455 0 : SERVO_BINDING_FUNC(Servo_CSSSupports2, bool,
456 : const nsACString* name, const nsACString* value)
457 0 : SERVO_BINDING_FUNC(Servo_CSSSupports, bool,
458 : const nsACString* cond)
459 :
460 : // Computed style data
461 0 : SERVO_BINDING_FUNC(Servo_ComputedValues_GetForAnonymousBox,
462 : ServoComputedValuesStrong,
463 : ServoComputedValuesBorrowedOrNull parent_style_or_null,
464 : nsIAtom* pseudo_tag, bool skip_display_fixup,
465 : RawServoStyleSetBorrowed set)
466 0 : SERVO_BINDING_FUNC(Servo_ComputedValues_Inherit, ServoComputedValuesStrong,
467 : RawServoStyleSetBorrowed set,
468 : ServoComputedValuesBorrowedOrNull parent_style,
469 : mozilla::InheritTarget target)
470 0 : SERVO_BINDING_FUNC(Servo_ComputedValues_GetVisitedStyle,
471 : ServoComputedValuesStrong,
472 : ServoComputedValuesBorrowed values)
473 : // Gets the source style rules for the computed values. This returns
474 : // the result via rules, which would include a list of unowned pointers
475 : // to RawServoStyleRule.
476 0 : SERVO_BINDING_FUNC(Servo_ComputedValues_GetStyleRuleList, void,
477 : ServoComputedValuesBorrowed values,
478 : RawGeckoServoStyleRuleListBorrowedMut rules)
479 :
480 : // Initialize Servo components. Should be called exactly once at startup.
481 0 : SERVO_BINDING_FUNC(Servo_Initialize, void,
482 : RawGeckoURLExtraData* dummy_url_data)
483 : // Shut down Servo components. Should be called exactly once at shutdown.
484 0 : SERVO_BINDING_FUNC(Servo_Shutdown, void)
485 :
486 : // Restyle and change hints.
487 0 : SERVO_BINDING_FUNC(Servo_NoteExplicitHints, void, RawGeckoElementBorrowed element,
488 : nsRestyleHint restyle_hint, nsChangeHint change_hint)
489 0 : SERVO_BINDING_FUNC(Servo_TakeChangeHint, nsChangeHint, RawGeckoElementBorrowed element)
490 0 : SERVO_BINDING_FUNC(Servo_ResolveStyle, ServoComputedValuesStrong,
491 : RawGeckoElementBorrowed element,
492 : RawServoStyleSetBorrowed set)
493 0 : SERVO_BINDING_FUNC(Servo_ResolvePseudoStyle, ServoComputedValuesStrong,
494 : RawGeckoElementBorrowed element,
495 : mozilla::CSSPseudoElementType pseudo_type,
496 : bool is_probe,
497 : ServoComputedValuesBorrowedOrNull inherited_style,
498 : RawServoStyleSetBorrowed set)
499 0 : SERVO_BINDING_FUNC(Servo_SetExplicitStyle, void,
500 : RawGeckoElementBorrowed element,
501 : ServoComputedValuesBorrowed primary_style)
502 0 : SERVO_BINDING_FUNC(Servo_HasAuthorSpecifiedRules, bool,
503 : RawGeckoElementBorrowed element,
504 : uint32_t rule_type_mask,
505 : bool author_colors_allowed)
506 :
507 : // Resolves style for an element or pseudo-element without processing pending
508 : // restyles first. The Element and its ancestors may be unstyled, have pending
509 : // restyles, or be in a display:none subtree. Styles are cached when possible,
510 : // though caching is not possible within display:none subtrees, and the styles
511 : // may be invalidated by already-scheduled restyles.
512 : //
513 : // The tree must be in a consistent state such that a normal traversal could be
514 : // performed, and this function maintains that invariant.
515 0 : SERVO_BINDING_FUNC(Servo_ResolveStyleLazily, ServoComputedValuesStrong,
516 : RawGeckoElementBorrowed element,
517 : mozilla::CSSPseudoElementType pseudo_type,
518 : mozilla::StyleRuleInclusion rule_inclusion,
519 : const mozilla::ServoElementSnapshotTable* snapshots,
520 : RawServoStyleSetBorrowed set)
521 :
522 : // Use ServoStyleSet::PrepareAndTraverseSubtree instead of calling this
523 : // directly
524 0 : SERVO_BINDING_FUNC(Servo_TraverseSubtree,
525 : bool,
526 : RawGeckoElementBorrowed root,
527 : RawServoStyleSetBorrowed set,
528 : const mozilla::ServoElementSnapshotTable* snapshots,
529 : mozilla::TraversalRootBehavior root_behavior,
530 : mozilla::TraversalRestyleBehavior restyle_behavior)
531 :
532 : // Assert that the tree has no pending or unconsumed restyles.
533 0 : SERVO_BINDING_FUNC(Servo_AssertTreeIsClean, void, RawGeckoElementBorrowed root)
534 :
535 : // Checks whether the rule tree has crossed its threshold for unused rule nodes,
536 : // and if so, frees them.
537 0 : SERVO_BINDING_FUNC(Servo_MaybeGCRuleTree, void, RawServoStyleSetBorrowed set)
538 :
539 : // Returns computed values for the given element without any animations rules.
540 0 : SERVO_BINDING_FUNC(Servo_StyleSet_GetBaseComputedValuesForElement,
541 : ServoComputedValuesStrong,
542 : RawServoStyleSetBorrowed set,
543 : RawGeckoElementBorrowed element,
544 : ServoComputedValuesBorrowed existing_style,
545 : const mozilla::ServoElementSnapshotTable* snapshots,
546 : mozilla::CSSPseudoElementType pseudo_type)
547 :
548 : // For canvas font.
549 0 : SERVO_BINDING_FUNC(Servo_SerializeFontValueForCanvas, void,
550 : RawServoDeclarationBlockBorrowed declarations,
551 : nsAString* buffer)
552 :
553 : // Get custom property value.
554 0 : SERVO_BINDING_FUNC(Servo_GetCustomPropertyValue, bool,
555 : ServoComputedValuesBorrowed computed_values,
556 : const nsAString* name, nsAString* value)
557 :
558 0 : SERVO_BINDING_FUNC(Servo_GetCustomPropertiesCount, uint32_t,
559 : ServoComputedValuesBorrowed computed_values)
560 :
561 0 : SERVO_BINDING_FUNC(Servo_GetCustomPropertyNameAt, bool,
562 : ServoComputedValuesBorrowed, uint32_t index,
563 : nsAString* name)
564 :
565 : // Style-struct management.
566 : #define STYLE_STRUCT(name, checkdata_cb) \
567 : struct nsStyle##name; \
568 : SERVO_BINDING_FUNC(Servo_GetStyle##name, const nsStyle##name*, \
569 : ServoComputedValuesBorrowedOrNull computed_values)
570 : #include "nsStyleStructList.h"
571 : #undef STYLE_STRUCT
572 :
573 : // AddRef / Release functions
574 : #define SERVO_ARC_TYPE(name_, type_) \
575 : SERVO_BINDING_FUNC(Servo_##name_##_AddRef, void, type_##Borrowed) \
576 : SERVO_BINDING_FUNC(Servo_##name_##_Release, void, type_##Borrowed)
577 : #include "mozilla/ServoArcTypeList.h"
578 : #undef SERVO_ARC_TYPE
|