servo/components/shared
Martin Robinson c0970ea655
compositor: Wait for both Script and the Constellation when shutting down Pipelines (#37505)
Previously, the Constellation would immediately ask the Compositor to
shut down a pipeline, even before the ScriptThread finished shutting it
down. This meant that the Compositor might remove a Pipeline and then
re-add it if the ScriptThread sent a Pipeline-related message (such as a
new display list) in the meantime.

This change makes it so that the Compositor waits for both the
Constellation and the ScriptThread to finish shutting down a Pipeline
before removing its data. In addition, the Constellation no longer
synchronously waits on the Compositor when shutting down Pipelines. This
was important when the Compositor would talk to the ScriptThread
directly, but isn't necessary any longer.

Testing: This is very hard to test, because it depends on the creation
and destruction of many iframes and the particular timing of of all
the messaging between Servo bits. That said, this was tested manually
by observing the completion of Speedometer 2.1.
Fixes: #37458.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-06-17 09:56:31 +00:00
..
background_hang_monitor script: add skeleton implementation of FontFace API (#35262) 2025-02-19 05:50:01 +00:00
base imagebitmap: Make ImageBitmap serializable and transferable (#37101) 2025-05-23 20:40:25 +00:00
bluetooth Include WebViewId into EmbedderMsg variants where possible (#35211) 2025-01-30 11:15:35 +00:00
canvas Change canvas/context/snapshot size from u64 -> u32 (#36827) 2025-06-07 14:37:21 +00:00
compositing compositor: Wait for both Script and the Constellation when shutting down Pipelines (#37505) 2025-06-17 09:56:31 +00:00
constellation layout: Store scroll offsets in the ScrollTree (#37428) 2025-06-13 12:01:27 +00:00
devtools DevTools: Implement support for showing source_content in Debugger > Source panel (#36774) 2025-06-13 09:31:33 +00:00
embedder Allow OHOS servoshell to have a simple multiple tab implementation. (#36891) 2025-06-16 08:17:31 +00:00
fonts Update rustfmt to the 2024 style edition (#35764) 2025-03-03 11:26:53 +00:00
net Report URI with POST fetch request (#37209) 2025-06-08 18:44:55 +00:00
profile Refactor the memory profiler code to return the struct. (#37155) 2025-05-28 00:58:05 +00:00
script compositor: Wait for both Script and the Constellation when shutting down Pipelines (#37505) 2025-06-17 09:56:31 +00:00
script_layout layout: Store scroll offsets in the ScrollTree (#37428) 2025-06-13 12:01:27 +00:00
snapshot imagebitmap: Crop bitmap data with formatting (#37397) 2025-06-16 12:09:04 +00:00
webgpu Introduce snapshot concept of canvas (#36119) 2025-04-23 07:32:47 +00:00
webxr libservo: Move EventLooperWaker from webxr_traits to embedder_traits (#36420) 2025-04-09 14:19:33 +00:00