servo/components/script_bindings
Simon Wülker 0e99539dab
Support single-value <select> elements (#35684)
https://github.com/user-attachments/assets/9aba75ff-4190-4a85-89ed-d3f3aa53d3b0



Among other things this adds a new `EmbedderMsg::ShowSelectElementMenu`
to tell the embedder to display a select popup at the given location.

This is a draft because some small style adjustments need to be made:
* the select element should always have the width of the largest option
* the border should be part of the shadow tree

Apart from that, it's mostly ready for review.

<details><summary>HTML for demo video</summary>

```html
<html>

<body>
<select id="c" name="choice">
  <option value="first">First Value</option>
  <option value="second">Second Value</option>
  <option value="third">Third Value</option>
</select>
</body>
</html>
```
</details>

---

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] Part of https://github.com/servo/servo/issues/3551
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox
is checked, so that we can help you if you get stuck somewhere along the
way.-->

<!-- Pull requests that do not address these steps are welcome, but they
will require additional verification as part of the review process. -->

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-04-03 12:11:55 +00:00
..
codegen Support single-value <select> elements (#35684) 2025-04-03 12:11:55 +00:00
webidls Turn CSSStyleRule into a CSSGroupingRule subclass (#36254) 2025-04-01 19:18:07 +00:00
build.rs script: Move code generation and webidl files to new script_bindings crate. (#35157) 2025-01-24 20:47:43 +00:00
callback.rs Move various reflector types and traits to script_bindings (#35279) 2025-02-04 06:58:08 +00:00
Cargo.toml Organize component Cargo.toml dependencies (#36224) 2025-03-30 19:03:54 +00:00
constant.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
conversions.rs Miscellaneous script splitting preparation changes (#36216) 2025-03-29 08:11:27 +00:00
error.rs Miscellaneous script splitting preparation changes (#36216) 2025-03-29 08:11:27 +00:00
finalize.rs Miscellaneous script splitting preparation changes (#36216) 2025-03-29 08:11:27 +00:00
inheritance.rs More miscellaneous script splitting changes (#36220) 2025-03-30 11:06:30 +00:00
interfaces.rs More miscellaneous script splitting changes (#36220) 2025-03-30 11:06:30 +00:00
iterable.rs Move more bindings types to script_bindings (#35620) 2025-02-23 14:25:46 +00:00
lib.rs More miscellaneous script splitting changes (#36220) 2025-03-30 11:06:30 +00:00
like.rs Move more bindings types to script_bindings (#35620) 2025-02-23 14:25:46 +00:00
lock.rs Miscellaneous script splitting preparation changes (#36216) 2025-03-29 08:11:27 +00:00
num.rs Miscellaneous script splitting preparation changes (#36216) 2025-03-29 08:11:27 +00:00
proxyhandler.rs More miscellaneous script splitting changes (#36220) 2025-03-30 11:06:30 +00:00
record.rs Move CustomTraceable to script_bindings. (#35988) 2025-03-16 14:08:22 +00:00
reflector.rs Move various reflector types and traits to script_bindings (#35279) 2025-02-04 06:58:08 +00:00
root.rs More miscellaneous script splitting changes (#36220) 2025-03-30 11:06:30 +00:00
script_runtime.rs Move more bindings code to script_bindings (#35578) 2025-02-22 04:46:56 +00:00
str.rs Use new stylo crate renames (#35898) 2025-03-12 00:02:12 +00:00
trace.rs Move CustomTraceable to script_bindings. (#35988) 2025-03-16 14:08:22 +00:00
utils.rs More miscellaneous script splitting changes (#36220) 2025-03-30 11:06:30 +00:00
weakref.rs Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00