Commit graph

7971 commits

Author SHA1 Message Date
Xidorn Quan
ec37e7a5b8
style: Ensure nested ruby level container don't escape from line break suppression.
Differential Revision: https://phabricator.services.mozilla.com/D58351
2020-02-12 02:43:10 +01:00
Emilio Cobos Álvarez
25fda147f3
style: Minor comment fix.
Differential Revision: https://phabricator.services.mozilla.com/D59310
2020-02-12 02:43:09 +01:00
Emilio Cobos Álvarez
d459e3453a
style: Make an assertion a release assert in nightly.
If this can happen legitimately, this will help fuzzers to catch it.

Differential Revision: https://phabricator.services.mozilla.com/D59066
2020-02-12 02:43:09 +01:00
Emilio Cobos Álvarez
718a9b1f05
style: Make display: -moz-box more similar to other display types for block layout.
It is unexpected (see bug) that a -moz-box is affected by baseline alignment.
Make -moz-box be block-outside, and -moz-inline-box be inline-outside, instead
of the bespoke thing we have now.

This is more similar to everything else, and fixes the bug.

Differential Revision: https://phabricator.services.mozilla.com/D58726
2020-02-12 02:43:09 +01:00
Emilio Cobos Álvarez
219c0f6328
style: Use cbindgen for content property.
This cleans up and also allows us to keep the distinction between content: none
and content: normal, which allows us to fix the computed style we return from
getComputedStyle().

Do this last bit from the resolved value instead of StyleAdjuster, because
otherwise we need to tweak every initial struct for ::before / ::after.

Differential Revision: https://phabricator.services.mozilla.com/D58276
2020-02-12 02:43:08 +01:00
Ting-Yu Lin
07d0eea5fb
style:- Remove column-span pref in column.mako.rs.
Differential Revision: https://phabricator.services.mozilla.com/D58399
2020-02-12 02:43:08 +01:00
Emilio Cobos Álvarez
4f4d480326
style: Do not incorrectly share style across elements with different part names.
Do the same we do for classes for now. We could be more precise and achieve a
bit more sharing with some more effort (left a comment there), but it seems
unlikely to matter in practice (and if we did that, we'd probably want to do the
same for classes).

Differential Revision: https://phabricator.services.mozilla.com/D58453
2020-02-12 02:43:08 +01:00
Emilio Cobos Álvarez
69bf0e40a6
style: Remove unused FFI function to refcount nsIReferrerInfo.
We don't use RefPtr<nsIReferrerInfo> in rust.

Differential Revision: https://phabricator.services.mozilla.com/D58274
2020-02-12 02:43:08 +01:00
Emilio Cobos Álvarez
d3e65000be
style: Workaround LLVM ABI bug.
All the gory details in https://bugzilla.mozilla.org/show_bug.cgi?id=1600735 and
related LLVM / GCC bugs. Avoid the issue by forcing the relevant enum to be
32-bit wide, so as to not trigger the LLVM bug.

Differential Revision: https://phabricator.services.mozilla.com/D57868
2020-02-12 02:43:07 +01:00
Emilio Cobos Álvarez
2b499e4850
style: Do not use synthetic display-inside values.
This matches the new servo layout engine too, and thus removes some #[cfg]
gunk.  Just use `flow` since it doesn't simplify the layout code as much.

Differential Revision: https://phabricator.services.mozilla.com/D45973
2020-02-12 02:43:07 +01:00
Sean Voisen
0dfbd38532
style: Add support for logical versions of overscroll-behavior.
Differential Revision: https://phabricator.services.mozilla.com/D57363
2020-02-12 02:43:07 +01:00
bors-servo
c4785e3256
Auto merge of #25645 - mrobinson:scrollable-overflow-v2, r=SimonSapin
Add support for overflow:scroll and overflow:hidden to layout_2020

This adds clipping and interactive scrolling support, but scrolling from
script is still not functional.

<!-- 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
- [ ] These changes fix #___ (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. -->
2020-02-01 10:45:22 -05:00
Martin Robinson
7a5a320d74 Add support for overflow:scroll and overflow:hidden to layout_2020
This adds clipping and interactive scrolling support, but scrolling from
script is still not functional.
2020-01-31 17:30:29 +01:00
Patrick Shaughnessy
8ca4db2cd6 :defined works 2020-01-30 10:09:51 -05:00
Martin Robinson
02deb99a05 Use euclid data types for physical structs in layout_2020
This removes a bit of duplication and allows layout_2020 to benefit from
a much richer set of utilities.
2020-01-23 15:39:32 +01:00
Simon Sapin
2720c05c4b Add the full background shorthand 2020-01-13 21:59:46 +01:00
Simon Sapin
7c1f2335d4 Add background-repeat 2020-01-13 21:59:46 +01:00
Simon Sapin
c73dc885bb Add background-position 2020-01-13 21:59:46 +01:00
Simon Sapin
b1dcd5ecb6 Add background-size 2020-01-13 21:59:46 +01:00
Simon Sapin
649d3cb6b4 Add background-origin 2020-01-13 21:59:46 +01:00
Simon Sapin
3874946ac6 Add background-clip 2020-01-13 21:59:46 +01:00
Simon Sapin
c6ba6c40b9 Initial rendering of background-image 2020-01-13 21:59:46 +01:00
Simon Sapin
cbcf83fc65 Move OpaqueNode to style_traits 2020-01-13 21:59:45 +01:00
Simon Sapin
062c1872f0 Parse -moz-image-rect() and -moz-element() only in Gecko 2020-01-07 14:44:28 +01:00
Simon Sapin
962c85b553 Apply border-radius when painting borders 2020-01-03 15:45:28 +01:00
Emilio Cobos Álvarez
7513bc293e Cherry-pick some parts of the cssparser update. 2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
ef16c5844f Rustfmt recent changes. 2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
e885ccb7ae layout-2020: build fixes. 2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
7d30a7da75 Servo build fixes. 2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
ad61cae6b0 style: Update smallvec to 1.0.
Differential Revision: https://phabricator.services.mozilla.com/D56044
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
789ddd9dc1 style: Make LengthPercentage not copy.
This is needed to support min() / max() / clamp(), etc.

Differential Revision: https://phabricator.services.mozilla.com/D57249
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
a541046147 style: Use less Au in font code.
Font code is the only thing that was using Au in the style system without
interfacing with Gecko, and there was no real reason for it to do so.

This slightly simplifies the code.

Differential Revision: https://phabricator.services.mozilla.com/D57248
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
4cd8813a81 style: Remove full-screen-api.unprefix.enabled.
It's been enabled since Firefox 64.

Differential Revision: https://phabricator.services.mozilla.com/D56951
2019-12-16 14:23:56 +01:00
jeffin143
4b62e9ff2b style: convert NS_STYLE_VISIBILITY_* to an enum class in nsStyleConsts.h
Differential Revision: https://phabricator.services.mozilla.com/D56140
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
02c30bccbd style: Preserve CSS input exactly during sanitization.
This avoids the mutation due to the different serialization in some cases.

Differential Revision: https://phabricator.services.mozilla.com/D56732
2019-12-16 14:23:56 +01:00
jeffin143
e8a3a71080 style: convert NS_STYLE_POINTER_EVENTS_* to an enum class in nsStyleConsts.h
Differential Revision: https://phabricator.services.mozilla.com/D56203
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
d954f516e9 style: Fix serialization of @namespace rule.
This code comes from:

https://hg.mozilla.org/mozilla-central/rev/2418cfba72c33c5623f6fb4c243c5203819c8240

I audited other callers of write_str, they seem ok.

Differential Revision: https://phabricator.services.mozilla.com/D54601
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
7cd59da2a0 style: Invalidate shadow part pseudo-class styles correctly.
I was going to send a test for `:focus` via wpt, but then realized it was
probably not spec-compliant with the new rules people want to follow for
:focus, so I filed https://github.com/w3c/csswg-drafts/issues/4555 instead.

Testing `:hover` / `:active` via wpt looked quite a bit of a hassle.

Differential Revision: https://phabricator.services.mozilla.com/D55591
2019-12-16 14:23:56 +01:00
Cameron McCormack
6973317a58 style: Correctly style dark scrollbars in tree components.
We need to ensure the rules that override all properties for scrollbar
part elements only apply to those that are NAC (and so will be eligible
for NAC style sharing).  We have some uses of non-NAC <scrollbar>
elements that should continue to inherit properties from their parents.

To avoid any changes in rule matching order that come with changing specificity,
we add a new :-moz-native-anonymous-no-specificity pseudo-class.

While we're here, we note :-moz-native-anonymous-no-specificity (and the
regular :-moz-native-anonymous pseudo-class) as not needing style
sharing cache revalidation, as we never share NAC styles.

Differential Revision: https://phabricator.services.mozilla.com/D56154
2019-12-16 14:23:56 +01:00
jeffin143
e944962fe2 style: convert NS_STYLE_ISOLATION_* to an enum class in nsStyleConsts.h.
Differential Revision: https://phabricator.services.mozilla.com/D55378
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
baa9ac1903 style: Update derive_more.
Differential Revision: https://phabricator.services.mozilla.com/D56043
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
80ac4d2ff2 style: Avoid writing into the empty array header.
Differential Revision: https://phabricator.services.mozilla.com/D55291
2019-12-16 14:23:56 +01:00
Emilio Cobos Álvarez
f89c31120f
style: Remove layout.css.xul-box-display-values.survive-blockification.enabled.
Differential Revision: https://phabricator.services.mozilla.com/D55898
2019-12-15 21:03:48 +01:00
enordin
5e7d429c0a
style: Refactor InvalidationMap flags to use bitflags.
Differential Revision: https://phabricator.services.mozilla.com/D55862
2019-12-15 21:03:38 +01:00
Jonathan Kew
51c1dfee2d
style: Add support for parsing of the CSS text-underline-position property.
Differential Revision: https://phabricator.services.mozilla.com/D54722
2019-12-15 21:03:31 +01:00
enordin
3bd62cf0cd
style: Check for border-image-* initial specified values when serializing border shorthand.
Differential Revision: https://phabricator.services.mozilla.com/D55588
2019-12-15 21:03:23 +01:00
jeffin143
7e3e8e1ca8
style: convert NS_STYLE_RUBY_POSITION_* to an enum class in nsStyleConsts.h
Differential Revision: https://phabricator.services.mozilla.com/D55379
2019-12-15 21:03:15 +01:00
jeffin143
24f21f375a
style: convert NS_STYLE_TEXT_SIZE_ADJUST_* to an enum class in nsStyleConsts.h
Differential Revision: https://phabricator.services.mozilla.com/D55382
2019-12-15 21:03:10 +01:00
jeffin143
5cc43940ad
style: convert NS_STYLE_RUBY_ALIGN_* to an enum class in nsStyleConsts.h
Differential Revision: https://phabricator.services.mozilla.com/D55380
2019-12-15 21:03:04 +01:00
jeffin143
519a0e7759
style: convert NS_STYLE_TOP_LAYER_* to an enum class in nsStyleConsts.h
Differential Revision: https://phabricator.services.mozilla.com/D55377
2019-12-15 21:02:56 +01:00