Commit graph

22269 commits

Author SHA1 Message Date
bors-servo
75bc72b29f
Auto merge of #24204 - emilio:gecko-sync, r=emilio
style: Sync changes from mozilla-central.

See each individual commit for details.

<!-- 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/24204)
<!-- Reviewable:end -->
2019-09-13 09:25:22 -04:00
Emilio Cobos Álvarez
cd3b0c23fa
style: Fix Servo build, and rustfmt recent changes. 2019-09-12 23:04:56 +02:00
Emilio Cobos Álvarez
9eaadc6860 style: Shutdown Servo's thread-pool in leak-checking builds, leak the atom table elsewhere.
Differential Revision: https://phabricator.services.mozilla.com/D44217
2019-09-12 22:34:16 +02:00
Michael Woerister
d54d1bcb17 style: Remove duplicated logic from stylo's Gecko wrapper.
Stylo's Gecko wrapper duplicated some logic from the C++ side so
that the Rust compiler would be able to optimize better. Now that
we have xLTO, this kind of manual inlining should not be neccessary
anymore.

Differential Revision: https://phabricator.services.mozilla.com/D43765
2019-09-12 22:34:16 +02:00
Boris Chiou
eb8195dfa4 style: Tweak the serialization of text-decoration.
We are trying to not serialize `text-decoration-line: none` if there are other
non-default values for the longhands.

Differential Revision: https://phabricator.services.mozilla.com/D44908
2019-09-12 22:34:16 +02:00
Cameron McCormack
3c2e4d1e98 style: Align the Rust and C++ representations of WritingMode.
Differential Revision: https://phabricator.services.mozilla.com/D44412
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
987a1eeb62 style: Use cbindgen for counters.
Differential Revision: https://phabricator.services.mozilla.com/D44403
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
3fcd23dcdf style: Add a comment about a Send bound that may look confusing. 2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
c7add81517 style: Account for user stylesheets for Shadow DOM invalidation.
Differential Revision: https://phabricator.services.mozilla.com/D43992
2019-09-12 22:34:16 +02:00
Boris Chiou
c3a3bd48d7 style: Support css use counters for unimplemented properties.
For developing properties, we will handle them in an other bug.

Besides, I use an iframe for the test because we create a use counter in
the constructor of Document, which use the prefs to decide what kind of
properties we want to record. So, in the test, we have to reload iframe
to make sure we re-create the document, so does the use counter, to make
sure the prefs work properly.

The two prefs affect the css use counters:
1. layout.css.use-counters.enabled: Allocate use counters, and record
   non-custom properties.
2. layout.css.use-counters-unimplemented.enabled: Record all unimplmented
   properties into the use counters.

If we disable layout.css.use-counters.enblaed, we don't create use counters
object, so layout.css.use-counters-unimplemented.enabled doesn't work,
either.

Differential Revision: https://phabricator.services.mozilla.com/D43860
2019-09-12 22:34:16 +02:00
Mats Palmgren
f7a87c49b1 style: [css-lists-3] Make 'none' invalid as a <counter-style> in counter()/counters().
CSSWG resolution:
https://github.com/w3c/csswg-drafts/issues/4163#issuecomment-521331100

Spec:
https://drafts.csswg.org/css-lists-3/#counter-functions

Differential Revision: https://phabricator.services.mozilla.com/D43893
2019-09-12 22:34:16 +02:00
Joel Olsson
1406ae7f39 style: Media Query - Enable single <number> and <number>/<number> for <aspect-ratio>.
Differential Revision: https://phabricator.services.mozilla.com/D41557
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
54ce45f3ee style: Update cbindgen.
This cleans up the pattern of "Use a private dtor so that the helper functions
do the right thing" by enabling it everywhere using:

  https://github.com/eqrion/cbindgen/pull/377

It also caught some uninitialized value issues.

I think they're mostly harmless since we zero-initialize our structs:

https://searchfox.org/mozilla-central/rev/325c1a707819602feff736f129cb36055ba6d94f/servo/components/style/properties/gecko.mako.rs#632

And since we override the clip rect, which is the other bit of code that was
failing to build with this change.

Differential Revision: https://phabricator.services.mozilla.com/D43491
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
b238698691 style: Use cbindgen for clip / -moz-image-region.
This also fixes some of the issues with -moz-image-region, where we just minted
an auto out of the blue.

Differential Revision: https://phabricator.services.mozilla.com/D43474
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
53cd37ce39 style: Remove old warning allow which is no longer relevant.
-moz-appearance uses cbindgen since a long time ago.

Differential Revision: https://phabricator.services.mozilla.com/D43472
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
b0f3a68a6c style: Rustfmt declaration_block.rs.
Differential Revision: https://phabricator.services.mozilla.com/D43400
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
ee106992e1 style: Simplify -x-span property.
Differential Revision: https://phabricator.services.mozilla.com/D42914
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
432b417d98 style: Avoid manual paint-order glue code.
Differential Revision: https://phabricator.services.mozilla.com/D42913
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
14c7e133ad style: Avoid some signed -> unsigned conversions for box-ordinal-group.
This is consistent with the `order` property anyhow, and allows to simplify some
code.

Negatives are still not parsed, but rust uses a similar representation for all
CSS <integer> values and so should C++.

Differential Revision: https://phabricator.services.mozilla.com/D42912
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
7c4dc9e797 style: Make font-variant-alternates use cbindgen.
Differential Revision: https://phabricator.services.mozilla.com/D42859
2019-09-12 22:34:16 +02:00
Emilio Cobos Álvarez
b8108eaa80 style: Remove unused impl_coord_copy.
Differential Revision: https://phabricator.services.mozilla.com/D42857
2019-09-12 22:34:16 +02:00
Mats Palmgren
dd5715d4f1 style: Remove display:-moz-inline-grid/-moz-inline-stack.
Differential Revision: https://phabricator.services.mozilla.com/D42552
2019-09-12 22:34:16 +02:00
bors-servo
89d0b0233a
Auto merge of #24176 - jdm:no-gleam, r=asajeffrey
Replace use of gleam in webgl with sparkle.

Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by https://github.com/servo/servo/pull/24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] There are tests for these 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/24176)
<!-- Reviewable:end -->
2019-09-12 16:08:58 -04:00
Boris Chiou
d794c8527d style: Clamp negative values for font-size-adjust animations.
Differential Revision: https://phabricator.services.mozilla.com/D42586
2019-09-12 22:07:45 +02:00
Emilio Cobos Álvarez
9404ac89b7 style: Don't clamp font-size calc() factors too early.
These two bugs (bug 1572738 and bug 1572451) are stylo regressions.

When font-family changes, we try to recompute the font-size with a length /
percentage combinations in case the generic family changes, so the user
preferences are kept.

When calc() is involved, we clamp to non-negative too early, via
NonNegativeLength::scale_by.

I think we should generally dump this "try to track font-size across calc()"
thingie, as as various comments note it is not quite perfect, and it's not clear
how it should work in presence of min()/max().

This patch fixes the issue and simplifies code a bit, I may consider removing
this altogether in a follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D41776
2019-09-12 22:07:45 +02:00
Mats Palmgren
bff52ae4a1 style: Implement layout for 'display: flow-root list-item'.
Differential Revision: https://phabricator.services.mozilla.com/D42087
2019-09-12 22:07:45 +02:00
bors-servo
4e9967b43e
Auto merge of #24148 - asajeffrey:script-prefetch, r=jdm,nox
Prefetch img, scripts and stylesheets during parsing

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

Eagerly tokenize html input, and scan for `script` and `img` tags which can be prefetched into the cache. This allows resources to be loaded concurrently, which would otherwise be loaded sequentially due to being blocked by script execution. On the cloth webgl demo, this takes the time-to-paint down from 732ms to 560ms.

---
<!-- 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 #3847
- [x] These changes do not require tests because it's a perf improvement

<!-- 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/24148)
<!-- Reviewable:end -->
2019-09-11 15:28:05 -04:00
Alan Jeffrey
2e6f14ffea Responding to review comments 2019-09-11 12:13:41 -05:00
Alan Jeffrey
49a5e84fb1 Responding to review comments 2019-09-11 11:40:50 -05:00
Josh Matthews
1cefae7181 Replace use of gleam in webgl with sparkle. 2019-09-11 11:40:04 -04:00
bors-servo
86ad84198e
Auto merge of #24165 - nox:victor, r=SimonSapin
Import victor's layout system 🍷

<!-- 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/24165)
<!-- Reviewable:end -->
2019-09-11 04:39:53 -04:00
Anthony Ramine
4444c5a2ad Import victor's layout system 🍷 2019-09-11 10:36:30 +02:00
Simon Sapin
86904757e6 Import files from Victor
fdb11f3e87
2019-09-11 10:06:35 +02:00
Anthony Ramine
be0e84b30f Rename RecalcStyleAndConstructFlows to RecalcStyle
It doesn't construct flows anymore.
2019-09-11 10:06:35 +02:00
Anthony Ramine
eaf08ef517 Remove some more code 2019-09-11 10:06:35 +02:00
Anthony Ramine
d0d4bb7c99 Kill fragments 2019-09-11 10:06:32 +02:00
Alan Jeffrey
aeac382058 Make http_loader more robust against hyperium parse errors 2019-09-10 16:13:50 -05:00
Alan Jeffrey
1aeb97b281 Prefetch img and scripts during parsing 2019-09-10 16:13:49 -05:00
Víctor Manuel Jáquez Leal
c6df00343b Enable video frames as OES textures
This patch parametrizes WR to handle OES textures if the incoming
frame wraps one.

It requires the update of servo-media package and the according
WR parametrization.
2019-09-10 13:15:39 +02:00
bors-servo
5bcb1b579c
Auto merge of #24153 - servo:wr-dl, r=nox
Remove layout_2020::display_list, use WebRender display lists instead

<!-- 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/24153)
<!-- Reviewable:end -->
2019-09-09 08:33:08 -04:00
Simon Sapin
3e6489f543 Remove layout_2020::display_list, use WebRender display lists instead 2019-09-07 19:38:44 +02:00
Bastien Orivel
c8aae12ff4 Update and dedupe nix 2019-09-06 18:37:37 +02:00
Simon Sapin
e9f7079c70 Replace DisplayList::is_contentful with tracking during conversion to WR display lists 2019-09-06 17:15:53 +02:00
Simon Sapin
526619a78a Replace the WebRenderDisplayItemConverter trait with an inherent method 2019-09-06 16:59:11 +02:00
bors-servo
7a67261dce
Auto merge of #24142 - CYBAI:warn-module-script, r=jdm
Show warning when module scripts are ignored

The first five commits are `cherry-pick`-ed from the module script PR.
I think it might be also good to have this PR first so that reviewers can focus on module script things on that PR!

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24089
- [x] These changes do not require tests because it just ignored module scripts (or should we turn on module script tests in this PR and update those test expectation to TIMEOUT?)

<!-- 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/24142)
<!-- Reviewable:end -->
2019-09-06 07:36:26 -04:00
bors-servo
e852d02f1c
Auto merge of #24034 - ferjm:video.fullscreen, r=emilio
Make inline elements work in fullscreen mode

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #22358

<!-- 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/24034)
<!-- Reviewable:end -->
2019-09-06 05:27:02 -04:00
CYBAI
95ddfb3930 Show warning when the script is a module
The warning can be removed in #23545.
2019-09-06 13:35:40 +09:00
CYBAI
70c5cfdbdb Add type_ for script origin to distinguish module or classic 2019-09-06 13:35:40 +09:00
CYBAI
19eb2392f5 Rename ClassicScript to ScriptOrigin
This is basically revert 965370c0bf. After introducing module script, we
can reuse this struct and add field to see the type of script.
2019-09-06 13:35:40 +09:00
CYBAI
608c44f103 Rename ScriptContext to ClassicContext 2019-09-06 13:35:39 +09:00