servo/components
Josh Matthews 3a04f4195e
script: Return global objects for DOM objects in the relevant realm (#37120)
DomObject::global is a tricky API because it's used pervasively but has
subtle requirements that are not documented and not yet enforced by the
type system (#36116). The method returns the relevant global object for
a given DOM object, but that operation is only meaningful if there is an
active realm. We usually, but not always, have an active realm.

This change avoids a footgun by following the principle of least
surprise. Rather than making every single caller of `something.global()`
both prove that there is an active realm and think about which realm
they want active, we implement the obvious behaviour: always activate
the realm of the callee before obtaining the relevant global.
 
Testing: Existing WPT coverage is sufficient; this method is called all
over the codebase.
Fixes: #37070 #27037

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-05-25 03:21:05 +00:00
..
allocator Organize component Cargo.toml dependencies (#36224) 2025-03-30 19:03:54 +00:00
background_hang_monitor Organize component Cargo.toml dependencies (#36224) 2025-03-30 19:03:54 +00:00
bluetooth Replace bluetooth Readme with corrected version from devices repository (#36429) 2025-04-10 18:02:45 +00:00
canvas Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
compositing Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
config Unconditionally enable the URLPattern API (#37116) 2025-05-24 13:20:45 +00:00
constellation Synchronize dispatch_actions in WebDriver (#36932) 2025-05-21 11:03:04 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools DevTools: Improve resource_available to handle multiple connections (#36933) 2025-05-09 12:06:33 +00:00
dom_struct script: Feature-gate all crown support. (#35055) 2025-01-18 21:36:15 +00:00
domobject_derive Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
fonts chore: fix warnings for Windows-specific fonts code (#37063) 2025-05-21 16:30:43 +00:00
geometry servoshell: Allow overriding screen resolution with a command-line argument (#34038) 2024-10-30 11:54:13 +00:00
hyper_serde Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
jstraceable_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
layout layout: Use the viewport size as the background-attachment: fixed positioning area (#37097) 2025-05-24 09:45:53 +00:00
malloc_size_of layout: Share styles to inline box children via SharedInlineStyles (#36896) 2025-05-12 09:38:50 +00:00
media compositing: Combine webrender_traits and compositing_traits (#36372) 2025-04-06 17:34:18 +00:00
metrics Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
net Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
pixels Coalesce animated image frame data into a single shared memory region (#37058) 2025-05-20 20:40:46 +00:00
profile Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
rand Migrate to the 2024 edition (#35755) 2025-03-13 10:28:11 +00:00
range Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
script script: Return global objects for DOM objects in the relevant realm (#37120) 2025-05-25 03:21:05 +00:00
script_bindings script: Return global objects for DOM objects in the relevant realm (#37120) 2025-05-25 03:21:05 +00:00
servo Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
servo_tracing [tracing] Add convenience macro for function tracing (#36573) 2025-04-22 19:58:20 +00:00
shared imagebitmap: Make ImageBitmap serializable and transferable (#37101) 2025-05-23 20:40:25 +00:00
timers Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
url Various memory measurement improvements (#36834) 2025-05-07 04:00:12 +00:00
webdriver_server Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
webgl webgl: Use glow::Context::supported_extensions() to implement getSupportedExtensions() (#36911) 2025-05-08 08:34:52 +00:00
webgpu Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
webxr Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00