Commit graph

35080 commits

Author SHA1 Message Date
Jan Andre Ikenmeyer
860422d1dc
Optional Windows Taskcluster dependency should be able to use TLS 1.2 2018-11-06 17:29:43 +01:00
Jan Andre Ikenmeyer
82bd1e51c7
Ensuring https for Windows Taskcluster 2018-11-06 13:00:47 +01:00
bors-servo
e217672c1a
Auto merge of #22092 - paulrouget:thread_count, r=manishearth
Count threads at shutdown, warn if not all finished and optionally block

On Desktop, after servo shutdown, the process exits, killing all the still-running threads.
On mobile, the process doesn't necessarily shutdown, and we are left with multiple threads failing to use channels, printing warning and panicking.

In the future, we'd like to do a clean shutdown, as in, shutdown only once all the threads have properly finished.

For now, I'm printing a warning if all the threads are not finished, and also add an option to only exit if all the threads have finished.

This only works on MacOS for now, in C, as I haven't found a Rust/multiplatform way to count running threads.

I recommend trying to run servo with `--clean-shutdown` option. Interesting to see how long it takes for other threads to shutdown, and see which threads start panicking.

---
<!-- 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
- [ ] 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/22092)
<!-- Reviewable:end -->
2018-11-06 02:26:39 -05:00
Paul Rouget
2718675191 Count threads at shutdown and warn if not all finished 2018-11-06 07:50:04 +01:00
bors-servo
e265fcfc3c
Auto merge of #22094 - asajeffrey:magicleap-shutdown, r=paulrouget
Shut down Servo when the ML app quits

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

Shut down servo when shutting down the magic leap app.

---
<!-- 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 we don't test ML

<!-- 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/22094)
<!-- Reviewable:end -->
2018-11-06 01:08:07 -05:00
bors-servo
7a3daac613
Auto merge of #22112 - servo:webgl, r=jdm
Implement WEBGL_color_buffer_float and EXT_color_buffer_half_float

<!-- 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/22112)
<!-- Reviewable:end -->
2018-11-06 00:04:43 -05:00
bors-servo
c86b183d5d
Auto merge of #22103 - Eijebong:formdata, r=jdm
Use a BTreeMap to store formdata

I'm really unsure about the MallocSizeOf of BTreeMap as I took the same
code as for HashMap.

Fixes #13105
Fixes #21381

<!-- 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/22103)
<!-- Reviewable:end -->
2018-11-05 22:50:40 -05:00
bors-servo
58b9969b09
Auto merge of #22116 - jdm:gleamup, r=nox
Update gleam.

This allows running the three.js examples on Pixel 1 devices.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22082
- [x] These changes do not require tests because no real android test coverage.

<!-- 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/22116)
<!-- Reviewable:end -->
2018-11-05 21:03:14 -05:00
bors-servo
b00ee41ac1
Auto merge of #22099 - pyfisch:net-fmt, r=jdm
Format net and net_traits crates

Manually formatted the fetch_scheme file portion to limit right drift.

Part of #21373

<!-- 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/22099)
<!-- Reviewable:end -->
2018-11-05 16:03:58 -05:00
bors-servo
ddc85098af
Auto merge of #22051 - mandreyel:track-focused-bc-of-each-tlbc, r=cbrewster
Update Constellation to track each browser's focused browsing context

Since there may be multiple browsers (top-level browsing contexts), each has a focused browsing context. However, we were not keeping track of each browser's focused browsing context, so e.g when switching tabs the `Constellation::focused_browsing_context_id` would not be set to the switched-to browser's focused browsing context.

This PR introduces a `browser_ids` `HashMap` in constellation, that maps each of the top-level browsing context's ids to their currently focused browsing context's id, so that when the active browser is changed with the `SelectBrowser` message, we can look up and restore the selected browser's focused browsing context.

This is a wip. For one, I'm not a fan of adding another hash map to constellation, and since there already is a hash map for keeping track of a browser's joint session history, we could introduce some `Browser` struct to hold data for a browser like its session history and focused browsing context (and possibly more later). But wanted to implement the bare-bones logic to first ensure correctness and will refactor later. Also, we may need new tests but I'm not sure.

---
<!-- 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 #17401 (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/22051)
<!-- Reviewable:end -->
2018-11-05 13:23:30 -05:00
Josh Matthews
cd9495fd19 Update gleam. 2018-11-05 11:29:39 -05:00
Alan Jeffrey
6088ade746 Argh tabs vs spaces 2018-11-05 10:00:08 -06:00
Alan Jeffrey
747122fb63 Responding to review comments 2018-11-05 09:57:26 -06:00
bors-servo
5e52992c6b
Auto merge of #22097 - fabrizio8:unused_scroll, r=emilio
Unused scroll

Combined on_scroll_window_event with on_scroll_start_window_event and on_scroll_end_window_event

---
<!-- 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 #22075  (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes:
- Ran unit-test, test-tidy with no errors,  and tested scrolling on webpages
- [ ] These changes do not require tests

<!-- 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/22097)
<!-- Reviewable:end -->
2018-11-05 10:47:50 -05:00
bors-servo
8205575488
Auto merge of #21864 - ferjm:android.gst.binaries.update, r=SimonSapin
Update GStreamer binaries for Android. Include required codecs

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

This should finally work for both armv7 and x86. I moved the binaries from Github to S3.
<!-- 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/21864)
<!-- Reviewable:end -->
2018-11-05 09:11:15 -05:00
Josh Matthews
e31462c37c Implement WEBGL_color_buffer_float and EXT_color_buffer_half_float (fixes #22113) 2018-11-05 14:13:46 +01:00
bors-servo
ff7c6953c8
Auto merge of #22111 - emilio:gecko-sync, r=emilio
style: Sync changes from mozilla-central.

See each individual commit for details.

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

<!-- 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/22111)
<!-- Reviewable:end -->
2018-11-05 06:46:56 -05:00
Emilio Cobos Álvarez
ac6f921588
style: Fix servo build. 2018-11-05 12:44:54 +01:00
Emilio Cobos Álvarez
64e70e28fc
style: Add the safe area constant names as atoms. 2018-11-05 12:36:14 +01:00
Emilio Cobos Álvarez
8560c8dd5a
Fix tidy issues. 2018-11-05 12:33:39 +01:00
Emilio Cobos Álvarez
29f56919e2
Update remaining references to cssparser 0.24. 2018-11-05 12:33:37 +01:00
Emilio Cobos Álvarez
99f9d84555
style: Simplify invalid custom property handling.
It's a bit useless to keep a set of invalid properties if we're going
to use them just to reject lookups into another key. This makes it more
consistent with the cascade / no-references code, and should not change
behavior.

Differential Revision: https://phabricator.services.mozilla.com/D9632
2018-11-05 12:33:28 +01:00
Emilio Cobos Álvarez
b7da1bac88
style: Implement the env() function with hardcoded zeros for safe-area-inset.
Intent to Implement and Ship: https://groups.google.com/d/msg/mozilla.dev.platform/EVKyR1B87T0/_l-_qK8SAAAJ

Differential Revision: https://phabricator.services.mozilla.com/D9609
2018-11-05 12:33:16 +01:00
Emilio Cobos Álvarez
5af6abfb78
style: Simplify the SVG animation code.
It's overly generic for no good reason.

Differential Revision: https://phabricator.services.mozilla.com/D10844
2018-11-05 12:33:05 +01:00
Emilio Cobos Álvarez
c88a483322
style: Move animation of svg-related bits outside of animated_properties.
Being in mako is unnecessary, and makes it harder to debug and such.

Differential Revision: https://phabricator.services.mozilla.com/D10843
2018-11-05 12:32:58 +01:00
Emilio Cobos Álvarez
8b49ef813f
style: Remove nscsspropertyid_is_{animatable,transitionable}.
There are better ways, plus the existing code didn't handle aliases at
all (not that it needed to, but it's better if it does).

Differential Revision: https://phabricator.services.mozilla.com/D10838
2018-11-05 12:32:52 +01:00
Emilio Cobos Álvarez
707bd841a8
style: Move various font-related animation code to its own file.
Similarly, the code is not trivial and doesn't really need to be in
mako.

Differential Revision: https://phabricator.services.mozilla.com/D10842
2018-11-05 12:32:45 +01:00
Emilio Cobos Álvarez
778ae7d745
style: Move various length animation implementations to its own file.
It's nicer, I think.

Differential Revision: https://phabricator.services.mozilla.com/D10841
2018-11-05 12:32:40 +01:00
Emilio Cobos Álvarez
f159c20198
style: Move the keyframes property priority stuff outside of animated_properties.
Similarly, no need to be here.

Differential Revision: https://phabricator.services.mozilla.com/D10840
2018-11-05 12:32:33 +01:00
Emilio Cobos Álvarez
282edf1a13
style: Move shorthand IDL order stuff out of animated_properties.
Doesn't really need to be in a mako file.

Differential Revision: https://phabricator.services.mozilla.com/D10839
2018-11-05 12:32:25 +01:00
Emilio Cobos Álvarez
d035d02517
style: Don't keep a separate list of ignored-when-colors-disabled longhands.
Most of the change is moving sets around to be static functions on
LonghandIdSet. I think I like that pattern, but I can also make the new set a
global static and add mako code to be `pub` or something.

Though I think the LonghandIdSet::foo().contains(..) pattern is nice to read :)

Differential Revision: https://phabricator.services.mozilla.com/D10653
2018-11-05 12:32:15 +01:00
Emilio Cobos Álvarez
33fed65597
style: Don't match document author rules if not needed for revalidation.
When you're in a ShadowRoot and can share style with a sibling, the sharing code
is smart enough to skip document author rules.

But then it could get confused if you also include document rules, since
revalidation selectors are matched against these.

This is not a correctness issue, because we're matching more than what we need,
and avoid sharing if we failed.

Also fix the detection for user rules in any_applicable_rule_data.

Differential Revision: https://phabricator.services.mozilla.com/D10117
2018-11-05 12:32:02 +01:00
Emilio Cobos Álvarez
a7b5ba14c0
style: Use references in the shapes code.
It doesn't make much sense to return const UniquePtr<Foo>& for something that
can't be null, it's just confusing.

Also make more stuff actually const.

Differential Revision: https://phabricator.services.mozilla.com/D10647
2018-11-05 12:31:49 +01:00
Cameron McCormack
52c3ba00b3
style: Fix inconsistent CRISPEDGES constant name.
Differential Revision: https://phabricator.services.mozilla.com/D10452
2018-11-05 12:31:38 +01:00
Cameron McCormack
d43c4ce81e
style: Support unprefixed image-rendering: crisp-edges.
For now, we keep supporting the prefixed version, since there are examples/instructions
on the Web that don't include an unprefixed value.

Differential Revision: https://phabricator.services.mozilla.com/D10451
2018-11-05 12:31:22 +01:00
Cameron McCormack
5976956e1c
style: Handle reversed ranges in @font-face descriptors.
Differential Revision: https://phabricator.services.mozilla.com/D10327
2018-11-05 12:31:11 +01:00
Boris Chiou
33b2514198
style: Drop "mozilla" prefix in cbindgen_types in ServoBindings.toml.
A minor update to drop the redundant "mozilla" namespace prefix in
`cbindgen_types` array.

Depends on D10305

Differential Revision: https://phabricator.services.mozilla.com/D10325
2018-11-05 12:31:02 +01:00
Boris Chiou
b81bbb85b4
style: Use alias for StylePathCommand.
So we could drop transmute in svg_path related functions.

Differential Revision: https://phabricator.services.mozilla.com/D10140
2018-11-05 12:30:54 +01:00
Boris Chiou
c7027e2676
style: Use alias for StyleFillRule.
This needs to update the "fill-rule" and "clip-rule" to use
predefined_type to avoid some compilation errors.

Differential Revision: https://phabricator.services.mozilla.com/D10142
2018-11-05 12:30:46 +01:00
Boris Chiou
cb2533d61a
style: Use alias for StyleDisplay and StyleDisplayMode.
Map these two types to their original rust type in rust-bindgen.

Differential Revision: https://phabricator.services.mozilla.com/D10141
2018-11-05 12:30:38 +01:00
Boris Chiou
591a47858b
style: Use alias for StyleAppearance.
So we could avoid generating it in rust-bindgen and drop transmute.

Differential Revision: https://phabricator.services.mozilla.com/D10304
2018-11-05 12:30:29 +01:00
Boris Chiou
b00bbb3be7
style: Add a special list for cbindgen types to avoid generating redundant rust types.
We will blacklist this type and add a module raw line to map the gecko
type to its rust type (as an alias).

Differential Revision: https://phabricator.services.mozilla.com/D10303
2018-11-05 12:30:18 +01:00
Brian Birtles
8bc8a0bfa0
style: Interpolate the angle between mis-matched rotate() functions when the angle of one is zero.
Bug: 1501176
Reviewed-by: hiro
2018-11-05 12:29:52 +01:00
Emilio Cobos Álvarez
edf6e6a54f
style: Update cbindgen due to breaking change.
https://github.com/eqrion/cbindgen/pull/233 changed the way one of the options
we use work.

I think the new behavior is better, but we should do this sooner rather than
later, and fix broken builds.

Differential Revision: https://phabricator.services.mozilla.com/D10301
2018-11-05 12:29:37 +01:00
Emilio Cobos Álvarez
badb8f398a
style: Support ::before / ::after on ::slotted pseudos.
See https://github.com/w3c/csswg-drafts/issues/3150 for the issue that would
expand this to all pseudos.

Differential Revision: https://phabricator.services.mozilla.com/D9994
2018-11-05 12:29:30 +01:00
Sean Voisen
62aaf865aa
style: Ignore border-image-source when overriding document colors.
Differential Revision: https://phabricator.services.mozilla.com/D10017
2018-11-05 12:29:20 +01:00
Emilio Cobos Álvarez
a3fcfb6435
style: Add a fast path for querySelector{,All} when we have classes or tags in the rightmost compound.
Before this patch we were only optimizing the case of a single selector, which
is fine, but not enough to catch ones like .foo .bar or so.

This patch allows us to optimize classes and tags in the rightmost compound,
while keeping the current optimization for #id selectors.

Need to profile this, but code-wise should be ready for review.

Differential Revision: https://phabricator.services.mozilla.com/D9351
2018-11-05 12:29:10 +01:00
Emilio Cobos Álvarez
a9af61e3be
style: Don't allow auto in grid line names.
See https://github.com/w3c/csswg-drafts/issues/2856.

Differential Revision: https://phabricator.services.mozilla.com/D9882
2018-11-05 12:28:59 +01:00
Emilio Cobos Álvarez
26040d1b00
style: Remove unused style constant.
Also remove specified-value-only keywords, since those are handled
only in Rust code and C++ doesn't need to know about them.

Differential Revision: https://phabricator.services.mozilla.com/D9634
2018-11-05 12:28:10 +01:00
Fernando Jiménez Moreno
fb28cc7fb5 Update GStreamer binaries for Android. Include required codecs 2018-11-05 11:39:20 +01:00