servo/components/layout
Tim van der Lippe 8a837778d9
Create new image cache per document (#36832)
Rather than sharing the full image cache in a script_thread, the image
cache is now unique per document. This ensures that CSP factors no
longer affect whether the image is retrieved from the cache incorrectly.

To do so, the thread_pool is shared across all caches, but the store is
fresh. Except for the place_holder{image,url}, which are cloned. That's
because the `rippy_data` is only available in the constellation and no
longer accessible at the point that we need to create the document in
the script_thread.

Contrary to the description in #36505, the script_thread still has an
image_cache for this reason: so it has access to the store and
thread_pool to clone it.

With these changes, the two CSP tests no longer flake. Confirmed with
running the following commmand:

```
./mach test-wpt tests/wpt/tests/content-security-policy/generic/ --rerun=10
```

Fixes #36505

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-05-04 20:20:56 +00:00
..
display_list layout: Account for transform in scrollable overflow (#36138) 2025-04-29 09:37:27 +00:00
flexbox layout: Simplify PositioningContext by having it hold a single Vec (#36795) 2025-05-02 12:20:11 +00:00
flow layout: Simplify PositioningContext by having it hold a single Vec (#36795) 2025-05-02 12:20:11 +00:00
fragment_tree layout: Account for transform in scrollable overflow (#36138) 2025-04-29 09:37:27 +00:00
stylesheets Embed user agent stylesheets and media control resouces in libservo (#36803) 2025-05-04 18:48:09 +00:00
table layout: Simplify PositioningContext by having it hold a single Vec (#36795) 2025-05-02 12:20:11 +00:00
taffy layout: Simplify PositioningContext by having it hold a single Vec (#36795) 2025-05-02 12:20:11 +00:00
tests layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
Cargo.toml layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
cell.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
construct_modern.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
context.rs Propagate image resolution errors in layout context (#36692) 2025-04-28 12:32:51 +00:00
dom.rs Remove HTMLCanvasDataSource and CanvasSource (#36794) 2025-05-01 17:49:59 +00:00
dom_traversal.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
formatting_contexts.rs layout: Simplify PositioningContext by having it hold a single Vec (#36795) 2025-05-02 12:20:11 +00:00
geom.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
layout_box_base.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
layout_impl.rs Create new image cache per document (#36832) 2025-05-04 20:20:56 +00:00
lib.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
lists.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
positioned.rs layout: Simplify PositioningContext by having it hold a single Vec (#36795) 2025-05-02 12:20:11 +00:00
query.rs layout: Use box tree Fragments for offset parent queries (#36681) 2025-04-25 20:25:10 +00:00
quotes.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
replaced.rs Remove HTMLCanvasDataSource and CanvasSource (#36794) 2025-05-01 17:49:59 +00:00
sizing.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
style_ext.rs layout: Let individual transform properties establish a stacking context (#36749) 2025-05-02 11:30:32 +00:00
traversal.rs layout: Structure reflow code to make it more modular (#36597) 2025-04-23 07:34:35 +00:00