Continue http cache work
<!-- Please describe your changes on the following line: -->
Work in progress, and not quite worth a review yet. (Continuation of https://github.com/servo/servo/pull/4117)
TODO
- [ ] cache metadata (find some subset of`net_traits::Metadata` that can be shared across threads, it seems the problem is mainly stuff inside `hyper::header` in the `headers` field)
- [ ] determine which other fields of a `Response` need to be cached, so a full and valid one can be returned upon a cache hit.
- [ ] determine how to best share the cache across fetch threads (inside HttpState like I tried now?)
- [ ] Spend more time reading the spec and make sure the cache follows it where it matters.
- [ ] Make the current wpt tests pass.
- [ ] More...
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix#12972 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18676)
<!-- Reviewable:end -->
Update expected results for hash-name-reference.html.
These are stable expected results, and we missed them because the test is marked as intermittent in #16179.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19270)
<!-- Reviewable:end -->
Implement EventTarget constructor
Resolves#19283
Do "Wrap" functions only created for elements that aren't marked Abstract in .webidl file?
How can I see code that was generated from webidls?
<!-- Please describe your changes on the following line: -->
---
<!-- 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
- [X] These changes fix#19283 (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are covered by webplatform tests
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19288)
<!-- Reviewable:end -->
The API for text control selection is the same for both <input> and
<textarea>:
https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#textFieldSelection
Before this change, they had similar but not identical implementations
with duplicate code. Now there is a common TextControl trait which
contains the implementation used by both. As a result, some previously
failing tests now pass.
Move assertions about the initial value of selection{Start,End} to their
own tests. This ensures that when one of these assertions fails, it
doesn't prevent other tests from being defined. Thus we have a clearer
view of which tests are passing or failing, since all tests get defined
regardless of which assertions fail.
Replace rustc_serialize with serde_json in style_tests
#12410 Stop using rustc_serialize
Replaced rustc_serialize with serde_json in
- [ ] ~~components/config/Cargo.toml~~
- [ ] ~~components/config/lib.rs~~
- [ ] ~~components/config/prefs.rs~~
- [ ] ~~components/script_traits/Cargo.toml~~
- [ ] ~~components/script_traits/lib.rs~~
- [ ] ~~components/script_traits/webdriver_msg.rs~~
- [ ] ~~components/webdriver_server/Cargo.toml~~
- [ ] ~~components/webdriver_server/lib.rs~~
- [X] tests/unit/style/Cargo.toml
- [X] test/unit/style/lib.rs
- [X] test/unit/style/properties/scaffolding.rs
PR checks:
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [X] These changes fix (partially) #12410.
- [X] These changes do not require tests because functionality was not changed or a test itself was edited
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18710)
<!-- Reviewable:end -->
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.
Set the correct Angle GLSL output when using WebGL 2
Set the correct Angle GLSL output when using WebGL 2
<!-- Please describe your changes on the following line: -->
---
<!-- 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: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19192)
<!-- Reviewable:end -->
scroll, SetScrollTop, SetScrollLeft in `element.rs`
<!-- Please describe your changes on the following line: -->
Currently dom-element-scroll have not finished yet. (Step 10)
This PR finish the step 10 of `scroll`, `SetScrollTop`, `SetScrollLeft`
[Step 10 description](https://drafts.csswg.org/cssom-view/#dom-element-scrolltop):
> If the element does not have any associated CSS layout box, the element has no associated scrolling box, or the element has no overflow, terminate these steps.
---
<!-- 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
- [X] These changes fix#19114 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19127)
<!-- Reviewable:end -->
Added implementation for itemprop and itemtype along with test files
<!-- Please describe your changes on the following line: -->
---
<!-- 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
<!-- Either: -->
- [x] There are tests for these changes OR
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/19038)
<!-- Reviewable:end -->
Created test file
Added the stub methods for itemprop and itemscope
Resolved html5ever dependency, added ItemScope and ItemProp attr
Resolving dependency
Added pref override on metadata attributes
Resetting to original state due to change in requirement
Reverted adding attributes
1. add a customized implementation of parse_plain_attribute
2. add the following methods to HTMLElement.webidl
added itemprop and itemtype, enabled pref in test
Added initial implementation for getting itemprop property values
Adding the wireframe for testing
Implemented function to handle itemType
Corrected typo
Fixed typo bug in code
Handling duplicates for itemtype attribute values
Added the test suite structure
Added test for extra space
Added test for regular test values
Added test cases for Single property values
Test cases to check absence of itemtype and itemprop attributes
Added code to handle absence of itemtype or itemprop attributes
Added shell script to run all test cases
cleared up Cargo file
Tidying up
Removed the local test file
Removed new line for test-tidy
Ordered key in prefs.json
Fixes for test-tidy
Enabled test preferences
Created test using wpt
Creating WPT Tests for Regular and Single Prop Types
Fixed the Regular type test
Fixed tests
Removed old test case metadata
Incorporate review changes from PR
Updated MANIFEST to sync test cases
Making changed suggested in review
Removed editor folding
Removed unnecessary code
Resolving cargo conflicts
Updated PropertyNames and itemtypes implementation
Trying different data in test case
Updated manifest
Updated code based on reviews