Commit graph

30538 commits

Author SHA1 Message Date
bors-servo
48c715c1c8 Auto merge of #18966 - chenpighead:Bug1399049-transform-animate-refactoring, r=hiikezoe
stylo: Avoid using InterpolateMatrix as a fallback for matched transform function pair

In the current implementation, if there is any interpolation error in a matched
transform function pair, we fall-back to use InterpolateMatrix unconditionally.
However, the error could be caused by:

1. mismatched transform function pair
2. matched transform function pair within at least one undecomposable matrix.

Using InterpolateMatrix for case 1 makes sense, however, using InterpolateMatrix
for case 2 does not. According to the spec, we should just report error for
case 2, and let the caller do the fallback procedure. Using InterpolateMatrix
for case 2 will go through more unnecessary code path, and produce more memory
usage and calculation cost, which should be avoidable.

In this patch, we add an extra pass to check if a transform function pair have
matched operations in advance. With this information, we can easily tell whether
the interpolation error in a equal-length transform function pair is caused by
case 1 or case 2. So, we can avoid the unnecessary cost.

---
<!-- 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 [Bug 1399049](https://bugzilla.mozilla.org/show_bug.cgi?id=1399049)
- [X] These changes do not require tests because the change is for some performance gain, and we have tests to ensure that we won't regress the existing behavior already.

<!-- 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/18966)
<!-- Reviewable:end -->
2017-10-21 01:39:41 -05:00
bors-servo
bdc7919cef Auto merge of #18959 - glennw:css-run, r=jdm
Add iterpath and iterdir to CSS test runner.

This allows running a subset of the CSS tests again, by specifying
a directory or single test.

Fixes #18931.

<!-- 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/18959)
<!-- Reviewable:end -->
2017-10-20 23:56:11 -05:00
bors-servo
1b08bfc5c0 Auto merge of #18957 - mhaessig:fire-mouse-event-enum, r=jdm
Made fire_mouse_event take an enum for event_name

Added an enum with the mouse event options for `fire_mouse_event` and refactored the `event_name` parameter to take the enum as argument.
I also added two options (Leave and Enter) which are noted as todo in the comments.

- [x] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These Changes fix #18943.
- [X] These changes do not require tests because the issue said a clean build suffices.

<!-- 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/18957)
<!-- Reviewable:end -->
2017-10-20 22:14:43 -05:00
bors-servo
a71470abe5 Auto merge of #18952 - jdm:no-leak-on-shutdown, r=nox
Do not trace Rust values when thread is shutting down.

This addresses a paint point when using debug-mozjs builds. jonco says that it is considered a leak when objects stored in side tables in a SpiderMonkey embedding are traced right before shutting down. This PR adds a per-thread flag that controls whether to run the Rust-side trace hooks, which is automatically toggled before the final GC occurs when destroying a JS runtime.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #18948 and fix #18947.
- [x] These changes do not require tests because we don't use debug-mozjs on CI

<!-- 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/18952)
<!-- Reviewable:end -->
2017-10-20 20:28:03 -05:00
bors-servo
ba9af5c124 Auto merge of #18977 - Manishearth:map-len, r=Gankro
Include map length in diagnostics

If this doesn't match with the size it's more likely for anything caught
t be hardware corruption. If it does the situation is more interesting.

<!-- 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/18977)
<!-- Reviewable:end -->
2017-10-20 18:52:54 -05:00
Manish Goregaokar
a10329f8ff Include map length in diagnostics 2017-10-20 16:31:42 -07:00
bors-servo
d6042707a6 Auto merge of #18956 - glennw:update-wr-ellipse-bs, r=jdm
Update WR (box shadows + per-corner radii, elliptical clips).

<!-- 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/18956)
<!-- Reviewable:end -->
2017-10-20 16:47:30 -05:00
Manuel Hässig
78583ee339 made fire_mouse_event take an enum for event_name 2017-10-20 23:12:05 +02:00
bors-servo
e40d76da7a Auto merge of #18975 - emilio:gecko-backout-manually, r=emilio
Backed out changeset 196206f129ef (bug 1403213) for referencing non-e…

…xisting xpcom/rust/gtest/moz.build in xpcom/moz.build. r=backout on a CLOSED TREE

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

Manual backout because moz-servo-sync is drunk.

<!-- 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/18975)
<!-- Reviewable:end -->
2017-10-20 14:44:11 -05:00
Gecko Backout
662b2e7397 Backed out changeset 196206f129ef (bug 1403213) for referencing non-existing xpcom/rust/gtest/moz.build in xpcom/moz.build. r=backout on a CLOSED TREE
Backs out https://github.com/servo/servo/pull/18941
2017-10-20 19:33:29 +00:00
Josh Matthews
c075372739 Do not trace Rust values when thread is shutting down. 2017-10-20 13:50:40 -04:00
bors-servo
7e0f5afa83 Auto merge of #18941 - mystor:nsstring, r=mystor
Move nsstring from gecko into servo/support/gecko/nsstring

This is the servo side of bug 1403213.

This cannot merge until https://bugzilla.mozilla.org/show_bug.cgi?id=1377351 merges. It is currently on inbound. This will break autoland when it merges until the gecko-side part has also landed.

<!-- 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/18941)
<!-- Reviewable:end -->
2017-10-20 12:32:05 -05:00
Imanol Fernandez
a721b68249 Update offscreen_gl_context to v0.12 2017-10-20 19:30:14 +02:00
Matt Brubeck
9cadf0981a Remove unnecessary Result::ok calls 2017-10-20 09:11:38 -07:00
Matt Brubeck
c169f52b25 Use env::var_os to read paths from the environment
This avoids unnecessary UTF-8 validation on OsStrings that we just pass
back to the OS.
2017-10-20 09:03:21 -07:00
Matt Brubeck
2d45e9d2da Use try syntax for Option where appropriate 2017-10-20 08:25:35 -07:00
bors-servo
d4bdb8b293 Auto merge of #18953 - servo:keep, r=jdm
Fix './mach clean-nightlies --keep 3' not keeping anything.

This affects CI, re-downloading Nightly for every build.

<!-- 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/18953)
<!-- Reviewable:end -->
2017-10-20 10:06:31 -05:00
Nika Layzell
ec5cf5ceaf Move nsstring from gecko into servo/support/gecko/nsstring
This is the servo side of bug 1403213.

MozReview-Commit-ID: HFdQiuMnGhJ
2017-10-20 10:52:57 -04:00
bors-servo
91077ee418 Auto merge of #18946 - cynicaldevil:update-h5e, r=nox
Update h5e version

<!-- 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: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (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/18946)
<!-- Reviewable:end -->
2017-10-20 08:49:09 -05:00
Alexis Beingessner
f7f898b3b3
Report hash value at HashMap corruption location. 2017-10-20 15:15:22 +02:00
bors-servo
041bd626ac Auto merge of #18942 - servo:static.rlo, r=jdm,mbrubeck
Bootstrap from more permanent URLs

The `rust-lang-ci` S3 bucket is ephemeral. `static-rust-lang-org.s3.amazonaws.com` is not going away soon, but using `static.rust-lang.org` when possible keeps things working if it ever does.

https://internals.rust-lang.org/t/updates-on-rusts-ci-uploads/6062
https://internals.rust-lang.org/t/public-stable-rust-services/6072

We’ll still need to find a solution for "alt" rustc builds. In the meantime, this is a step.

<!-- 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/18942)
<!-- Reviewable:end -->
2017-10-20 07:44:26 -05:00
bors-servo
5d16c7353a Auto merge of #18955 - servo:jdm-patch-4, r=emilio
Set up llvm for osmesa.

This fixes #18954.

<!-- 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/18955)
<!-- Reviewable:end -->
2017-10-20 06:30:58 -05:00
bors-servo
7b61e3b6ee Auto merge of #18963 - heycam:rm-property-id, r=upsuper
geckolib: Make Servo_DeclarationBlock_RemovePropertyById return whether it did remove a property.

From https://bugzilla.mozilla.org/show_bug.cgi?id=1408311, reviewed there by Xidorn.

<!-- 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/18963)
<!-- Reviewable:end -->
2017-10-20 05:26:18 -05:00
bors-servo
b1e6f05ae4 Auto merge of #18962 - upsuper:tree-pseudos, r=emilio
Support matching for ::-moz-tree-* pseudo-elements

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

<!-- 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/18962)
<!-- Reviewable:end -->
2017-10-20 04:18:53 -05:00
bors-servo
44eeb1999b Auto merge of #18936 - heycam:document-state, r=emilio
style: Keep track of document state dependencies.

Servo half of https://bugzilla.mozilla.org/show_bug.cgi?id=1390694, reviewed there by Emilio.

<!-- 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/18936)
<!-- Reviewable:end -->
2017-10-20 02:56:47 -05:00
Jeremy Chen
d7a5f22408 stylo: Avoid using InterpolateMatrix as a fallback for matched transform function pair.
In the current implementation, if there is any interpolation error in a matched
transform function pair, we fall-back to use InterpolateMatrix unconditionally.
However, the error could be caused by:

1. mismatched transform function pair
2. matched transform function pair within at least one undecomposable matrix.

Using InterpolateMatrix for case 1 makes sense, however, using InterpolateMatrix
for case 2 does not. According to the spec, we should just report error for
case 2, and let the caller do the fallback procedure. Using InterpolateMatrix
for case 2 will go through more unnecessary code path, and produce more memory
usage and calculation cost, which should be avoidable.

In this patch, we add an extra pass to check if a transform function pair have
matched operations in advance. With this information, we can easily tell whether
the interpolation error in a equal-length transform function pair is caused by
case 1 or case 2. So, we can avoid the unnecessary cost.

Gecko bug: Bug 1399049
2017-10-20 15:04:43 +08:00
Cameron McCormack
98698b7801 geckolib: Add FFI function for checking document state dependencies. 2017-10-20 13:13:14 +08:00
Cameron McCormack
d58c967efa style: Record DocumentState dependencies. 2017-10-20 13:13:13 +08:00
Cameron McCormack
c22dba0b87 style: Remove unused SelectorImpl::pseudo_class_state_flag. 2017-10-20 13:12:44 +08:00
Cameron McCormack
2f21070701 style: Remove Stylist::might_have_state_dependency.
We always know for sure whether we have a dependency on particular
event state bits, so just use has_state_dependency.
2017-10-20 13:12:44 +08:00
bors-servo
c14e27ed59 Auto merge of #18695 - Coder206:vectorImage, r=metajack
Add an vector version of the Servo logo

This PR is a continuation of #18665. I wanted to make a separate branch on my fork for this PR.

<!-- 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/18695)
<!-- Reviewable:end -->
2017-10-19 23:11:29 -05:00
Cameron McCormack
01ed7fe4dd geckolib: Make Servo_DeclarationBlock_RemovePropertyById return whether it did remove a property. 2017-10-20 12:00:32 +08:00
Xidorn Quan
2dc714f0ac Implement XUL tree pseudo style resolution for stylo. 2017-10-20 14:08:56 +11:00
Xidorn Quan
915890af77 Correct pseudo element type of tree pseudos. 2017-10-20 14:08:38 +11:00
Xidorn Quan
cd527733c5 Make tree pseudos not precomputed since they are not really anonymous boxes. 2017-10-20 14:08:36 +11:00
Xidorn Quan
4ce3dc7729 Add slots in PerPseudoElementMap for tree pseudos. 2017-10-20 14:08:35 +11:00
Xidorn Quan
b743d68ccd Accept argument-less tree pseudo-element selector. 2017-10-20 14:08:33 +11:00
Xidorn Quan
a2182f8dc3 Store args of tree pseudo-elements as Atom. 2017-10-20 14:08:31 +11:00
bors-servo
21926e0008 Auto merge of #18961 - servo:jdm-patch-5, r=glennw
Update mozlog dependency

wptrunner repends on mozlog 3.5, but we only require 3.3. Somehow some of the builders have 3.5 installed, but this is causing lots of problems for us.

<!-- 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/18961)
<!-- Reviewable:end -->
2017-10-19 20:52:19 -05:00
Glenn Watson
aaaf644c91 Update WR (box shadows + per-corner radii, elliptical clips). 2017-10-20 11:30:00 +10:00
Josh Matthews
ab80031091 Update mozlog dependency 2017-10-19 20:10:20 -04:00
bors-servo
89c1892b30 Auto merge of #18960 - emilio:gecko-backout-manually, r=emilio
Backed out changeset e64e659c077d: servo PR #18809 and revendor for r…

…eftest failures, e.g. in layout/reftests/bugs/392435-1.html. r=backout on a CLOSED TREE

Backs out https://github.com/servo/servo/pull/18809
2017-10-19 17:50:24 -05:00
Glenn Watson
d42a00db60 Add iterpath and iterdir to CSS test runner.
This allows running a subset of the CSS tests again, by specifying
a directory or single test.

Fixes #18931.
2017-10-20 08:34:27 +10:00
Gecko Backout
11c64178d8 Backed out changeset e64e659c077d: servo PR #18809 and revendor for reftest failures, e.g. in layout/reftests/bugs/392435-1.html. r=backout on a CLOSED TREE
Backs out https://github.com/servo/servo/pull/18809
2017-10-19 21:26:51 +00:00
Simon Sapin
404c722920 Only pass cafile argument to urlopen in Python versions that support it. 2017-10-19 19:56:18 +02:00
Simon Sapin
aa62942fbd Bootstrap: use 'certifi' package to obtain up-to-date root CA list.
The default root CA store on our Windows CI builders does not
trust static.rust-lang.org
2017-10-19 18:43:36 +02:00
Josh Matthews
4451a3536b Set up llvm for osmesa. 2017-10-19 12:06:11 -04:00
bors-servo
fe16c1d5c3 Auto merge of #18809 - Eijebong:bitflags, r=nox
Update bitflags to 1.0 in every servo crate

It still needs dependencies update to remove all the other bitflags
versions.

- [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 it's a dependency update

<!-- 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/18809)
<!-- Reviewable:end -->
2017-10-19 10:35:08 -05:00
Simon Sapin
8169383485 Fix './mach clean-nightlies --keep 3' not keeping anything. 2017-10-19 17:10:24 +02:00
bors-servo
07e9794306 Auto merge of #18944 - servo:jemallocator2, r=nox
Stop relying on linking details of std’s default allocator

We’ve been bitten before by symbol names changing: https://github.com/servo/heapsize/pull/46, and upstream is planning to stop using jemalloc by default: https://github.com/rust-lang/rust/issues/33082#issuecomment-309781465

So use the (relatively) new `#[global_allocator]` attribute to explicitly select the system allocator on Windows and jemalloc (now in an external crate) on other platforms. This choice matches current defaults.

<!-- 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/18944)
<!-- Reviewable:end -->
2017-10-19 09:15:17 -05:00