This removes 3927 lines of Rust code in 6 crates from the dependency graph:
parse-hosts, multistr, bow, extra-default, len-trait, and push-trait.
One of these crates doesn’t build in today’s Nightly:
https://github.com/rust-lang/rust/issues/46328
Doom cache entries based on the initial response, and prevent matching against doomed cache enties.
Evict cache entries that have passed their expiry date instead of matching them.
Document the cache. Refactor incomplete entries to lessen Option-itis.
Revalidate expired cache entries instead of unconditionally evicting them.
Forbid missing docs in cache code.
Revalidate must-revalidate entries.
Fetch content tests from a local HTTP server.
Track requests made to the test HTTP server.
Add a simple test that a cached resource with no expiry is not revalidated. Correct inverted expiry check in revalidation code.
Fix incorrect revalidation logic that dropped the consumer channels on the floor.
Ensure that requests are cached based on their request headers.
Run a separate http server instance for each test to avoid intermittent failures due to concurrent cache tests.
Add a test for uncacheable responses.
Address review comments.
Sometimes clippy gets outdated by months, and its current support setup
means that each Servo component need to opt into it by depending on
the plugins crate manually, and not all components do that.
Implemented response validation part of
https://w3c.github.io/webappsec-subresource-integrity/.
Implemented step eighteen of the main fetch. If a request has integrity
metadata, then following steps are performed
*Wait for response body
*If the response does not have a termination reason and response does not
match request’s integrity metadata, set response to a
network error.# Please enter the commit message for your changes. Lines starting
Also remove now-dead code that rustc warns about.
It turns out that we lost support for some of our custom URL schemes; I intend
to reimplement them, but I believe this will be significantly easier to do
once the legacy code is out of the way.
Add random Device ID generation
<!-- Please describe your changes on the following line: -->
The [spec](https://webbluetoothcg.github.io/web-bluetooth/#add-an-allowed-bluetooth-device) (2. step) defines that the device id can't be the public address, therefore we generate a random id.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because there are no webbluetooth test api implementation yet.
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- 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/11523)
<!-- Reviewable:end -->
Changes include:
- Introduce an IpcSend trait to abstract over a collection of IpcSenders
- Implement ResourceThreads collection to abstract the resource-related
sub threads across the component
- Rename original ResourceThread and ControlMsg into an unifed CoreResource__
to accommodate above changes and avoid confusions