mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Add file backend support for Blob and related - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy --faster` does not report any errors - [x] These changes fix #10851, related to #11131 - [x] These changes do not require tests because the implementation is partial and can't work alone 1. Add new backend to `Blob` and a `BlobImpl` struct to abstract multiple backends 2. Rewrite most interfaces of `Blob` to accommodate the change 3. Change the `read` behaviour of `FileReader`, considering the case when blob is file-backed and not cached The design is still immature, welcome comments! - [x] I used `DOMRefCell` to cache the bytes in `BlobImpl`, is it sound? - [x] The interfaces (like `BlobImpl::get_bytes`) handle requests in a default-to-empty way when the inner `DataSlice` is not cached. It might be possible to handle this condition better. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11221) <!-- Reviewable:end --> |
||
---|---|---|
.. | ||
canvas | ||
canvas_traits | ||
compositing | ||
constellation | ||
devtools | ||
devtools_traits | ||
gfx | ||
gfx_traits | ||
layout | ||
layout_traits | ||
msg | ||
net | ||
net_traits | ||
plugins | ||
profile | ||
profile_traits | ||
range | ||
script | ||
script_traits | ||
servo | ||
style | ||
style_traits | ||
util | ||
webdriver_server |