Commit graph

23868 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
2fd13b302b
style: Minor build fixes 2020-04-23 05:14:55 +02:00
Emilio Cobos Álvarez
ad602a0fa8
style: Export a size to fix a test that was trying to use a now-private type. 2020-04-23 05:07:02 +02:00
bors-servo
610991bdfc
Auto merge of #26244 - mrobinson:animation-cancel, r=jdm
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- 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 #15079.

<!-- 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. -->
2020-04-22 15:34:06 -04:00
bors-servo
84fe99b1d5
Auto merge of #26253 - asajeffrey:script-dummy-content-editble, r=jdm
Add a dummy implementation of contentEditable

<!-- Please describe your changes on the following line: -->

Add a dummy implementation of `contentEditable`.

---
<!-- 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 do not require tests because the existing wpt tests should do

<!-- 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. -->
2020-04-22 11:32:05 -04:00
Martin Robinson
453b252a65 Add support for canceling CSS transitions
This change adds support for canceling CSS transitions when a property
is no longer transitionable or when an element becomes styled with
display:none. Support for canceling and replacing CSS transitions when
the end value changes is still pending. This change also takes advantage
of updating the constellation message to fix a bug where transition
events could be sent for closed pipelines.

Fixes #15079.
2020-04-22 17:23:26 +02:00
Mátyás Mustoha
a90f034976 Fix InvalidateSubFramebuffer error handling
The WebGL2 InvalidateSubFramebuffer function should generate
INVALID_VALUE when width or height is negative.
2020-04-22 12:45:56 +02:00
Alan Jeffrey
c00eb62090 Add a dummy implementation of contentEditable 2020-04-21 19:12:52 -05:00
Simon Sapin
bbed751bbc Remove use of webrender::RendererKind
It appears to be unused since 2017 with https://github.com/servo/webrender/pull/1587
CC https://bugzilla.mozilla.org/show_bug.cgi?id=1631579
2020-04-20 22:05:59 +02:00
bors-servo
4c4f588178
Auto merge of #26227 - servo:layout-2020-rule-tree-threadsafe, r=emilio
Make the rule tree actually threadsafe

RuleTree::gc is now a safe method that any thread can call
at any time, and StrongRuleNode values can all be dropped
whenever their owner want to, on any thread.
2020-04-20 11:45:59 -04:00
Anthony Ramine
7f54d14904 Make the rule tree actually threadsafe
RuleTree::gc is now a safe method that any thread can call
at any time, and StrongRuleNode values can all be dropped
whenever their owner want to, on any thread.
2020-04-20 17:39:19 +02:00
Anthony Ramine
1c2de5641c Change Map::get_or_insert_with to Map::entry 2020-04-20 14:17:14 +02:00
Manish Goregaokar
30cd89d2d8 Add feature gating for hit tests 2020-04-19 20:29:14 -07:00
Manish Goregaokar
1b07b77323 Add XRSession::requestHitTestSource() 2020-04-19 20:29:14 -07:00
Manish Goregaokar
f1d6a89150 Add XRFrame::getHitTestResults() 2020-04-19 20:29:14 -07:00
Manish Goregaokar
87bce8cde9 Add XRHitTestResult::getPose 2020-04-19 20:29:14 -07:00
Manish Goregaokar
c7b91523d0 Add XRHitTestResult 2020-04-19 20:29:14 -07:00
Manish Goregaokar
341d36a826 Add XRHitTestSource 2020-04-19 20:29:14 -07:00
Manish Goregaokar
83f92a3181 Update XRRay semantics
Implements changes from https://github.com/immersive-web/hit-test/pull/85
2020-04-19 20:29:14 -07:00
Manish Goregaokar
7dd2a71d6d Add XRRay.matrix 2020-04-19 20:29:14 -07:00
Manish Goregaokar
e7ba4e5a47 Add XRRay(transform) constructor 2020-04-19 20:29:14 -07:00
Manish Goregaokar
977b36d855 Add XRRay constructors 2020-04-19 20:29:14 -07:00
Manish Goregaokar
98ff97783e Add origin/direction methods to XRRay 2020-04-19 20:29:14 -07:00
Manish Goregaokar
b6a9e41bb8 Add stub XRRay 2020-04-19 20:29:14 -07:00
Manish Goregaokar
7f353033f4 Support .supportedModes to enable newer tests 2020-04-19 20:29:14 -07:00
Manish Goregaokar
ef6ee5e2a1 Add hit test mocking after initialization 2020-04-19 11:43:50 -07:00
Manish Goregaokar
d01d9065aa Add hit test mocking at initialization 2020-04-19 11:43:50 -07:00
Manish Goregaokar
3f88310e23 Update webxr 2020-04-19 11:43:49 -07:00
Bastien Orivel
3c895666e1 Dedupe the dirs dependency 2020-04-19 13:54:02 +02:00
bors-servo
306e8ac5f9
Auto merge of #25853 - asajeffrey:surfmanup, r=jdm
Replace glutin by winit + surfman 0.2

<!-- Please describe your changes on the following line: -->

This PR updates surfman to 0.2, and replaces glutin with winit+surfman.

---
<!-- 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 do not require tests because this should all be invisible

<!-- 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. -->
2020-04-18 21:03:25 -04:00
bors-servo
00ac447966
Auto merge of #26220 - servo:layout-2020-rule-tree-new-on-write, r=emilio
Always upgrade existing weak child references in the rule tree

Just because we didn't find a child when read-locking a node children list
doesn't mean it still won't exist while we wait to upgrade the read lock
into a write lock to create the child.
2020-04-18 14:06:19 -04:00
bors-servo
3a1531f18f
Auto merge of #26214 - mrobinson:animation-eliminate-animation-frame, r=emilio
Eliminate `AnimationFrame`

This intermediate data structure doesn't really buy us anything and is a
bit confusing.

<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they do not change behavior.

<!-- 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. -->
2020-04-18 10:34:44 -04:00
Martin Robinson
a0b495750e Eliminate AnimationFrame
This intermediate data structure doesn't really buy us anything and is a
bit confusing.
2020-04-18 13:48:52 +02:00
Anthony Ramine
c113fbb640 Always upgrade existing weak child references in the rule tree
Just because we didn't find a child when read-locking a node children list
doesn't mean it still won't exist while we wait to upgrade the read lock
into a write lock to create the child.
2020-04-18 12:11:34 +02:00
Alan Jeffrey
8bb1732258 Update surfman to 0.2 and remove glutin 2020-04-17 23:44:53 -05:00
Emilio Cobos Álvarez
ee8e98bc04 style: Run rustfmt. 2020-04-18 03:48:22 +02:00
Emilio Cobos Álvarez
b80d79863c style: Fix some rebase messups from the rule tree refactoring.
This code was all long gone already from Gecko :)
2020-04-18 03:48:21 +02:00
Emilio Cobos Álvarez
83ea321096 style: Implement parsing / selector-matching for :is() and :where().
This implements the easy / straight-forward parts of the :where / :is
selectors.

The biggest missing piece is to handle properly invalidation when there
are combinators present inside the :where. That's the hard part of this,
actually.

But this is probably worth landing in the interim. This fixes some of
the visitors that were easy to fix.

Differential Revision: https://phabricator.services.mozilla.com/D70788
2020-04-18 03:48:15 +02:00
bors-servo
37c53c4ea8
Auto merge of #26201 - servo:layout-2020-fix-rule-tree, r=emilio
Refactor style rule tree, without actually fixing its !Send behaviour yet
2020-04-17 17:24:22 -04:00
bors-servo
c9480c8e07
Auto merge of #23661 - julientregoat:i-21289, r=jdm
Refactor ImageCache::find_image_or_metadata -> ImageCache::{get_image, track_image}

<!-- Please describe your changes on the following line: -->
Updated the `ImageCache` trait to replace `find_image_or_metadata` with two new functions `track_image` and `get_image`, as well as a new enum (`ImageCacheResult`).

As a result, I was able to refactor the functions that previously called `find_image_or_metadata` pretty cleanly. For a list of these functions, please see the commit information.

---
<!-- 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 #21289  (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because tests already exist for these components. I ran `cargo test` in `net`, `net_traits`, `layout`, and `script` successfully.

<!-- 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/23661)
<!-- Reviewable:end -->
2020-04-17 15:56:30 -04:00
Josh Matthews
d4e85f9a90 Don't continually re-request completed requests that had load errors. 2020-04-17 11:59:00 -04:00
Julien Tregoat
2742fd2bea Refactor ImageCache::find_image_or_metadata API. 2020-04-17 11:58:18 -04:00
Martin Robinson
fad79a724c Add an iterator for transition properties
This simplifies the code a bit and also will allow us to more easily
make improvements to servo's animation implementation in the future.
2020-04-17 15:11:49 +02:00
Anthony Ramine
a30da7ad8e Introduce a new type UnsafeBox<T> in the rule tree
This lets us rely less on raw pointers, thus better tracking the lifetime
of the rule node values while dropping strong references etc.
2020-04-17 12:41:10 +02:00
Anthony Ramine
bc4e2942bf Make StrongRuleNode::downgrade be unsafe 2020-04-17 12:41:09 +02:00
Anthony Ramine
fb28ce6bbe Make StrongRuleNode::ensure_child take a StrongRuleNode for the root 2020-04-17 12:41:09 +02:00
Anthony Ramine
37c70609f9 Remove WeakRuleNode::clone
MallocSizeOf for RuleTree should not keep around weak references in
case someone runs a GC meanwhile.
2020-04-17 12:41:09 +02:00
Anthony Ramine
e06e164571 Make WeakRuleNode::from_ptr be unsafe 2020-04-17 12:41:09 +02:00
Anthony Ramine
05accaa7bd Make StrongRuleNode::from_ptr be unsafe 2020-04-17 12:41:08 +02:00
Anthony Ramine
e5cb3d2a4c Move the meat of the rule tree to a submodule "core" 2020-04-17 12:41:08 +02:00
Anthony Ramine
1ea6a0cdd4 Move CascadeLevel to its own rule_tree submodule 2020-04-17 11:43:39 +02:00