Commit graph

39251 commits

Author SHA1 Message Date
Paul Rouget
b71774d8fe Run test-tidy on Windows 2019-11-21 09:56:39 +01:00
bors-servo
5c92fd84ca
Auto merge of #24770 - servo-wpt-sync:wpt_update_18-11-2019, r=servo-wpt-sync
Sync WPT with upstream (18-11-2019)

Automated downstream sync of changes from upstream as of 18-11-2019.
[no-wpt-sync]
r? @servo-wpt-sync
2019-11-18 23:54:42 -05:00
bors-servo
d553158e95
Auto merge of #24685 - shnmorimoto:fix_revoke_blob_url, r=jdm
Fix revoke blob url

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

fix #24290

---
<!-- 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 #24290 (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. -->
2019-11-18 21:41:21 -05:00
bors-servo
18ab860f4c
Auto merge of #24669 - glowe:issue-24628/set-mime-type, r=jdm
Set response mime_type based on Content-Type

<!-- Please describe your changes on the following line: -->
Set the response's `mime_type` based on its `Content-Type` header whenever `Response::set_headers` is called. This ensures that `mime_type` is always consistent with `Content-Type`. The other reason for going with this approach is it relies on `extract_mime_type`: afbcbf75ea/components/script/dom/headers.rs (L260-L261)

Besides the consistency argument, I also expect that we'll update the `extract_mime_type` method to conform with its specification.

Another option I explored was adding a `set_mime_type` member to `Response` and calling that with the mime type from `Metadata::content_type` in `FetchResponseListener::process_response`. I decided against this since it expanded the interface of `Response` and didn't have the same benefits of the first option.

Fixes #24628.

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

<!-- 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. -->
2019-11-18 17:31:47 -05:00
bors-servo
2a5b7be557
Auto merge of #24775 - servo:h, r=jdm
Update harfbuzz-sys

… to pick up https://github.com/servo/rust-harfbuzz/pull/173, which hopefully fixes https://github.com/servo/servo/issues/24611
2019-11-18 15:21:54 -05:00
Simon Sapin
1ebfbd5160 Update harfbuzz-sys
… to pick up https://github.com/servo/rust-harfbuzz/pull/173, which hopefully fixes https://github.com/servo/servo/issues/24611
2019-11-18 19:15:10 +01:00
bors-servo
0d2c2045cc
Auto merge of #24664 - gterzian:fix_port_transfer, r=jdm
Fix loophole in messageport transfer

<!-- 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 #24600 (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. -->
2019-11-18 11:35:25 -05:00
WPT Sync Bot
a68b59d35a Update web-platform-tests to revision b624f9b794b1fbc6672fb744bb0ed18819be4d44 2019-11-18 15:04:31 +00:00
bors-servo
49ec49f637
Auto merge of #24767 - Manishearth:xargoup, r=nox
Update xargo

Fixes https://github.com/servo/servo/issues/24766 (I already built and uploaded a package, and have a local build running using it)

I don't know why this fixes that issue, or why that issue turned up in the first place. But it seems to work!

r? @jdm
2019-11-18 09:22:58 -05:00
Shinichi Morimoto
2d995ba41a check same-origin and url against the blob beign revoked 2019-11-18 22:44:07 +09:00
bors-servo
f890d2e21d
Auto merge of #24768 - servo:wpt0, r=nox
Split WPT macOS testing into many more chunks

## Before this

Before this PR, we had roughly as many chunks as available workers. Because the the number of test files is a poor estimate for the time needed to run them, we have significant variation in the completion time between chunks when testing one given PR.

https://github.com/servo/taskcluster-config/pull/9 adds a tool to collect this data. Here are two full runs of `test_wpt` before this PR:

https://community-tc.services.mozilla.com/tasks/groups/DBt9ki9gTdWmwAk-VDorzw

```
count 1, total 0:00:32, max: 0:00:32    docker  0:00:32
count 1, total 0:59:14, max: 0:59:14    macos-disabled-mac1     0:59:14
count 6, total 4:12:16, max: 1:01:14    macos-disabled-mac1 WPT 0:40:29 0:18:55 0:46:50 0:44:38 1:01:14 0:40:10
count 1, total 0:55:19, max: 0:55:19    macos-disabled-mac9     0:55:19
count 6, total 4:25:09, max: 1:01:40    macos-disabled-mac9 WPT 0:37:58 0:37:24 0:27:18 1:01:40 0:46:17 0:54:31
```

Times for a given chunk vary between 19 minutes and 61 minutes. Assuming no `try` testing, with Homu’s serial scheduling of `r+` testing this means that that worker sits idle for 42 minutes and our limited CPU resources are under-utilized.

When there *are* `try` PRs being tested however, they compete with each other and any `r+` PR for the same workers. If we get unlucky, a 61 minute task could only *start* after some other tasks have finished, Increasing the overall time-to-merge a lot.

## This

This PR changes the number of chunks to be significantly more than the number of available workers. When one of them finishes, that worker can pick up another one instead of sitting idle.

Now the ratio of number of tasks to number of workers doesn’t matter: the differences in run time between tasks becomes somewhat of an advantage and the distribution to workers evens out on average.

The number 30 is a bit arbitrary. A higher number reduces resource under-utilization, but increases the effect of per-task overhead. The git cache added in https://github.com/servo/servo/pull/24753 reduced that overhead, though.

Another worry I had was whether this would make worse the similar problem of unequal scheduling between processes within a task, where some CPU cores sit idle while the rest processes finish their assigned work.

This turned out not to be enough of a problem to negatively affect the total machine time:

https://community-tc.services.mozilla.com/tasks/groups/VnDac92HQU6QmrpzWPCR2w
```
count 1, total 0:00:48, max: 0:00:48    docker  0:00:48
count 1, total 0:39:04, max: 0:39:04    macos-disabled-mac9     0:39:04
count 31, total 4:03:29, max: 0:15:29   macos-disabled-mac9 WPT
        0:07:26 0:08:39 0:04:21 0:07:13 0:12:47 0:10:11 0:04:01 0:03:36
        0:10:43 0:12:57 0:04:47 0:04:06 0:10:09 0:12:00 0:12:42 0:04:40
        0:04:24 0:12:20 0:12:15 0:03:03 0:07:35 0:11:35 0:07:01 0:04:16
        0:09:40 0:05:08 0:05:01 0:06:29 0:15:29 0:02:28 0:06:27
```

(4h03min is even lower than above, but seems within variation.)

## After this

https://github.com/servo/servo/issues/23655 proposes automatically restarting failed WPT tasks, in case the failure is intermittent. With the test suite split into more chunks we have fewer tests per chunk, and therefore lower probability that a given one fails. Restarting one of them also causes less repeated work.
2019-11-18 07:45:34 -05:00
Simon Sapin
67b0b97d4f Zero-pad the chunk number in WPT task names 2019-11-18 11:21:38 +01:00
Simon Sapin
e5f6333832 Only use high prority for macOS when testing a PR for merging. 2019-11-18 11:05:49 +01:00
Simon Sapin
1762cba533 Don’t pretend that update_wpt() doesn’t use debug assertions
It already was, since the key given to `find_or_create()`
did not include `args`.
2019-11-18 11:05:49 +01:00
Simon Sapin
26ca284ec2 Raise the priority of decision tasks
… since they block everything else.
2019-11-18 11:05:49 +01:00
Simon Sapin
fe23add637 Raise the priority of the release build task for WPT on macOS
… since other time-sensitive tasks depend on them.

Note: we need to be careful with task priorities,
especially in worker pools with limited capacity,
since they are absolute and can cause starvation:

https://docs.taskcluster.net/docs/manual/tasks/priority
2019-11-18 11:05:49 +01:00
Simon Sapin
b19b821985 Split WPT macOS testing into many more chunks
## Before this

Before this PR, we had roughly as many chunks as available workers.
Because the the number of test files is a poor estimate for the time
needed to run them, we have significant variation in the completion time
between chunks when testing one given PR.

https://github.com/servo/taskcluster-config/pull/9 adds a tool to collect
this data. Here are two full runs of `test_wpt` before this PR:

https://community-tc.services.mozilla.com/tasks/groups/DBt9ki9gTdWmwAk-VDorzw

```
count 1, total 0:00:32, max: 0:00:32	docker	0:00:32
count 1, total 0:59:14, max: 0:59:14	macos-disabled-mac1	0:59:14
count 6, total 4:12:16, max: 1:01:14	macos-disabled-mac1 WPT	0:40:29 0:18:55 0:46:50 0:44:38 1:01:14 0:40:10
count 1, total 0:55:19, max: 0:55:19	macos-disabled-mac9	0:55:19
count 6, total 4:25:09, max: 1:01:40	macos-disabled-mac9 WPT	0:37:58 0:37:24 0:27:18 1:01:40 0:46:17 0:54:31
```

Times for a given chunk vary between 19 minutes and 61 minutes.
Assuming no `try` testing, with Homu’s serial scheduling of `r+` testing
this means that that worker sits idle for 42 minutes
and our limited CPU resources are under-utilized.

When there *are* `try` PRs being tested however, they compete with
each other and any `r+` PR for the same workers. If we get unlucky,
a 61 minute task could only *start* after some other tasks have finished,
Increasing the overall time-to-merge a lot.

## This

This PR changes the number of chunks to be significantly more
than the number of available workers. When one of them finishes,
that worker can pick up another one instead of sitting idle.

Now the ratio of number of tasks to number of workers doesn’t matter:
the differences in run time between tasks becomes somewhat of an advantage
and the distribution to workers evens out on average.

The number 30 is a bit arbitrary. A higher number reduces resource
under-utilization, but increases the effect of per-task overhead.
The git cache added in https://github.com/servo/servo/pull/24753
reduced that overhead, though.

Another worry I had was whether this would make worse the similar problem
of unequal scheduling between processes within a task,
where some CPU cores sit idle while the rest processes finish their
assigned work.

This turned out not to be enough of a problem to negatively affect
the total machine time:

https://community-tc.services.mozilla.com/tasks/groups/VnDac92HQU6QmrpzWPCR2w
```
count 1, total 0:00:48, max: 0:00:48	docker	0:00:48
count 1, total 0:39:04, max: 0:39:04	macos-disabled-mac9	0:39:04
count 31, total 4:03:29, max: 0:15:29	macos-disabled-mac9 WPT
	0:07:26 0:08:39 0:04:21 0:07:13 0:12:47 0:10:11 0:04:01 0:03:36
	0:10:43 0:12:57 0:04:47 0:04:06 0:10:09 0:12:00 0:12:42 0:04:40
	0:04:24 0:12:20 0:12:15 0:03:03 0:07:35 0:11:35 0:07:01 0:04:16
	0:09:40 0:05:08 0:05:01 0:06:29 0:15:29 0:02:28 0:06:27
```

(4h03min is even lower than above, but seems within variation.)

## After this

https://github.com/servo/servo/issues/23655 proposes automatically
restarting failed WPT tasks, in case the failure is intermittent.
With the test suite split into more chunks we have fewer tests per chunk,
and therefore lower probability that a given one fails.
Restarting one of them also causes less repeated work.
2019-11-18 11:04:58 +01:00
Simon Sapin
1ca9c5b96b Move "extra" WPT testing to its own task (chunk "zero") 2019-11-18 09:47:05 +01:00
Manish Goregaokar
77e3311bfb Update xargo 2019-11-18 00:27:27 -08:00
bors-servo
dfa78986a6
Auto merge of #24753 - servo:mainstream-brew, r=jdm
Use an already-installed Homebrew at /usr/local

This requires https://github.com/servo/taskcluster-config/pull/4 to be deployed.

Having the standard location helps `pkg-config` (CC https://github.com/servo/servo/pull/24688), and allows installing pre-compiled pakcages (which is much faster than compiling from source).
2019-11-17 17:49:14 -05:00
bors-servo
d1db623dfc
Auto merge of #24761 - servo-wpt-sync:wpt_update_17-11-2019, r=jdm
Sync WPT with upstream (17-11-2019)

Automated downstream sync of changes from upstream as of 17-11-2019.
[no-wpt-sync]
r? @servo-wpt-sync
2019-11-17 15:12:16 -05:00
Josh Matthews
e6e440683d
Remove intermittent failure. 2019-11-17 10:34:45 -05:00
bors-servo
a7008d1cf7
Auto merge of #24665 - saschanaz:timerhandler, r=nox
Use TimerHandler IDL union type

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

<!-- 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. -->
2019-11-17 10:30:51 -05:00
WPT Sync Bot
ea00d34098 Update web-platform-tests to revision 89aa3f42131cce5a77268ddaeb2fab8a2e29c2a6 2019-11-17 14:10:26 +00:00
Simon Sapin
0dad48f54f macOS CI: use a cache of github.com/servo/servo
Relies on https://github.com/servo/taskcluster-config/pull/6
2019-11-17 09:08:21 +01:00
bors-servo
39963266ae
Auto merge of #24749 - saschanaz:windows-rls, r=SimonSapin
Update to rustc 1.41.0-nightly (1bd30ce2a 2019-11-15)

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

This is for devs on Windows where the current nightly version of RLS (2019-10-26) is not available.

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

<!-- 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. -->
2019-11-17 00:22:59 -05:00
bors-servo
5372931eaa
Auto merge of #24746 - jdm:chains-update, r=asajeffrey
Update surfman-chains

This allows us to get usable results out of babylon demos on the HoloLens 2, and gets us much closer to usable results on desktop.
2019-11-16 22:31:12 -05:00
bors-servo
2c09f94358
Auto merge of #24736 - paulrouget:layoutissue, r=SimonSapin
layout: Ensure abs-pos elements establish block formatting contexts

Updating #16310

---
<!-- 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 #13495 (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. -->
2019-11-16 20:20:15 -05:00
bors-servo
901fef5fa9
Auto merge of #24742 - servo:jdm-patch-34, r=asajeffrey
Reduce unnecesarily large borrow in script thread

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24730
- [x] There are tests for these changes
2019-11-16 18:32:27 -05:00
bors-servo
db9430755b
Auto merge of #24741 - saneyuki:mailmap, r=jdm
Update Tetsuharu OHZEKI's entry in mailmap

I no longer use these mail addresses (the former is still reachable but I cannot access to the later one). I'll update them with reachable one by myself.
2019-11-16 16:29:33 -05:00
bors-servo
04119ed84b
Auto merge of #24732 - jdm:wptfixes, r=asajeffrey
Address upstream WPT test harness changes

https://github.com/web-platform-tests/wpt/pull/19449 and https://github.com/web-platform-tests/wpt/pull/19993 caused some of our proprietary tests to silently start to fail. This addresses all of the breakage.
2019-11-16 12:27:30 -05:00
bors-servo
5670a4543c
Auto merge of #24734 - paulrouget:tooltip, r=jdm
Better tooltip for UWP port

Fix #24721
2019-11-16 09:23:01 -05:00
Simon Sapin
657fead0ce Don’t fetch git tags 2019-11-16 14:26:37 +01:00
Simon Sapin
188dd9e7ab Reduce git fetch depth. 100 still takes quite some time!
```
(git init servo.git &&
    cd servo.git &&
    time git fetch https://github.com/servo/servo master $ARGS &&
); rm -rf servo.git

Full: 724.75 MiB
      57s home fiber in Paris
    1m25s AWS us-west-2 Oregon
    3m23s Macstadium DC1 Atlanta
    4m22s Macstadium DC2 Las Vegas

--depth 100: 129.00 MiB
    1m21s home
    1m18s AWS
    1m30s Macstadium 1
    1m24s Macstadium 2

--depth 50: 97.62 MiB
    30s home
    30s AWS
    41s Macstadium 1
    40s Macstadium 2

--depth 30: 92.47 MiB
    17s home
    18s AWS
    27s Macstadium 1
    26s Macstadium 2

--depth 10: 88.25 MiB
    11s home
    12s AWS
    26s Macstadium 1
    25s Macstadium 2

--depth 1: 87.53 MiB
    10s home
    10s AWS
    22s Macstadium 1
    28s Macstadium 2
```
2019-11-16 14:15:52 +01:00
Simon Sapin
a74046a3b6 Print timing of git operations 2019-11-16 14:15:15 +01:00
Simon Sapin
591d7ad6c1 Make Cargo print timing information to stdout
This adds lines such as

```
   Completed cssparser v0.27.1 custom-build in 2.4s
   Completed cssparser v0.27.1 custom-build (run) in 0.6s
   Completed cssparser v0.27.1 in 1.1s
```
2019-11-16 14:11:52 +01:00
Simon Sapin
50d5bac736 Reduce macOS build task timeout 2019-11-16 10:11:36 +01:00
Simon Sapin
8b39fd3c7b Verbose Homebrew 2019-11-16 10:10:13 +01:00
Kagami Sascha Rosylight
0621943290 Update to rustc 1.41.0-nightly (1bd30ce2a 2019-11-15) 2019-11-16 11:54:47 +09:00
bors-servo
d92f705573
Auto merge of #24750 - servo:register-tool, r=jdm
Use `#![register_tool]` instead of `Registry::register_attribute`

CC https://github.com/rust-lang/rust/pull/66344, https://github.com/rust-lang/rust/issues/66079
2019-11-15 17:07:13 -05:00
Simon Sapin
d04a2745c6 Make the macOS worker type configurable 2019-11-15 22:21:06 +01:00
Simon Sapin
9b17deb11e Install zlib on macOS
https://community-tc.services.mozilla.com/tasks/fcbLrz33RHeshgRZGvSAjg/runs/0/logs/https%3A%2F%2Fcommunity-tc.services.mozilla.com%2Fapi%2Fqueue%2Fv1%2Ftask%2FfcbLrz33RHeshgRZGvSAjg%2Fruns%2F0%2Fartifacts%2Fpublic%2Flogs%2Flive.log#L1359

Note that the above is on macOS 10.15. Maybe previous versions provided zlib system-wide?
2019-11-15 22:20:47 +01:00
Simon Sapin
c292b1aaf0 Expect Homebrew to already be installed and in $PATH 2019-11-15 22:20:40 +01:00
Josh Matthews
4041cafab0 Update test manifest. 2019-11-15 13:53:26 -05:00
Simon Sapin
bea73951db Use #![register_tool] instead of #![register_attr]
CC https://github.com/rust-lang/rust/issues/66079
2019-11-15 17:24:42 +01:00
Simon Sapin
091feba0ba Use #![register_attr(…)] instead of Registry::register_attribute
CC https://github.com/rust-lang/rust/pull/66344, https://github.com/rust-lang/rust/issues/66080
2019-11-15 16:46:50 +01:00
Josh Matthews
a1df2a75d0 Fix test syntax error. 2019-11-15 10:39:40 -05:00
Josh Matthews
ebf54c9788 Convert deprecated single-page tests to use proper test harness. 2019-11-15 10:37:55 -05:00
bors-servo
b9cdf9ebda
Auto merge of #24728 - servo:tc-readme, r=jdm
Update etc/taskcluster/README.md for Community-TC migration
2019-11-15 09:03:29 -05:00
Gregory Terzian
a256f2fcce fix complete messageport transfer 2019-11-15 14:13:04 +08:00