servo/components/script
Martin Robinson a0743f60b3
script: Update the rendering when receiving IPC messages instead of just reflowing (#34486)
This changes fixes two issues:

1. A reflow of all `Document`s currently done unconditionally after
   receving IPC messages in the `ScriptThread`. Reflowing without first
   updating the animation timeline can lead to transitions finshing as
   soon as they start (because it looks like time advancement is
   measaured between calls to `update-the-rendering`).
2. Fix an issue where not all `Pipeline`s were updated during *update
   the rendering*. The previous code only took into account top level
   frames and their children. It's not guaranteed that a particular
   `ScriptThread` is managing any top level frames, depending on the
   origens of those frames. We should update the rendering of those
   non-top-level iframes regardless.

   The new code attempts to order the frames according to the
   specification as much as possible without knowing the entire frame
   tree, without skipping any documents managed by the `ScriptThread` in
   question.

In addition, `Documents` is pulled out the `script_thread.rs` and
renamed to `DocumentCollection`.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-12-09 11:33:58 +00:00
..
docs
dom script: Update the rendering when receiving IPC messages instead of just reflowing (#34486) 2024-12-09 11:33:58 +00:00
layout_dom Include non-shadowdom children of shadow hosts in style calculation (#34298) 2024-11-20 19:28:35 +00:00
task_source CanGc fixes in several files (#33958) 2024-10-21 21:32:22 +00:00
xpath Add XPath parser/evaluator (#34463) 2024-12-08 02:01:50 +00:00
animation_timeline.rs
animations.rs script: Update animations once per-Document during update_the_rendering() (#34489) 2024-12-05 16:37:59 +00:00
body.rs Consistently use Dom in native promise handlers (#34167) 2024-11-07 12:11:33 +00:00
build.rs use rerun-if-changed in script/build.rs (#33502) 2024-09-30 11:31:05 +00:00
canvas_state.rs CanGc changes from fontfaceset.rs (#33920) 2024-10-21 12:28:56 +00:00
Cargo.toml Add XPath parser/evaluator (#34463) 2024-12-08 02:01:50 +00:00
clipboard_provider.rs
devtools.rs script: Update the rendering when receiving IPC messages instead of just reflowing (#34486) 2024-12-09 11:33:58 +00:00
document_collection.rs script: Update the rendering when receiving IPC messages instead of just reflowing (#34486) 2024-12-09 11:33:58 +00:00
document_loader.rs Fix GC borrow hazards triggered by LoadBlocker::terminate (#34122) 2024-11-04 22:27:41 +00:00
drag_data_store.rs Implement DataTransfer and related interfaces (#34205) 2024-11-25 10:49:04 +00:00
fetch.rs Implement PolicyContainer and update the default ReferrerPolicy (#33977) 2024-11-08 07:19:23 +00:00
image_listener.rs Use ROUTER::add_typed_route instead of ROUTER::add_route everywhere (#33866) 2024-10-18 10:47:52 +00:00
init.rs Create two-phase initialization for generated JS engine bindings (#34366) 2024-12-06 07:34:24 +00:00
layout_image.rs CanGc fixes from EventTarget::fire_event (#33985) 2024-10-23 22:48:19 +00:00
lib.rs script: Update the rendering when receiving IPC messages instead of just reflowing (#34486) 2024-12-09 11:33:58 +00:00
links.rs CanGc fixes from constantsourcenode.rs & window.rs (#33931) 2024-10-20 19:54:02 +00:00
mem.rs
microtask.rs
network_listener.rs CanGc fixes from EventTarget::fire_event (#33985) 2024-10-23 22:48:19 +00:00
realms.rs
script_module.rs Remove referrer policy from document (#34263) 2024-11-19 12:45:10 +00:00
script_runtime.rs Add webgpu feature flag (#34444) 2024-12-05 16:07:27 +00:00
script_thread.rs script: Update the rendering when receiving IPC messages instead of just reflowing (#34486) 2024-12-09 11:33:58 +00:00
security_manager.rs cangc fixes in several files + event.rs + rtcpeerconnection.rs (#34002) 2024-10-25 12:44:15 +00:00
serviceworker_manager.rs Prevent moving CanGc values between threads/tasks (#33902) 2024-10-18 17:26:54 +00:00
stylesheet_loader.rs Remove referrer policy from document (#34263) 2024-11-19 12:45:10 +00:00
stylesheet_set.rs
task.rs
task_manager.rs
task_queue.rs
test.rs
textinput.rs
timers.rs Use out parameter for generated methods returning JSVal (#34087) 2024-11-05 08:29:08 +00:00
unminify.rs Unminify module scripts. (#34206) 2024-11-12 13:06:55 +00:00
unpremultiplytable.rs
webdriver_handlers.rs script: Update the rendering when receiving IPC messages instead of just reflowing (#34486) 2024-12-09 11:33:58 +00:00
window_named_properties.rs