mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
* Implement slot-related algorithms Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Hook up slot elements to DOM creation logic Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Set a slot assignment mode for servo-internal shadow roots Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Assign slots when a slottable's slot attribute changes Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Properly compute slot name Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * ./mach test-tidy Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update <slot> name when name attribute changes Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement fast path for Node::assign_slottables_for_a_tree assign_slottables_for_a_tree traverses all descendants of the node and is potentially very expensive. If the node is not a shadow root then assigning slottables to it won't have any effect, so we take a fast path out. Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Move slottable data into ElementRareData This shrinks all element descendants back to their original size. Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Address review comments Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
25 lines
862 B
Text
25 lines
862 B
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://html.spec.whatwg.org/multipage/#the-slot-element
|
|
[Exposed=Window]
|
|
interface HTMLSlotElement : HTMLElement {
|
|
[HTMLConstructor] constructor();
|
|
|
|
[CEReactions] attribute DOMString name;
|
|
sequence<Node> assignedNodes(optional AssignedNodesOptions options = {});
|
|
sequence<Element> assignedElements(optional AssignedNodesOptions options = {});
|
|
undefined assign((Element or Text)... nodes);
|
|
};
|
|
|
|
dictionary AssignedNodesOptions {
|
|
boolean flatten = false;
|
|
};
|
|
|
|
// https://dom.spec.whatwg.org/#mixin-slotable
|
|
interface mixin Slottable {
|
|
readonly attribute HTMLSlotElement? assignedSlot;
|
|
};
|
|
Element includes Slottable;
|
|
Text includes Slottable;
|