Commit graph

1183 commits

Author SHA1 Message Date
石博文
43ec8829fb servo: Merge #16541 - Add calc method for CalcLengthOrPercentage (from sbwtw:fix_calc_behavior); r=stshine
* Add calc method to calculate formula value with parent size
* Add unit test case

<!-- Please describe your changes on the following line: -->
Please see this issue: https://github.com/servo/servo/issues/15986

---
<!-- 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 #15986 (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: 418c3e8cc74b561c9c704da4dfdfb74681bf42a1

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1d48fb23022078c51f68df824ef6b0501c81b8cb
2017-04-24 04:16:18 -05:00
Glenn Watson
6cad41ac46 servo: Merge #16551 - Update WR (improved double border quality, minor API changes) (from glennw:update-wr-mostly-borders); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 0f6c883658930006994b2738f059d050c037ffb9

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 5a2b967824253fe8b67619ee1e323b5d2dac7e4f
2017-04-23 17:50:08 -05:00
Pu Xingyu
75700f6496 servo: Merge #16458 - layout: Force reflow in the sequential fallback of block format context (from stshine:sequential-fallback); r=pcwalton,emilio
When reflowing a block format context during the inorder traversal,
propagate restyle damage manually to its children since they were
already reflowed. Also, test the border box to see if it can fit into
floats according to CSS 2.1 § 9.5.

Improves reddit and yahoo.

---
<!-- 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 #__ (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: 541db5f9a791f52e22d409d3b40b13223df69b4c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 2a1bb98d251df29f460e9ab379d27d1fd49febf7
2017-04-22 23:55:22 -05:00
Pu Xingyu
0353a290f8 servo: Merge #16337 - layout: Fix intrinsic inline size calculating of inline blocks (from stshine:inline-block-intrinsic); r=notriddle
When calculating intrinsic inline sizes of an inline block, take its
nested inline parents into account.

---
<!-- 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 #7636 (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: bbf292b12010509867dd594055162fa776f0de41

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 8b3b2d553362744657cd90a62668633a810ec661
2017-04-21 22:43:06 -05:00
Martin Robinson
b35beae16d servo: Merge #16531 - Eliminate ScrollRootId (from mrobinson:clip-id); r=glennw
Just use WebRender's ClipId directly. This will allow us to create and
use ReferenceFrames in the future, if we need to do that. It will also
make it easier to have Servo responsible for creating the root
scrolling area, which will allow removing some old hacks in the future.

<!-- 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: 6e05a903afe81af5a45067dde4f9af26a2ea4be2

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ed3c05a3a6ad1de7c189632886473e8b9b294565
2017-04-20 01:55:33 -05:00
Nazım Can Altınova
8e46cd609a servo: Merge #16231 - stylo: Implement -moz-transform property (from canaltinova:moz-transform); r=Manishearth
-moz-transform property is an alias shorthand property. It has transform as sub-property but their parsing is different in some cases(matrix/matrix3d). -moz-transform also accepts LengthOrPercentage in the nondiagonal homogeneous components of matrix and matrix3d.

It looks like length and percentage values are getting computed to number directly. For example 120px converts into 120 and calc(120px + 20%) converts into 140. So I did like this. But we need to check this behavior again to be sure, I guess.

Also I spent half day investigating why matrices are not serializing after this change and found out their ToCss functions is not completely implemented yet 😄 I was going to implement them but there is an easy issue about it(#15194) so I left it that way. Probably all tests won't pass without it.

---
<!-- 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 #16003 and [Bug 1351356](https://bugzilla.mozilla.org/show_bug.cgi?id=1351356)

<!-- 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: b8b4ec92df9729f8d07ff1d2b6e3e3474a978b6c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ce8d1ba04a88444d82420e4740b137388afef3b5
2017-04-19 17:37:07 -05:00
Pu Xingyu
03d9c8dcf7 servo: Merge #16428 - layout: Floor to 0 when computing intrinsic sizes with box-sizing:border-box (from stshine:box-sizing); r=emilio
<!-- Please describe your changes on the following line: -->

Improves bitbucket.

---
<!-- 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: 349ddb555a8be9daad691a201f72682a141e34e4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : cb58ba765ba8e7add9138c25dd448d9657c4e847
2017-04-18 05:30:45 -05:00
Martin Robinson
eb03c99448 servo: Merge #16510 - Remove StackingContext::establishes_3d_context (from mrobinson:establishes-3d-context); r=jdm
This member is now unused since WebRender is the only display backend.

<!-- 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 do 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: 3e1f4fdc9ac1d42e6bbddf9a2dc82ca43a06b6f4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b018c3655b68daeab0e2558323b41d2626cda380
2017-04-18 03:43:15 -05:00
Martin Robinson
4608399eb9 servo: Merge #16336 - Used shared clips for overflow:hidden and CSS clip (from mrobinson:overflow-hidden); r=glennw
Instead of passing down a complex clipping region to each item, used
shared clipping to handle overflow:hidden and CSS clips. In addition to
being more efficient, this should also fix quite a few issues related
to absolutely positioned elements.

One existing reftest is slightly modified to avoid tickling a quirk
with the way that WebRender rasterizes masks. We are working out how to
best express these combined masks with the API or need to. The change
does not affect the original subject of the reftest.

Fixes #13109.
Fixes #10151.
Fixes #7575.
Fixes #8074.

<!-- 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 #13109, #10151, #7575, #8074.

<!-- 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: ab7e1e2d36829e20df130f7174c3c7d1dbbd5cc5

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f0f2687589ff10964ff809060f17d3c7e3e358c8
2017-04-17 16:08:00 -05:00
Martin Robinson
0591b4dbe2 servo: Merge #16463 - Fix various issues with overflow clipping (from mrobinson:various-overflow-fixes); r=emilio
When dealing absolutely positioned items, we should use clip of our
containing block, even if our containing block doesn't itself establish
a new overflow clip. Additionally, we need to properly handle
assigning scroll root ids to fragments of inline elements.

We add a test for this behavior.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: b9274b7527b9171dae34f87a039ea98ef2e5fbe8

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 50574bbfa504f331919ed588026d98660dc0e6dd
2017-04-17 09:13:48 -05:00
Glenn Watson
160140c3c8 servo: Merge #16398 - Update WR (new border code path) (from glennw:update-wr-elliptical-borders-aa); r=mrobinson
This includes the new border code path for simple (solid) borders.
This gives much higher quality border rendering, including proper
support for elliptical border segments.

The quality on https://github.com/servo/servo is noticeably improved.

Source-Repo: https://github.com/servo/servo
Source-Revision: ff568c0d1ae5cb3a96604e3740bfea383a774d70

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b75b007cf793fd2a258ddd69195795acc6e11aad
2017-04-14 00:42:49 -05:00
Josh Matthews
55ef876320 servo: Merge #16258 - Overwrite default RunInfo values with the first real ones encountered (from jdm:panic-at-the-ellipsis); r=pcwalton,stshine
TextRunScanner::flush_clump_to_list compares the values in the RunInfo object against the ones determined from the current fragment, but these values can be arbitrary defaults that don't mean anything useful.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14783
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c0d8e44a005ef68f805569f535a6ffa1f46d627

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1e2f19a6b308fab9e8928854fae879125bee6b77
2017-04-12 23:09:53 -05:00
Glenn Watson
a13789a4c4 servo: Merge #16360 - Update WR (gradients, batching, text run, border changes) (from glennw:update-wr-borders); r=jdm
- Tidy and optimize the batching code.
- Support tiling / repeat for linear and radial gradients.
- Fix some edge cases of subpixel text AA.
- Add clip mask support to border shaders.
- Optimization to text run creation on CPU.
- Handle more box-shadow clipping cases.
- Fix a panic that could occur when window size is 0.
- Clip / scroll API improvements.

Source-Repo: https://github.com/servo/servo
Source-Revision: 43bd0cae0d983ec1e78c82fcebea303f2854cb85

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : dcefa625b08187b0dcf7f729626d052c84a40fd4
2017-04-12 12:03:10 -05:00
Pu Xingyu
eab8ab133d servo: Merge #16285 - layout: Use the margin box of an inline block when computing the inline size (from stshine:inline-block-margin); r=emilio
<!-- Please describe your changes on the following line: -->

When computing the inline size of an inline block in inline formating
context, use the margin box of the underling block.

---
<!-- 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 #12413 (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: 4013e9d7a0be666343ef9d806408af5c0a852d91

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : a3e0b41862e06b9bc419207ea74be4ba5edcaa11
2017-04-10 15:07:06 -05:00
Nazım Can Altınova
f6bd86c084 servo: Merge #16319 - stylo: Add -moz-element support (from canaltinova:element); r=upsuper
Implemented -moz-element for background property.
r=upsuper

---
<!-- 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 #15443 and [Bug 1341761](https://bugzilla.mozilla.org/show_bug.cgi?id=1341761)

Source-Repo: https://github.com/servo/servo
Source-Revision: 3620e755a96d7272cfd28751696ec42ac0a0ce70

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d13d9c6865fbb158b65bdbf464352b5e8874513b
2017-04-10 14:08:04 -05:00
Manish Goregaokar
c357d4646c servo: Merge #16316 - stylo: Make font base size computation threadsafe (from Manishearth:stylo-threadsafe); r=emilio
r=emilio https://bugzilla.mozilla.org/show_bug.cgi?id=1351200

Source-Repo: https://github.com/servo/servo
Source-Revision: d77d7529905e52c29597048422556a2416550b76

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 22f72365127df85cf53f1fd89b955be092cedb70
2017-04-09 06:15:51 -05:00
Bobby Holley
ec70de47f6 servo: Merge #16312 - Make the sequential traversal breadth-first (from bholley:breadth_first_sequential); r=emilio
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1354806

Source-Repo: https://github.com/servo/servo
Source-Revision: fd2b092839ec5229066ed1d608a81a556f38c55b

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4a85dcd1bb4c702c61c0bc277e858da48d9f0cdc
2017-04-09 01:55:09 -05:00
Emilio Cobos Álvarez
5dd98d6e14 servo: Merge #16301 - Update string-cache (from emilio:atoms-up); r=Wafflespeanut
Source-Repo: https://github.com/servo/servo
Source-Revision: e0731215c0e712d792ea64a709c5178cb2cab165

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 8201e5beb53bff8058fca4f67cec8c87c410d430
2017-04-07 06:40:45 -05:00
Xidorn Quan
fb31179442 servo: Merge #16296 - Update cssparser in Cargo.toml (from upsuper:cssparser); r=heycam
This helps Stylo builds to actually use the new cssparser.

Source-Repo: https://github.com/servo/servo
Source-Revision: 535d0e421a3188473fc0c3cefca569c1276c4804

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d72cbe5b073fd7a22eb291a86007734c7b54e42b
2017-04-07 01:10:25 -05:00
Martin Robinson
e6c81765aa servo: Merge #16284 - Use real clips when generating scroll roots (from mrobinson:scroll-root-clip); r=glennw
This is the first step toward removing inherited clips in favor of
scroll roots for handling overflow and CSS clipping. This will allow us
to more easily handle elements that should not be clipped. While we are
still using inherited clips here, we now properly clip some types of
content that wasn't clipped before.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 24cea409f24135769c4fbedddd0f87da9d7bd12b

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9e1db3f7fa3de95574acbef51d5c5ac63de1a8fa
2017-04-06 14:32:16 -05:00
Glenn Watson
341d05c4ee servo: Merge #16264 - Update WR (border fast paths, clip interfaces) (from glennw:update-wr-borders-and-clips); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 6a67688924b1b122be9c8ec456d6029dc02366a4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 88b484524f996cce0d5c77dfd7e3634684cdb6da
2017-04-04 20:35:19 -05:00
Glenn Watson
0cd4c685d5 servo: Merge #16252 - Update WR (gradient features) (from glennw:update-wr-gra); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 41e712786e6d618e83a0988d43436d6e5e5bb36e

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4f7e0b2cfd0aaad9496ef12290861b20fc9214b5
2017-04-04 14:41:41 -05:00
Glenn Watson
5ad8c3136c servo: Merge #16200 - Update WR (various optimizations, gradient improvements) (from glennw:update-wr-clear-opts); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: e45d7e0e2e5d47945d3d821db5767feff64d7634

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : d1a41f20df61036023a26584e0f3fba726a3d506
2017-04-02 17:05:01 -05:00
Pu Xingyu
6f26be4ea1 servo: Merge #16096 - Use Servo-specific pseudo elements for anonymous box and text (from stshine:die-modify-style-die); r=emilio
<!-- Please describe your changes on the following line: -->

Use some fake pseudo elements to style servo-specific boxes in servo. Also, Since for nested inline elements non-inheritable properties are properly stored in the inline context of an inline fragment, so get
rid of them on the style using empty pseudo to do cascading.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because refactoring

<!-- 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: 449758ef5dd399f7e1a5a9550dcdd614056cee9e

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : cd55c9aba7e57bf92d9c386fc8a17fd5fafe95b3
2017-04-01 06:02:08 -05:00
James Bendig
4ffa87829b servo: Merge #16127 - Add full parsing/serialization for mask-repeat and background-repeat (from jbendig:issue_14954); r=emilio
I implemented full parsing and serialization for the mask-repeat and background-repeat style properties. I think some more tests are required but I'm not what I'm missing. I'd appreciate some direction.

I also had to modify some layout code to get my changes to compile. As a result, background-repeat should work individually in both directions now too.

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

<!-- Either: -->
- [ ] There are tests for these changes

<!-- 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: f2cd9efa966a3d0f9fc8404ce1fd18bdd56844ac

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c518d03e4105536f2fb1cf994a4c12feb84bf9ab
2017-03-28 13:30:13 -05:00
Fernando Jiménez Moreno
b7749d2ddf servo: Merge #16048 - Make image cache per-document rather than global (from ferjm:issue-15701-image-cache); r=jdm
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #15701.
- [X] These changes do not require new tests because there should already be WPTs for image loads.

Source-Repo: https://github.com/servo/servo
Source-Revision: c85a02b14431ce775024d8a8dae9d3e727dedfc4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 795b94666dc18a53ce2d75ef1a5279c76e04a3c7
2017-03-27 13:50:46 -07:00
Martin Robinson
2f544e9a09 servo: Merge #16146 - Fix scroll root of absolutely positioned elements (from mrobinson:containing-block-scrolling); r=glennw
Absolutely positioned elements should be given the scroll root of their
containing block and not necessarily the scroll root of their parent.
This fixes several CSS tests, though others are still failing pending a
similar fix for inherited clipping rectangles.

Fixes #13530.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f5b17202fb87bf84230dd7db0a767c330be8c7b

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 77d0c5057f306e10b161a8d05f8f8b50d7ffd886
2017-03-27 06:57:32 -07:00
Emilio Cobos Álvarez
33b2f03d47 servo: Merge #16144 - style: Make numbers keep track of whether they were specified as calc() (from emilio:number-calc); r=heycam
Fixes #15960

Source-Repo: https://github.com/servo/servo
Source-Revision: b6bc49225e31b7c1e3f9cc3be660bb37afe33a95

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 3a492ee4054b5f3e38e24b8721caac610b39ca85
2017-03-27 06:13:39 -07:00
Glenn Watson
ec4e11d887 servo: Merge #16113 - Update WR (opaque rect optimization, stacking context culling) (from glennw:update-wr-opaque-opt); r=mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: 3b79bc25825ea416298b1917e0bd409b7044f837

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : becb4839ec630c1b8d5d59c6f14655def789c5ab
2017-03-26 14:04:07 -07:00
Morris Tseng
6ccbad8048 servo: Merge #15905 - Add gradient border support (from mephisto41:add-border-gradient); r=emilio
webrender add gradient border support in https://github.com/servo/webrender/pull/953. This pr add support in servo.

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

<!-- Either: -->
- [X] These changes do not require tests because it should be covered by wpt

<!-- 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: fd8127b23b177886217eb1f21963e6c02528647a

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9f3188db40cd1d21acb98f2b7f6927961c8e71ad
2017-03-26 02:29:16 -07:00
Nazım Can Altınova
805b91c142 servo: Merge #16133 - Add support for -moz-image-rect (from canaltinova:image-rect); r=Manishearth
Add support for -moz-image-rect
r=Manishearth

---
<!-- 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 #15948 and [Bug 1341763](https://bugzilla.mozilla.org/show_bug.cgi?id=1341763)

<!-- 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: c2d9f663afd6c804c30a7a077392b836e1fa29b5

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 89cf026c56b5e318143703cd3c857732e8e81991
2017-03-25 12:09:21 -07:00
Glenn Watson
7ddc788706 servo: Merge #16073 - Update WR (gl trait, scroll roots) (from glennw:update-wr-glfns); r=mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: c99289a928b30c874da2aa4d8aa869593bbb5e14

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e963ce4fd8a3773dcd502808b89894a0d1755c07
2017-03-23 03:43:49 -07:00
Matt Brubeck
ae1873f96c servo: Merge #16088 - Update parking_lot_core and smallvec (from mbrubeck:always-be-updating); r=emilio
- [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 they update third-party code only

Source-Repo: https://github.com/servo/servo
Source-Revision: e0f1855c102d45bc4c83dfd5fb67d145126903da

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : acc36452436ba835a639ef32d867d7acbdb61064
2017-03-22 16:21:28 -07:00
Simon Sapin
33a9e6d050 servo: Merge #16014 - Per-process lock for CSSOM objects (from servo:style-ref); r=emilio
<!-- Please describe your changes on the following line: -->

Before this PR, every object reflected in CSSOM is in `Arc<RwLock<_>>` to enable safe (synchronized) mutable aliasing. Acquiring all these locks has significant cost during selector matching:

* https://bugzilla.mozilla.org/show_bug.cgi?id=1311469
* https://bugzilla.mozilla.org/show_bug.cgi?id=1335941
* https://bugzilla.mozilla.org/show_bug.cgi?id=1339703

This PR introduce a mechanism to protect many objects with the same `RwLock` that only needs to be acquired once.

In Stylo, there is one such lock per process (in a `lazy_static`), used for everything.

I non-Stylo Servo, I originally intended to have one such lock per document (for author-origin stylesheets, and one per process for user-agent and user sytlesheets since they’re shared across documents, and never mutated anyway). However I failed to have the same document-specific (or pipeline-specific) `Arc` reachable from both `Document` nodes and `LayoutThread`. Recursively following callers lead me to include this `Arc` in `UnprivilegedPipelineContent`, but that needs to be serializable. So there is a second process-wide lock.

This was previously #15998, closed accidentally.

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

<!-- 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: bb54f0a429de0e8b8861f8071b6cf82f73622664

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 851230e57ac8775707df5f0f103be5feac81fc41
2017-03-19 14:31:19 -07:00
Xidorn Quan
b6c3815f46 servo: Merge #16006 - Implement -moz-box-ordinal-group property (from upsuper:box-ordinal-group); r=Manishearth
This PR fixes #16000.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f3f8098c3c7e88dd851531f51e63f84437f9cf4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 190456342738047ec1ad7c87ffb8929ed98c2ad5
2017-03-17 15:15:01 -07:00
Emilio Cobos Álvarez
b11ee5a0ec servo: Merge #15931 - style: Kill SharedStyleContext::default_computed_values (from emilio:die-defaultvalues-die); r=mbrubeck
This is on top of https://github.com/servo/servo/pull/15928.

Now that cascade() gets a Device ref, we can use the default computed values
from there to avoid propagating that state all over the place.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8c8edb8731dc01d254839d0922590fba72f278c6

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4da0b4a162f5987954a443b93f411e461ef0187d
2017-03-13 16:50:26 -07:00
Emilio Cobos Álvarez
c1ff312d84 servo: Merge #15913 - Use the proper viewport size for stylo (from emilio:viewport-size); r=heycam,hiro
Reviewed upstream at [bug 1303229](https://bugzil.la/1303229).

Source-Repo: https://github.com/servo/servo
Source-Revision: 06f99c13f233bad71a42affccb10c86295ff014b

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : fd7d711c75bf2d5e217d186ad875e4d8e1602c3a
2017-03-11 04:40:31 -08:00
Emilio Cobos Álvarez
99fa3bca94 servo: Merge #15891 - style: Iterate the LRU cache contents from back to front (from emilio:lru-back-to-front); r=bholley,mbrubeck
This is on top of #15888. Only the second commit needs review.

We put the more recently used item last, so iterating then from left to right is
pointless.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fa4a94bb154449702e5ae9422c3008a5195c714

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : fbf4742c4186ad27bd4d5ccd3e2319a5b0748b55
2017-03-11 02:31:25 -08:00
Glenn Watson
180ce345eb servo: Merge #15879 - Update WR (scroll root changes, border gradients, yuv updates) (from glennw:update-wr-scroll); r=mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: 802440dbf05cf9f3679214107d388995e574d2c9

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 6ac1c0b32a9e82753d187050ff534558f9416af7
2017-03-08 23:43:10 -08:00
projektir
16d989763d servo: Merge #15861 - Make text decoration testable and do not serialize initial text-decoration-style (from projektir:make-text-decoration-testable); r=Wafflespeanut
Servo now uses the same name for the text-decoration-line longhand property as Gecko. This was done to enable testing of the text-decoration shorthand.

The text-decoration shorthand has been fixed to not serialize initial text-decoration-style.

---

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

---

- [x ] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: dc3b32c853d51973cea98c235e7a9ab0bd00366e

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 39d7925e711eeaa9b153c16d9685b993f2952d6a
2017-03-08 21:39:30 -08:00
Glenn Watson
1b3d9372f6 servo: Merge #15862 - Update WR (types updates, stacking context culling) (from glennw:update-wr-types); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 28f871247c6461ccc8c254caba0d674ac4ddc545

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : fd4339b7217318e2fb52cad2511df7c75a180181
2017-03-08 16:33:34 -08:00
Patrick Walton
2fff06a6dd servo: Merge #15816 - Improve performance of layout queries and requestAnimationFrame (from servo:raf-timer); r=jdm,emilio
Part of #14442.

Source-Repo: https://github.com/servo/servo
Source-Revision: 72fd27bbccf9214cee11c78834ca1fbc96b3bf22

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4c8b62461bc0e0a2a02ce8b5a9d7f29366443a38
2017-03-05 05:14:45 -08:00
Glenn Watson
8f883113a7 servo: Merge #15804 - Update WR (reference frames for fixed position elements) (from glennw:update-wr-transforms); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 0f6b5c3b521686f79a18da64364eed5a03262605

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 005ea52828e73dce970ac55321f586771fffe909
2017-03-02 17:02:26 -08:00
Fernando Jiménez Moreno
82f05b739f servo: Merge #15768 - Trigger reflow on document.elementsFromPoint (from ferjm:issue-15592-document-elementsFromPoint); r=emilio
As [suggested](https://github.com/servo/servo/issues/15592#issuecomment-280379805) by @jdm `Document::nodes_from_point` now triggers a reflow.

I added a new reftest that panics with `ERROR:servo: Tried to hit test without a DisplayList` if this patch is not applied.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #15592.
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: fa32d50c7a2fc9cb29c7245dc45a46ed68551601

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 021cbb5719229eeffbde8abde6a69508cf997f4f
2017-03-02 11:43:17 -08:00
Anthony Ramine
5db0d8e21d servo: Merge #15769 - Kill serde_codegen 💣 (from nox:die-codegen-die); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 74e7afa1c8a0a355e3964a15045840adf7488e78

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 139250aa894ebab097771f12dceed1d5de18bb86
2017-02-28 11:10:17 -08:00
Simon Sapin
f2b2959821 servo: Merge #15766 - Update cssparser (from servo:cssparserup); r=Manishearth
<!-- Please describe your changes on the following line: -->

https://github.com/servo/rust-cssparser/pull/123

In particular, `match_ignore_ascii_case` now supports the full `match` syntax.

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

<!-- 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: fbfcfc2dbe838ef011f14a863003a575078f455f

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 0be96fc61d6e7a157d88ce68c85a94344dc46d8e
2017-02-28 08:22:27 -08:00
Simon Sapin
32fe1965f3 servo: Merge #15735 - Update cssparser to 0.11 (from servo:cssparserup); r=emilio
<!-- Please describe your changes on the following line: -->

<s>Depends on https://github.com/servo/rust-cssparser/pull/122.</s>

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

<!-- 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: 94e563e4d9292d7b19ce061e070cda358e822172

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b6f18aa92334574e0874e2ce8505c03f295c7d49
2017-02-26 02:19:32 -08:00
Nazım Can Altınova
f01a814b04 servo: Merge #15732 - Fix parsing of ClipRect (from canaltinova:clip-parse); r=Manishearth
<!-- Please describe your changes on the following line: -->
Fix parsing of ClipRect for clip property.

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

<!-- Either: -->
- [X] There are tests for these changes

<!-- 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: bdd3608d453f30472f100ad661b1f3e855e258d2

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : eea7ecf926dd64fba203fc8c2138a088e439f221
2017-02-24 13:22:15 -08:00
Glenn Watson
528abf02e1 servo: Merge #15700 - Introduce CSSPixel as a replacement for ViewportPx and PagePx (from glennw:zoom-wip-2); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 1d13e6a2df42af3cce427a0b2062ac70d28c05d0

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 65cadddcb0ce3aac92adcdbdc9c76b15c88f543d
2017-02-23 16:01:16 -08:00
Glenn Watson
9e303bf129 servo: Merge #15697 - Add support for most of the border-image properties, pass to WR (from glennw:border-image); r=jdm,pcwalton
This adds support for:
 * border-image (images, not gradients yet)
 * border-image-source
 * border-image-slice
 * border-image-repeat (stretch + repeat only for now)

Remaining work:
 * Connect border-image-outset (WR supports this).
 * border-image-width

Source-Repo: https://github.com/servo/servo
Source-Revision: 6c9e94b1c07dd148430d175e79c595db82dea742

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1266344fb19194b3b2500700fb636c577a2d5366
2017-02-23 13:40:40 -08:00