Commit graph

29209 commits

Author SHA1 Message Date
Anthony Ramine
860f2d806f Rename Promise::is_settled to Promise::is_fulfilled 2017-09-22 14:18:25 +02:00
Anthony Ramine
dabecfade6 Remove unused method Promise::then 2017-09-22 14:18:23 +02:00
Anthony Ramine
d31018d444 Make Promise::reject unsafe 2017-09-22 14:18:20 +02:00
Anthony Ramine
d246c5cf20 Remove JSContext argument from AsyncBluetoothListener::handle_response 2017-09-22 13:56:31 +02:00
Anthony Ramine
2400731bfc Make Promise::resolve unsafe 2017-09-22 02:15:28 +02:00
Anthony Ramine
5994e40070 Use Promise::resolve_native in fullscreen tasks 2017-09-22 02:15:26 +02:00
Anthony Ramine
af2e83f378 Make Promise::reject_error sound 2017-09-22 02:15:22 +02:00
Anthony Ramine
15acd1525e Make Promise::reject_native sound 2017-09-21 16:19:29 +02:00
Anthony Ramine
5addc2dfa3 Make Promise::resolve_native actually sound
We shouldn't have to pass a raw JSContext pointer, and to enter the
promise's context's compartment by hand.
2017-09-21 16:00:48 +02:00
Anthony Ramine
658dc8a501 Rename a couple of Promise methods 2017-09-21 15:35:04 +02:00
bors-servo
581f0bf09a Auto merge of #18590 - hiikezoe:increment-ref-count-for-will-change, r=xidorn
Use Atom::from(nsIAtom) to increment reference count in case of dynam…

…ic atom for will-change.

If we don't increment the reference count for the Atom in servo side, it's
possible to try to release the Atom in servo side even if we have already
released in gecko side.  When it happens, nsIAtom::mKind is no longer reliable.

https://bugzilla.mozilla.org/show_bug.cgi?id=1401809

<!-- 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

<!-- 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/18590)
<!-- Reviewable:end -->
2017-09-21 04:18:28 -05:00
bors-servo
ce7cee75e4 Auto merge of #18591 - chenpighead:stylo-singular-matrix-animation, r=BorisChiou
stylo: do not handle the fallback discrete animation inside the Animate trait

At present, we do the fallback discrete animation for non-invertible matrices in
ComputedMatrix.animate(). However, according to the spec, we should fallback to
discrete animation for cases like:

1. animation between transform with single non-invertible matrix
2. animation between transform with matched transform functions that have at least
   one non-invertible matrix
2. animation between transform with mismatched transform functions that have at
   least one non-invertible matrix.

The current implementation only handles the first case.

Moreover, we already have fallback discrete animation procedures in CSS Animation
and Web Animation, so we should be able to not doing any fallback inside the
Animate trait.

In this patch, we let the animation between non-invertible matrices to return Err().
So, we can propagate the Err() to the callers, and let the fallback discrete
animation procedure stay at the Servo_MatrixTransform_Operate, which is ouside
the Animate trait.

Gecko bug: [Bug 1394284](https://bugzilla.mozilla.org/show_bug.cgi?id=1394284)

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1394284](https://bugzilla.mozilla.org/show_bug.cgi?id=1394284)
- [X] There are wpt tests for these changes, and thet will be landed in [Bug 1394284](https://bugzilla.mozilla.org/show_bug.cgi?id=1394284)

<!-- 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/18591)
<!-- Reviewable:end -->
2017-09-21 03:16:58 -05:00
Jeremy Chen
21148c7e51 stylo: do not handle the fallback discrete animation inside the Animate trait.
At present, we do the fallback discrete animation for non-invertible matrices in
ComputedMatrix.animate(). However, according to the spec, we should fallback to
discrete animation for cases like:

1. animation between transform with single non-invertible matrix
2. animation between transform with matched transform functions that have at least
   one non-invertible matrix
2. animation between transform with mismatched transform functions that have at
   least one non-invertible matrix.

The current implementation only handles the first case.

Moreover, we already have fallback discrete animation procedures in CSS Animation
and Web Animation, so we should be able to not doing any fallback inside the
Animate trait.

In this patch, we let the animation between non-invertible matrices to return Err().
So, we can propagate the Err() to the callers, and let the fallback discrete
animation procedure stay at the Servo_MatrixTransform_Operate, which is ouside
the Animate trait.
2017-09-21 15:30:18 +08:00
Hiroyuki Ikezoe
dcd959fc72 Use Atom::from(nsIAtom) to increment reference count in case of dynamic atom for will-change.
If we don't increment the reference count for the Atom in servo side, it's
possible to try to release the Atom in servo side even if we have already
released in gecko side.  When it happens, nsIAtom::mKind is no longer reliable.
2017-09-21 15:44:26 +09:00
bors-servo
39f8fce453 Auto merge of #18589 - bholley:nth_index_plumbing, r=emilio
Plumbing for the nth-index cache

https://bugzilla.mozilla.org/show_bug.cgi?id=1334730
2017-09-21 01:24:01 -05:00
Bobby Holley
ab9edf3d69 Hoist index computation into a helper.
MozReview-Commit-ID: ALeggMDh92m
2017-09-20 23:22:44 -07:00
Bobby Holley
48466bf876 Introduce an NthIndexCache type and pipe it from ThreadLocalStyleContext to MatchingContext.
Some future refactoring here to pass fewer things as parameters would be nice.
2017-09-20 23:22:38 -07:00
Bobby Holley
05c03d5104 Hoist lookup() into lru_cache.
MozReview-Commit-ID: F5FbKFqpXEh
2017-09-20 23:22:33 -07:00
Bobby Holley
13a3cf27a8 LRUCache::new -> LRUCache::default.
MozReview-Commit-ID: KouOaYTluRx
2017-09-20 23:22:27 -07:00
Bobby Holley
8b6c5988b5 Hoist the LRU cache into its own crate to share it with selectors. 2017-09-20 23:22:20 -07:00
bors-servo
5afb1b7dd2 Auto merge of #18586 - glennw:update-wr-font-vars, r=metajack
Update WR (font variations, runtime dp ratio changes)

<!-- 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/18586)
<!-- Reviewable:end -->
2017-09-21 00:11:15 -05:00
bors-servo
7ce78164bf Auto merge of #18584 - hiikezoe:drop-rule-changed, r=emilio
Drop RulesChanged

It's no longer used.

<!-- 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] These changes do not require tests because this just drops unused code.

<!-- 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/18584)
<!-- Reviewable:end -->
2017-09-20 23:12:56 -05:00
bors-servo
941757bafe Auto merge of #18575 - MortimerGoro:webgl_flickering, r=glennw
Improve Webrender<->WebGL synchronization

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

 Webrender<->WebGL synchronization is not perfect yet, and it has some flickering specially when adding more elements on the page than a single full-screen canvas.

This PR improves the synchronization by using the WR thread to perform the fence wait. All the flickering with multiple elements on the page is gone thanks to this change.

---
<!-- 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 #14235 (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/18575)
<!-- Reviewable:end -->
2017-09-20 22:08:17 -05:00
bors-servo
8bc21d799f Auto merge of #18588 - upsuper:moz-border-colors-array, r=heycam
Use array instead of linked list for -moz-border-*-colors

This is the Servo side change of [bug 1400438](https://bugzilla.mozilla.org/show_bug.cgi?id=1400438). (take 3)

<!-- 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/18588)
<!-- Reviewable:end -->
2017-09-20 21:02:06 -05:00
Xidorn Quan
8cac727f92 Use array instead of linked list for -moz-border-*-colors 2017-09-21 11:37:57 +10:00
Glenn Watson
7858a69624 Update WR (font variations, runtime dp ratio changes) 2017-09-21 10:11:30 +10:00
Hiroyuki Ikezoe
1ff9f70f2a Drop RulesChanged
It's no longer used.
2017-09-21 08:45:55 +09:00
bors-servo
dfb80f0753 Auto merge of #18583 - nnethercote:fix-TypedSize2D, r=mbrubeck
Fix MallocSizeOf for TypedSize2D.

TypedSize2D's MallocSizeOf impl has two problems.

- It measures `width` twice, and `height` not at all.

- It erroneously asserts that `width` and `height` are scalars. This
  seems reasonable at first blush, but Stylo uses
  `BorderRadius<LengthAndPercentage>` which contains a
  `TypedSize2D<LengthAndPercentage, UnknownUnit>`, and
  `LengthAndPercentage` is non-scalar.

This patch fixes both of these problems, and also removes a low-value
`use` statement.

<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1401692

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because tested on the Gecko side.

<!-- 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/18583)
<!-- Reviewable:end -->
2017-09-20 18:38:51 -05:00
Nicholas Nethercote
eeed0b17eb Fix MallocSizeOf for TypedSize2D.
TypedSize2D's MallocSizeOf impl has two problems.

- It measures `width` twice, and `height` not at all.

- It erroneously asserts that `width` and `height` are scalars. This
  seems reasonable at first blush, but Stylo uses
  `BorderRadius<LengthAndPercentage>` which contains a
  `TypedSize2D<LengthAndPercentage, UnknownUnit>`, and
  `LengthAndPercentage` is non-scalar.

This patch fixes both of these problems, and also removes a low-value
`use` statement.
2017-09-21 09:06:20 +10:00
bors-servo
6a791cd7f2 Auto merge of #18578 - asajeffrey:script-window-owns-location, r=KiChjang
Window should own Location, Document shouldn't

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

Document shouldn't own location, Window should.

---
<!-- 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 #18438
- [X] These changes do not require tests because it's an intermittent

<!-- 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/18578)
<!-- Reviewable:end -->
2017-09-20 14:38:31 -05:00
Alan Jeffrey
3d00b0e2ac Window should own Location, Document shouldn't 2017-09-20 14:20:04 -05:00
bors-servo
46ae11b5d0 Auto merge of #18572 - hiikezoe:immportant-in-keyframe, r=emilio
Handle !important in keyframe

<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1400926

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- 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/18572)
<!-- Reviewable:end -->
2017-09-20 13:40:12 -05:00
bors-servo
eefd59e933 Auto merge of #18577 - moz-servo-sync:gecko-backout, r=moz-servo-sync
Backed out changeset 5b56ebe80e22 (bug 1400438) for heap write hazard. r=backout

Backed out changeset 5b56ebe80e22 (bug 1400438) for heap write hazard. r=backout

Backs out https://github.com/servo/servo/pull/18574

<!-- 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/18577)
<!-- Reviewable:end -->
2017-09-20 10:01:07 -05:00
Gecko Backout
7bcd57d3c6 Backed out changeset 5b56ebe80e22 (bug 1400438) for heap write hazard. r=backout
Backs out https://github.com/servo/servo/pull/18574
2017-09-20 14:53:59 +00:00
bors-servo
98e3bb3cdd Auto merge of #18576 - servo:warn, r=nox
Update some dependencies to fix some warnings

"`#[must_use]` on methods is experimental" and "trait bounds are not (yet) enforced in type definitions" are shown despite Cargo using `--cap-lints=allow` for dependencies.

<!-- 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/18576)
<!-- Reviewable:end -->
2017-09-20 07:49:42 -05:00
bors-servo
b49fe47b7d Auto merge of #18574 - upsuper:moz-border-colors-array, r=heycam
Use array instead of linked list for -moz-border-*-colors

This is the Servo side change of [bug 1400438](https://bugzilla.mozilla.org/show_bug.cgi?id=1400438). (take 2)

<!-- 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/18574)
<!-- Reviewable:end -->
2017-09-20 06:40:48 -05:00
bors-servo
44c6bd9fa9 Auto merge of #18573 - servo:TASKS, r=SimonSapin
Introduce TaskOnce

<!-- 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/18573)
<!-- Reviewable:end -->
2017-09-20 05:17:12 -05:00
Simon Sapin
8a84618ca2 Update some dependencies to fix some warnings
"`#[must_use]` on methods is experimental" and
"trait bounds are not (yet) enforced in type definitions"
are shown despite Cargo using `--cap-lints=allow` for dependencies.
2017-09-20 11:50:39 +02:00
Imanol Fernandez
324e56b3d1 Improve Webrender<->WebGL synchronization 2017-09-20 11:48:11 +02:00
Xidorn Quan
4c24ae8d30 Use array instead of linked list for -moz-border-*-colors 2017-09-20 19:05:59 +10:00
Anthony Ramine
6c9fb5ae7a Introduce TaskOnce
Having both TaskBox and TaskOnce allows us to remove the superfluous inner boxing
from CancellableTask<T>.
2017-09-20 10:37:09 +02:00
Anthony Ramine
52527d6f9d Rename Task to TaskBox 2017-09-20 10:07:29 +02:00
Anthony Ramine
f088b708c9 Make Task require Send 2017-09-20 09:40:53 +02:00
bors-servo
3cea16e18f Auto merge of #18571 - bholley:primary_reuse_api, r=emilio
Add a geckolib API to check for primary style reuse

https://bugzilla.mozilla.org/show_bug.cgi?id=1401317

<!-- 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/18571)
<!-- Reviewable:end -->
2017-09-20 02:05:57 -05:00
Hiroyuki Ikezoe
e3232f5c36 Filter out !important property in keyframes for servo. 2017-09-20 15:59:05 +09:00
Hiroyuki Ikezoe
a940999795 Filter out !important property in keyframes for stylo. 2017-09-20 15:58:40 +09:00
Bobby Holley
8000d42582 Bug 1401317 - Disable lazy pseudo caching when the originating element's primary style was reused via the rule node. r=emilio
MozReview-Commit-ID: IkBa39E1bR1
2017-09-19 23:10:21 -07:00
Bobby Holley
4abe8002e9 Bug 1401317 - Make second pass sharing sensitive to DISABLE_STYLE_SHARING_CACHE. r=emilio
MozReview-Commit-ID: 8U0xekMHGg8
2017-09-19 23:09:12 -07:00
bors-servo
8000efac75 Auto merge of #18569 - mrbkap:1398393-cooperative-thread-tagging, r=emilio
Bug 1398393 - Add a way to initialize a cooperative thread in servo.

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

Over in [bug 1398393](https://bugzilla.mozilla.org/show_bug.cgi?id=1398393), I found that when we turn Quantum DOM's cooperative threads on, we hit a Servo panic because we assume that we've set some state in the TLD. The cooperative threads currently have no way of doing this without also re-initializing the log module and some other static data. This small patch gives the cooperative threads a way of informing Servo about themselves.

---
<!-- 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] These changes do not require tests because they will be tested on Gecko's tinderbox once we get cooperative threading working.

<!-- 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/18569)
<!-- Reviewable:end -->
2017-09-20 00:59:35 -05:00
bors-servo
2a97b2cd7c Auto merge of #18567 - glennw:update-wr-subpx-blur, r=wafflespeanut
Update WR (quality improvements for subpx text and blur).

<!-- 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/18567)
<!-- Reviewable:end -->
2017-09-19 23:42:33 -05:00