Commit Graph

1447 Commits

Author SHA1 Message Date
Ramshell
f944fec6d3 servo: Merge #20573 - Add support for percentages in column-gap (from Ramshell:issue/20498); r=mbrubeck
<!-- Please describe your changes on the following line: -->
# Changes in this PR
* I've removed the `if product == "gecko"` line in order to make the column_gap type "NonNegativeLengthOrPercentageOrNormal" always.

* Then I've changed this line
```rust
Either::First(len) => len.into(),
```
to
```rust
Either::First(len) => len.0.to_pixel_length(content_inline_size).into(),
```

---
<!-- 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 build-geckolib` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #20498  (github issue number if applicable).

<!-- Either: -->
- [X] These changes do not require tests because there are tests already for this in wpt, in particular css/css-align/gaps/column-gap-parsing-001.html for the parsing bits, and css/css-multicol/multicol-gap-percentage-001.html for the layout bits.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: ecf71d77cde1ce998b2d2b7fd7a6d45dfe40343e
2018-04-06 19:48:59 -04:00
Fausto Núñez Alberro
42f307ac75 servo: Merge #20482 - Implement a URL-generic type for ListStyleImage (from brainlessdeveloper:list-style-image-computed); r=emilio
<!-- Please describe your changes on the following line: -->

This should fix the following two "expected to fail" tests described in https://github.com/servo/servo/issues/18015:

- getComputedStyle(elem) for url() listStyleImage uses the resolved URL
  and elem.style uses the original URL

- getComputedStyle(elem) for url() listStyle uses the resolved URL
  and elem.style uses the original URL

I updated the test failure expectations by removing the corresponding `.ini` file.

---
<!-- 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 #18015 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: d744e35d38ce84f7209eb1fc41d2d9f38545d0de
2018-04-03 18:12:13 -04:00
Brody Eastwood
1906c5457d servo: Merge #20447 - NCSU Canvas Rendering Project Initial Steps (from Brody-Eastwood:master); r=jdm
<!-- Please describe your changes on the following line: -->
Implements the initial steps from:

https://github.com/servo/servo/wiki/Canvas-rendering-project

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 9cd60c8e78af7b80e7578612ae442de26d1a325b
2018-04-02 22:24:34 -04:00
Emilio Cobos Álvarez
9e9fcd7ccc servo: Merge #20500 - style: Add support for 'flex-basis:content' in the style system (from emilio:1105111); r=xidorn
Bug: 1105111
Reviewed-by: xidorn
MozReview-Commit-ID: 5WhgHJJ0mDB
Source-Repo: https://github.com/servo/servo
Source-Revision: ca7463df9ee6f7d3886c2bbcb2d0842f24c4abf7
2018-04-01 21:18:27 -04:00
Mats Palmgren
37c57e06e6 servo: Merge #20499 - style: Implement percentages for 'column-gap' (from emilio:1398537); r=emilio,dholbert
Bug: 1398537
Reviewed-by: emilio,dholbert
Source-Repo: https://github.com/servo/servo
Source-Revision: 1e2411d2c50f87e2fbcfc91167029bd345649653
2018-04-01 18:59:15 -04:00
Bastien Orivel
f38039247d servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 12d82fe621947c2b29b12d9c9e9a81b0f4baa117
2018-03-28 15:08:52 -04:00
Josh Matthews
22c4be1887 servo: Merge #20390 - Don't OOM when laying out basic web pages on Android (from jdm:android-layout-workaround); r=emilio
This is a workaround for the symptom described in https://github.com/servo/servo/issues/20149#issuecomment-375366991 which looks like either a standard library or compiler bug. My release android build can load all sorts of web pages as expected with this change.

Source-Repo: https://github.com/servo/servo
Source-Revision: eaf59ca9b9dc3bf31c95555b8d43a5d476bfd7f4
2018-03-22 18:20:38 -04:00
Bastien Orivel
d2f3433543 servo: Merge #20378 - Bump parking_lot to 0.5 (from Eijebong:parking_lot); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1c2bed5a6909268c85d61ec73b2ab63602294eb1
2018-03-21 14:16:57 -04:00
Bastien Orivel
052cff7bc3 servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 02c758a2266f51a95dc2ef647462e13fad4bb6a8
2018-03-21 09:00:16 -04:00
Glenn Watson
1f83167dd1 servo: Merge #20311 - Update WR (local clip API change, texture cache optimizations) (from glennw:update-wr-pic); r=mbrubeck
Update WR (local clip API change, texture cache optimizations).

Source-Repo: https://github.com/servo/servo
Source-Revision: 57b12aaaaf61ad02006014465ed2c93c7ecb1e77
2018-03-15 22:19:31 -04:00
Martin Robinson
f1150fc9a8 servo: Merge #20214 - Stop using LocalClip::RoundedRect (from mrobinson:stop-using-using-localclip-roundedrect); r=glennw
We would like to remove this functionality from WebRender, so convert
its use to clip scroll nodes. This change also removes the redundant
BlocBlockStackingContextType in favor of Option<StackingContextType>,
which is just as expressive. This simplifies the code a bit.

<!-- 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: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should not change behavior.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 26d2e77410f8fbc308f63282f435fbc8788c9bcc
2018-03-06 15:53:11 -05:00
Anthony Ramine
488bb613e3 servo: Merge #20171 - Make ContentItem use a CustomIdent for counter names (from servo:content-item-counters); r=emilio
See https://github.com/w3c/csswg-drafts/pull/2377.

Source-Repo: https://github.com/servo/servo
Source-Revision: 476a0764f5398675481cbaaa040ecc061ae6e579
2018-03-02 11:18:49 -05:00
Manish Goregaokar
76c23e7625 servo: Merge #20163 - Don't panic on cells with both a rowspan and colspan in include_sizes_from_previous_rows (from Manishearth:rowspan-crash); r=mbrubeck
fixes #20162

Source-Repo: https://github.com/servo/servo
Source-Revision: e446897cf603dd2f179c361523cc82ecad6e657b
2018-03-01 20:36:50 -05:00
Manish Goregaokar
30e0b6e798 servo: Merge #20152 - Support zero rowspans (from Manishearth:rowspan-zero); r=mbrubeck
This makes rowspan=0 work by storing notes on which group of rows we're in
for tables containing both rowgroups and rows, and using that to respan
cells with overlarge or zero rowspans.

This also gets rid of the largest_leftover_incoming_size business, because
now spans will always be correct and we'll never have any left over.

Based on https://github.com/servo/servo/pull/20128

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f2cd86b8ee7bbe71ff30758cf5c2174e008e9b5
2018-03-01 13:36:43 -05:00
Manish Goregaokar
700cec3f7e servo: Merge #20128 - Rowspan support for tables (from Manishearth:rowspan); r=mbrubeck
fixes #20092

This just contains the first steps.

We apply a naive algorithm: Spanning cells apply a pressure equal to `block_size / rowspan` on each row they are in. We move table row block size computation into the tables, and make it two pass. In the first pass we compute the sizes of each row, and in the
second pass we assign them, adding them up for any involved cells.

This is missing:

 - [x] Accounting for border sizes
 - [x] Applying pressure to rows that are not the row containing the cell
 - [ ] Reducing pressure on future rows if the current row is able to accomodate more of the cell
 - [x] For tables containing both rows and rowgroups, reset the rowspan info when we hit a rowgroup
 - [x] Correctly handle overflowing rowspans

cc @mbrubeck @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: e2f28140184e9124bd9e94d0b15f289ec5258822
2018-02-28 18:40:39 -05:00
Bastien Orivel
123e9728d5 servo: Merge #20140 - Bump euclid to 0.17 (from Eijebong:euclid); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 38298336beb4ef8873cae22919bd8bee0f6496d4
2018-02-28 04:14:32 -05:00
Glenn Watson
343c954fc9 servo: Merge #20058 - Bump rayon to 1.0 (from Eijebong:rayon1.0); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b6bd719c5dfa1dd5bb1900d31d318250cb54271e
2018-02-27 00:10:51 -05:00
Anthony Ramine
4f8d2f8feb servo: Merge #20124 - Replace LengthOrNone by a specific type for the perspective property (from servo:perspective); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 6df0dc5b2710a6ba856de7c064a6631a8d63efc5
2018-02-26 16:35:32 -05:00
Emilio Cobos Álvarez
5dec67e627 servo: Merge #20117 - style: Somewhat miscelaneous cleanup (from emilio:misc-cleanup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: bbfca28a4f3770896955375d01f1c489b4632fd3
2018-02-24 17:28:20 -05:00
Pyfisch
6f65a9da07 servo: Merge #20031 - Reorganise display list builder (from pyfisch:transform); r=mbrubeck
Description in the individual commits.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a2feb3c1bc1374dc97c788f07c2074895d2f1f1
2018-02-24 10:06:16 -05:00
Jon Leighton
3a1f74e266 servo: Merge #20021 - Lazy load fonts in a FontGroup (from jonleighton:lazy-font-group); r=mbrubeck,glennw
Lazy load fonts in a FontGroup

The first commit message explains this so I'll just copy it here:

---

This is a step towards fixing #17267. To fix that, we need to be able to
try various different fallback fonts in turn, which would become
unweildy with the prior eager-loading strategy.

Prior to this change, FontGroup loaded up all Font instances, including
the fallback font, before any of them were checked for the presence of
the glyphs we're trying to render.

So for the following CSS:

    font-family: Helvetica, Arial;

The FontGroup would contain a Font instance for Helvetica, and a Font
instance for Arial, and a Font instance for the fallback font.

It may be that Helvetica contains glyphs for every character in the
document, and therefore Arial and the fallback font are not needed at
all.

This change makes the strategy lazy, so that we'll only create a Font
for Arial if we cannot find a glyph within Helvetica. I've also
substantially refactored the existing code in the process and added
some documentation along the way.

---

I've added some tests in the second commit, but it required quite a bit of gymnastics to make it possible to write such a test. I'm not sure if the added complexity to the production code is worth it?

On the other hand, having this infrastructure in place may be useful for testing future changes in this area, and also possibly brings us a step closer to extracting a library as discussed in #4901. (What I mean by that is: it reduces coupling between `FontCacheThread` and `FontContext` -- the latter would have a place in such a library, the former wouldn't.)

Source-Repo: https://github.com/servo/servo
Source-Revision: f48dce120dddd8e3d585cfc8bc221faa2726bf6b
2018-02-22 10:49:52 -05:00
Anthony Ramine
6330be21c0 servo: Merge #20104 - Replace PositiveIntegerOrAuto by ColumnCount (from servo:rm-pointless-abstraction); r=emilio
It was its only use.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a3bd3955cb002c9f630f88bdfdc4ba124602bf5
2018-02-22 04:30:58 -05:00
Manish Goregaokar
49117a4ae3 servo: Merge #20034 - Handle table cell backgrounds during display list generation for <table> (from Manishearth:table-backgrounds); r=mbrubeck
Fixes #19788

Source-Repo: https://github.com/servo/servo
Source-Revision: 0b4ea018b0df2ba5f65d2a5cc45b70e4243e324a
2018-02-21 12:00:03 -05:00
Emilio Cobos Álvarez
78edba124d servo: Merge #20082 - style: Cleanup always-false argument to Servo_ResolveStyleLazily (from emilio:ignore-existing-styles); r=bholley
I changed this setup in https://bugzilla.mozilla.org/show_bug.cgi?id=1414999,
because it was totally unsound.

Source-Repo: https://github.com/servo/servo
Source-Revision: 691f3be24a6fcc90ae7d0b9b0783abf8674e1b0f
2018-02-21 06:09:15 -05:00
maekawatoshiki
ac6378d976 servo: Merge #20096 - Fix typo (from maekawatoshiki:master); r=emilio
<!-- Please describe your changes on the following line: -->
I found some typo, so I fixed them.

---
<!-- 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
- [x] These changes do not require tests because it's just a fix of typo.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 554b0c0d06a229e6635bcadcf60b9c477345664a
2018-02-21 04:22:43 -05:00
Anthony Ramine
dfd4a833bc servo: Merge #20079 - Replace IntegerOrAuto with ZIndex (from servo:ZEH-INDEX); r=emilio
It's its only use.

Source-Repo: https://github.com/servo/servo
Source-Revision: 05b8ba0a48947858ae256b6944b9ddd3c0379fba
2018-02-20 12:13:40 -05:00
Fernando Jiménez Moreno
b6c8590ea6 servo: Merge #20080 - Minor cleanup of element.innerText (from ferjm:innertext.cleanup); r=emilio
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

Source-Repo: https://github.com/servo/servo
Source-Revision: 8fdcfb2dfebb86cf33603645aa05920ce6d3e3d3
2018-02-20 08:43:48 -05:00
Fernando Jiménez Moreno
04e1a0a57e servo: Merge #19754 - Implement element.innerText getter (from ferjm:innertext); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 9e64008e759a678a3971d04977c2b20b66fa8229
2018-02-13 03:41:48 -05:00
Pyfisch
1f6c92bdfb servo: Merge #19942 - Use Rect::inner_rect from euclid (from pyfisch:update-euclid); r=emilio
Update euclid.

Source-Repo: https://github.com/servo/servo
Source-Revision: cd663ea33263aaf359bc3d4f78635d1ddfef34c2
2018-02-08 14:02:32 -05:00
Pyfisch
97b05c75a0 servo: Merge #19931 - Use LayoutRects for bounds and overflow in display lists (from pyfisch:float-bounds); r=mrobinson
Convert text runs to glyphs in display list builder.
Remove ComplexClippingRegion and use the WebRender type.

Source-Repo: https://github.com/servo/servo
Source-Revision: 03a1a014ae3f7feeb91246343c487962d061d9fb
2018-02-07 07:11:41 -05:00
janczer
365600e115 servo: Merge #19970 - Change debug assertions to specific ones (from janczer:change_debug_assertions); r=emilio
<!-- 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 #19962 (github issue number if applicable).

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 5d209a70ab11cd0ce6c7e086091112570c6e259d
2018-02-07 06:20:36 -05:00
Igor Gutorov
408b064753 servo: Merge #19957 - style: Move content property out of mako (from gootorov:move-counter-from-mako); r=emilio
<!-- Please describe your changes on the following line: -->
r? emilio

---
<!-- 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 build-geckolib` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #19936 (github issue number if applicable).

<!-- Either: -->
- [x] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 804b4b3db6d75d35b2f2ec8acf83207c5875aa74
2018-02-06 17:39:03 -05:00
Martin Robinson
bd17f5d3b7 servo: Merge #19933 - Update WebRender (from mrobinson:update-wr); r=emilio
This allows servo to use the ExternalScrollId API from WebRender fixing
some issues related to duplicate scroll root ids.

Fixes #17176.
Fixes #19287.
Fixes #19648.

<!-- 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 #17176, #19287, and #19648.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f24005e17aa0b5e274e6efbe0e44f208eb71e42
2018-02-06 09:12:58 -05:00
Anthony Ramine
3d36c1c6c2 servo: Merge #19945 - Simplify counter CSS properties (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 7f7a460a15debe21117f25042059d6f24b99beda
2018-02-04 09:11:05 -05:00
Jonas Reinwald
335c57f734 servo: Merge #19529 - style: moved css longhand counter-reset out of mako (from DonatJR:counter-reset-out-of-mako); r=emilio
<!-- Please describe your changes on the following line: -->
This is a sub-PR of #19015
Code does not yet compile with `build-geckolib`.
r? emilio

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

<!-- Either: -->
- [x] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 38ef515463338d1c562381fd650b80272f552dfb
2018-02-01 09:42:40 -06:00
Mauricio Collares
dbddc2aeb2 servo: Merge #19924 - style: Move border-image-repeat outside of mako (from emilio:bim); r=emilio
style: Move border-image-repeat outside of mako.

This is a rebased / nitpick-addressed / bug-fixed version of #19021, and with a commit from #19668 renaming the two `RepeatKeyword`s to different names.

Source-Repo: https://github.com/servo/servo
Source-Revision: d222c9501b69af324ed1bdc04adefd3b17fabb59
2018-02-01 08:24:12 -06:00
Pyfisch
ed96a8f375 servo: Merge #19824 - Use more WebRender types in gfx (from pyfisch:dl-move); r=mrobinson
Removes ImageBorder details from gfx.
Use WebRender BorderRadius in BoxShadow.
Stores cursors as integer.
Use FilterOp, BorderWidths from WebRender.
Store content_rect as LayoutRect.

This amends #19782.

Source-Repo: https://github.com/servo/servo
Source-Revision: bad46383bd6c9091fe0213703e24345160bdf56a
2018-01-30 04:42:36 -06:00
Jon Leighton
d5108675c7 servo: Merge #19881 - Add layout RPC query for getting an element's style (from jonleighton:issue-19811); r=emilio
This enables us to implement Element::has_css_layout_box() in a more
direct way, and also enables us to remove some of the existing more
specific queries.

Fixes #19811.

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 2a46067587d63aec176621ab3b6112ef5200a248
2018-01-28 05:52:56 -06:00
CYBAI
a0af98a71f servo: Merge #19868 - Use specific assertions (from CYBAI:specific-assertion); r=emilio
Similar to #19865
r? jdm

Note: Should I squash all the commits into one commit?

---
- [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 it should not break anything

Source-Repo: https://github.com/servo/servo
Source-Revision: c9ba16f9fbdf7f43cb19feedfaaa68c85bbcbe3b
2018-01-25 18:06:33 -06:00
Manish Goregaokar
ea60a8db79 servo: Merge #19688 - Detect adjoining text fragments with no line break opportunity between them (from Manishearth:linebreak); r=mbrubeck
First attempt at https://github.com/servo/servo/issues/874

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c1307307575637f5ad360413c6a8395579ab511
2018-01-24 22:42:59 -06:00
Jon Leighton
a98e7577b3 servo: Merge #19852 - Allow floats to impact list item marker position (from jonleighton:issue-19796); r=mbrubeck
Although not required by the specification, this matches the rendering
of Gecko and Blink.

Fixes #19796.

Source-Repo: https://github.com/servo/servo
Source-Revision: d974411e56e4e31ce3acd53411bb28cee6e13217
2018-01-24 19:35:39 -06:00
Emilio Cobos Álvarez
b74b91ac7e servo: Merge #19842 - style: Cleanup a bit the cascade (from emilio:cascade-cleanup); r=nox,jryans
This makes an element available in StyleAdjuster, and uses it to replace some of our CascadeFlags (the ones that don't represent restrictions on what's actually cascaded, actually).

That fixes handwaviness in the handling of those flags from style reparenting,
and code duplication to handle tricky stuff like :visited.

There are a number of other changes that are worth noticing:

 * skip_root_and_item_based_display_fixup is renamed to skip_item_display_fixup:

   TElement::is_root() already implies being the document element, which by
   definition is not native anonymous and not a pseudo-element.

   Thus, you never get fixed-up if your NAC or a pseudo, which is what the code
   tried to avoid, so the only fixup with a point is the item one, which is
   necessary.

 * The pseudo-element probing code was refactored to return early a
   Option::<CascadeInputs>::None, which is nicer than what it was doing.

 * The visited_links_enabled check has moved to selector-matching time. The rest
   of the checks aren't based on whether the element is a link, or are properly
   guarded by parent_style.visited_style().is_some() or visited_rules.is_some().

   Thus you can transitively infer that no element will end up with a :visited
   style, not even from style reparenting.

Anyway, the underlying reason why I want the element in StyleAdjuster is because
we're going to implement an adjustment in there depending on the tag of the
element (converting display: contents to display: none depending on the tag), so
computing that information eagerly, including a hash lookup, wouldn't be nice.

See each commit for details.

Source-Repo: https://github.com/servo/servo
Source-Revision: 02331617b9bd7a379b05f7daa7ad09a44c27504c
2018-01-23 06:30:51 -06:00
Simon Sapin
4179ee0fb3 servo: Merge #19829 - Update Rust and use the newly-stable std::ptr::NonNull (from servo:rustup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: c1ed4bb2d5ed6a4f9967215620d2105cda5ef76a
2018-01-22 11:11:44 -06:00
Fernando Jiménez Moreno
07c0bdaf5f servo: Merge #19789 - Do not leave space below baseline when it is not needed (i.e.there is… (from ferjm:issue-18831-fb-layout); r=mbrubeck
… no text)

This is my first layout fix and a naive approach to fix #18831.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: ec8975b18d043fd0c97678b93d6e8f56c504cee7
2018-01-22 08:14:29 -06:00
Igor Gutorov
58f5a93acb servo: Merge #19798 - style: Move cursor property out of mako (from gootorov:move_cursor_from_mako); r=emilio
<!-- Please describe your changes on the following line: -->
Sub-PR of #19015

r? emilio

---
<!-- 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 build-geckolib` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #19775 (github issue number if applicable).

<!-- Either: -->
- [x] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 59033e697063e6bbe0f0c4c56e4d9aeff46a3336
2018-01-20 12:10:58 -06:00
Anthony Ramine
c04e3b7ed1 servo: Merge #19819 - Merge some test crates in their corresponding components (from servo:rm-test-crates); r=<try>
(Do not merge) Merge some test crates in their corresponding components

Source-Repo: https://github.com/servo/servo
Source-Revision: a4808a3649e6cb6e579e60b82d9979755643f711
2018-01-20 08:51:27 -06:00
Pyfisch
f96f03b2c9 servo: Merge #19782 - Use more WebRender types in gfx/display_list (from pyfisch:dl-simple); r=mrobinson
Use more WebRender types in gfx/display_list.
This uses floating-point (Layout) coordinates in where possible.
Replace NormalBorder struct with WebRender equivalent.
Remove ToPointF and ToRectF traits.
Convert border RepeatKeyword with ToLayout.
Add some definitions to malloc_size_of for WebRender types.

Source-Repo: https://github.com/servo/servo
Source-Revision: aee0d694cc077d4694fc3114af3a2ad83e326cbf
2018-01-18 05:42:52 -06:00
Glenn Watson
a5113dc724 servo: Merge #19780 - Update WR (persistent box-shadow render task cache) (from glennw:update-wr-cache); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8612a87ed28bbc4b9050e47b3bc4d49ea076a1cf
2018-01-17 14:44:14 -06:00
Emilio Cobos Álvarez
09076b1a03 servo: Merge #19757 - style: Remove -servo-text-decorations-in-effect (from emilio:bye-custom-cascade); r=nox
It is bogus, because it depends on the display property as it's cascaded, but
the display property can change afterwards, for example, if we get blockified
because we're the root element or a flex item.

Replace it with a normal field instead.

Also, it carries some weight, because it's the last property that uses this
concept of "derived" property, and "custom cascade". So we can remove some code
after this.

Compute it after the cascade process in StyleAdjuster.

Source-Repo: https://github.com/servo/servo
Source-Revision: f2036e7661a3f865b38d8296cc1b8ab98e60f679
2018-01-15 05:14:49 -06:00
Emilio Cobos Álvarez
2569483d18 servo: Merge #19769 - layout: Simplify the pseudo-element setup (from emilio:simplify-layout-construct); r=nox
It's kind of a mess. See individual commits for details.

Source-Repo: https://github.com/servo/servo
Source-Revision: 032fd388e4efdd9ecc682877d017b9d2f78e29e2
2018-01-15 04:14:13 -06:00