Commit graph

262 commits

Author SHA1 Message Date
Kunal Mohan
75fb6ca589 Improve intermittent filtering 2020-08-04 21:42:53 +05:30
Patrick Walton
5b36d211b4 Add an implementation of the core float and clear placement logic in layout
2020, not yet wired to the rest of layout.

This commit implements an object that handles the 10 rules in CSS 2.1:

https://www.w3.org/TR/CSS2/visuren.html#float-position

The implementation strategy is that of a persistent balanced binary search tree
of float bands. Binary search trees are commonly used for implementing float
positioning; e.g. by WebKit.  Persistence enables each object that interacts
with floats to efficiently contain a snapshot of the float list at the time
that object was laid out. That way, incremental layout can invalidate and start
reflow at any point in a containing block.

This commit features extensive use of
[QuickCheck](https://github.com/BurntSushi/quickcheck) to ensure that the rules
of the CSS specification are followed.

Because this is not yet connected to layout, floats will not actually be laid
out in Web pages yet.

Note that unit tests as set up in Servo currently require types that they
access to be public. Therefore, some internal layout 2020 types that were
previously private have been made public. This is somewhat unfortunate.

Part of #25167.
2020-07-20 12:42:34 -07:00
Kagami Sascha Rosylight
d01648d637 Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
Josh Matthews
21b670fad8 Run only a supported set of WPT test types by default. 2020-06-03 16:37:59 -04: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
Alan Jeffrey
8bb1732258 Update surfman to 0.2 and remove glutin 2020-04-17 23:44:53 -05:00
Josh Matthews
b54b3aca64
Disable RUST_BACKTRACE in unit tests on macOS. 2020-04-17 18:20:35 -04:00
Josh Matthews
3a8af93abe
Update required clang-format version. 2020-04-15 22:24:09 -04:00
Warren Fisher
6fa50a423e Add default arguments so that ./mach test --all works 2020-01-19 13:20:36 -04:00
Simon Sapin
8fc072a375 Don’t run ensure_bootstrapped when rustup is not used at all.
Linux WPT tasks on our CI don’t have rustup installed.
2020-01-02 19:25:01 +01:00
Simon Sapin
895cf695c4 Fix a Python 3 warning
```
/home/simon/projects/servo/python/servo/testing_commands.py:301:
SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if err is not 0:
```
2020-01-02 16:44:17 +01:00
Simon Sapin
6f70a9c1de mach: always call ensure_bootstrapped before call_rustup_run 2020-01-02 15:30:33 +01:00
Josh Matthews
e922d5e11d Print OSMesa environment variables when starting debugger under WPT. 2019-12-20 11:25:19 -05:00
marmeladema
7b5fabe855 Fix tidiness errors for Python3 compatibility across whole repo 2019-12-11 16:03:20 +00:00
marmeladema
9d04f231f4 Make mach test-tidy --no-wpt compatible with Python3
Note: tidiness tests of Python file using flake8 was effectively
broken since a previous commit for Python3 compatibility
2019-12-11 13:57:07 +00:00
Simon Sapin
7282839cf7 Fix Python Unicode error in './mach filter-intermittents'
Fix https://github.com/servo/servo/issues/25062
2019-12-05 15:48:39 +01:00
Simon Sapin
14f049ddd1 Fix Python Unicode error on macOS CI 2019-12-03 17:55:51 +01:00
Simon Sapin
0ac021c1a5 Include test output in filtered WPT logs 2019-12-03 16:49:23 +01:00
Paul Rouget
b71774d8fe Run test-tidy on Windows 2019-11-21 09:56:39 +01:00
Paul Rouget
b1753fea2d remove allfiles option for clang-format 2019-11-04 12:44:52 +01:00
Paul Rouget
36c1669215 Format support/hololens/ 2019-11-04 07:05:06 +01:00
Paul Rouget
70823e3032 Format CPP code with clang-format 2019-10-30 11:00:33 +01:00
Simon Sapin
c8a49baa80 Add ./mach test-tidy --no-wpt, for a git pre-push hook
Disabling WPT manifest checking brings the time it takes to run tidy
for ~11 seconds to ~3 seconds, which feels reasonable to have in a
git pre-push hook.
This can help avoid forgetting to run tidy before opening a PR.

```
$ chmod +x .git/hooks/pre-push
$ cat .git/hooks/pre-push
#!/bin/sh
set -e
./mach test-tidy --no-wpt
```
2019-10-24 10:30:25 +02:00
marmeladema
865d7377b3 Replace call to execfile(...) by call to exec(compile(open(...)))
This is done in order to be compatible with Python3
2019-10-20 23:43:25 +01:00
marmeladema
5bd0fca140 Use iteritems from six module for Python3 compatibility 2019-10-16 00:22:08 +01:00
marmeladema
f1d42fe787 Use urllib from six module in order to be compatible with Python3 2019-10-16 00:22:07 +01:00
Josh Matthews
050fcc989d Remove intermittent failure reporting. 2019-10-04 09:12:08 -04:00
George Roman
1c4a35e22b Add a HOST_FILE env variable and fix the wdspec setup errors that it causes 2019-07-20 17:06:50 +03:00
Simon Sapin
5cabcd5268 Add --layout-2020 to ./mach test-wpt and ./mach update-wpt
… with separate metadata (expected results) and include manifest.
2019-07-04 18:16:44 +02:00
Simon Sapin
2b01c26aa5 Add ./mach build --with-layout-2020
… with corresponding `layout` and `layout_thread` crates,
which for now do nothing.
2019-07-04 18:16:44 +02:00
Simon Sapin
7c85dc09b5 Share more ./mach build logic with mach check, doc, test-unit
Fixes #23659
2019-07-02 18:29:24 +02:00
Josh Matthews
a690d6ffa7 Add smoketest command. 2019-05-09 15:24:18 -04:00
Paul Rouget
21ed7653f4 Refactoring of the Glutin port in preparation of the compositor refactoring. 2019-04-29 10:04:51 +02:00
Fernando Jiménez Moreno
40337181c3 Make create-wpt mach command use new manifest update implementation 2018-12-24 14:47:09 +01:00
Simon Sapin
1f018b09c8 Create filtered-wpt-errorsummary.log even if it would be empty 2018-12-14 17:08:21 +01:00
Simon Sapin
60130eee83 Write indented JSON in ./mach filter_intermittents 2018-12-13 17:45:41 +01:00
Simon Sapin
9ab2606a54 Fix ./mach filter_intermittents in shallow git clones.
`git log --merges` only shows commits with at least two parents.
Presumably, this only works when the parent commits are in the local repository.
In a shallow clone (`--depth 1`), on the HEAD commit is fetched.

This commit removes the `--merges` filter.
This shouldn’t affect the behavior,
since CI always runs with a merge commit as HEAD.
2018-12-12 20:02:44 +01:00
Gregory Terzian
4eb785cdc0 introduce a background-hang-monitor:
Mac-Os implementation of a thread sampler,
Linux and Windows skeleton implementations.
2018-11-26 14:15:33 +08:00
Bastien Orivel
9a7eeb349a Update crossbeam-channel to 0.3 2018-11-18 19:33:19 +01:00
Pyfisch
694991ad7e Hint ./mach fmt 2018-11-07 20:32:22 +01:00
bors-servo
9c7efd9151
Auto merge of #22127 - Darkspirit:https_intermittent_tracker, r=jdm
Connect to intermittent trackers via https

This is the last part of #22088.
Each https url returns the same with curl as its previous http variant, so it should be a safe change.
And https has already been used at this place in the past: 38474f8671

<!-- 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/22127)
<!-- Reviewable:end -->
2018-11-07 10:13:36 -05:00
Pyfisch
4a947dd719 Remove import order check from test-tidy
Fix leaking file descriptor.
2018-11-06 22:30:31 +01:00
Pyfisch
bf47f90da6 Run rustfmt on test-tidy
Add ./mach fmt command.
Mach installs rustfmt if needed.
2018-11-06 22:28:29 +01:00
Jan Andre Ikenmeyer
d1b5ece9aa
Connect to intermittent trackers via https 2018-11-06 17:02:41 +01:00
bors-servo
910cc23a6e
Auto merge of #21325 - gterzian:crossbeam_integration, r=SimonSapin,jdm
Replace mpsc with crossbeam-channel

Follow up on https://github.com/servo/servo/pull/19515

---

Selecting over multiple channels in `std::sync::mpsc` is not stable and likely never will be:

https://github.com/rust-lang/rust/issues/27800#issuecomment-260136777
> It seems the only thing keeping `mpsc_select` around is Servo.

crossbeam-channel is designed specifically to replace `std::sync::mpsc` and fix many of its shortcomings:
https://github.com/stjepang/rfcs-crossbeam/blob/channel/text/2017-11-09-channel.md

This is to be landed together with https://github.com/servo/ipc-channel/pull/183.

<!-- 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/21325)
<!-- Reviewable:end -->
2018-09-12 13:33:45 -04:00
Gregory Terzian
b977b4994c add servo_channel crate 2018-09-12 11:25:45 +08:00
Manish Goregaokar
5d6701179c Bypass gstreamer check for test-wpt-android 2018-09-11 21:26:58 +05:30
Manish Goregaokar
36797801e9 Allow WPT to be run with local gstreamer 2018-09-11 19:34:38 +05:30
Paul Rouget
6a31864126 Update Gradle and SDK 2018-07-31 22:39:45 +08:00
Paul Rouget
bef2fe83cd new android port: fix android build and tests 2018-07-31 22:39:45 +08:00