gecko-dev/servo/components
Pyfisch 8844d0506c servo: Merge #16666 - Improvements to gradients (from pyfisch:gradients); r=emilio
This is a collection of commits improving the rendering of linear and radial gradients by making them conform more closely to the spec.

All commits are are independent and should work without the others.

These commits address the following issues:
* a956e3fd529715cc0ac39b23910f19e092c7c5a9 resolves #3908 but contains also some other necessary changes to `convert_gradient_stops`. The updated function has a few more copys but should be more correct. Maybe @pcwalton wants to comment since he has originally written the code.
* b230be8aaf318fb754cf58e5cd243087df2f7e0f partially solves #16638. (Partially because `border-image-outset` is not implemented. This is an older issue for border gradients: #15894.

To quickly catch regressions and see changes to gradients I have created [a set of twelve manual testcases](https://pyfisch.org/stuff/testcases-gradients.html) and placed them in a single file. Attached are two files. One shows how the gradients were rendered before the PR the other one with the changes applied.

![testcases-old](https://cloud.githubusercontent.com/assets/2781017/25580052/b433278e-2e7d-11e7-9396-500fef12eee0.png)
![testcases-new](https://cloud.githubusercontent.com/assets/2781017/25580051/b43222c6-2e7d-11e7-99ab-c0a2709baf41.png)

r? @emilio
and maybe also @jdm?

---
- [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: 3f1ae6425588bbac37da2e0f8aa2a708f51fa988

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b6e9d1479c65a59ebe6df841e7b648782449c5dc
2017-05-07 07:56:51 -05:00
..
atoms servo: Merge #16455 - Bug 1354970 - Add @counter-style rules (from servo:counter-style); r=upsuper 2017-04-26 00:59:58 -05:00
bluetooth servo: Merge #16061 - Use servo_config::opts only on linux target (from methyl:master); r=Manishearth 2017-03-21 10:18:25 -07:00
bluetooth_traits servo: Merge #15588 - Update serde to 0.9 (from servo:serde); r=SimonSapin 2017-02-18 12:10:26 -08:00
canvas servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
canvas_traits servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
compositing servo: Merge #15794 - Notify embedder when history changes (from paulrouget:head_parsed_url); r=asajeffrey 2017-04-25 14:14:31 -05:00
config servo: Merge #15773 - Android life cycle improvements and Gradle integration (from MortimerGoro:android_improvements); r=larsbergstrom,fabricedesre 2017-04-21 15:52:13 -05:00
constellation servo: Merge #15794 - Notify embedder when history changes (from paulrouget:head_parsed_url); r=asajeffrey 2017-04-25 14:14:31 -05:00
debugger servo: Merge #16013 - Enable the debugger on Android (from nox:mio); r=larsbergstrom 2017-03-17 08:36:27 -07:00
deny_public_fields servo: Merge #15752 - Update syn to 0.11 (from nox:syn); r=SimonSapin 2017-02-27 05:48:43 -08:00
devtools servo: Merge #16495 - Make tidy check that opening and closing braces that begin a line do … (from coalman:tidy-brace-alignment); r=emilio 2017-04-19 03:06:31 -05:00
devtools_traits servo: Merge #15868 - Update Hyper and OpenSSL (from servo:hyper); r=jdm 2017-03-31 11:46:09 -05:00
dom_struct servo: Merge #15715 - Make #[dom_struct] a proc_macro attribute (from nox:custom-derive); r=SimonSapin 2017-02-24 05:56:30 -08:00
domobject_derive servo: Merge #15752 - Update syn to 0.11 (from nox:syn); r=SimonSapin 2017-02-27 05:48:43 -08:00
geometry servo: Merge #15680 - Rename ScreenPx to DeviceIndependentPixel (from glennw:zoom-wip); r=mbrubeck 2017-02-21 20:45:20 -08:00
gfx servo: Merge #16666 - Improvements to gradients (from pyfisch:gradients); r=emilio 2017-05-07 07:56:51 -05:00
gfx_traits servo: Merge #16531 - Eliminate ScrollRootId (from mrobinson:clip-id); r=glennw 2017-04-20 01:55:33 -05:00
jstraceable_derive servo: Merge #15752 - Update syn to 0.11 (from nox:syn); r=SimonSapin 2017-02-27 05:48:43 -08:00
layout servo: Merge #16666 - Improvements to gradients (from pyfisch:gradients); r=emilio 2017-05-07 07:56:51 -05:00
layout_thread servo: Merge #16702 - Use a custom arc in the style system (from bholley:custom_arc); r=emilio 2017-05-02 20:01:10 -05:00
layout_traits servo: Merge #16048 - Make image cache per-document rather than global (from ferjm:issue-15701-image-cache); r=jdm 2017-03-27 13:50:46 -07:00
msg servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
net servo: Merge #16706 - Bump base64 to 0.4.2 (from alicemaz:master); r=nox 2017-05-04 06:08:37 -05:00
net_traits servo: Merge #16681 - Stop using unstable slice_patterns feature (from mbrubeck:slice_patterns); r=emilio 2017-05-01 21:48:33 -05:00
profile servo: Merge #16297 - Remove servo_url dependency for geckolib (from upsuper:stylo-servo-url); r=SimonSapin 2017-04-07 04:34:47 -05:00
profile_traits servo: Merge #15670 - Kill the plugins crate and its clippy support (from nox:die-plugins-die); r=Manishearth 2017-02-21 05:15:15 -08:00
rand servo: Merge #15107 - convert less interesting debug! logs to traces (from DexterHaslem:15100-convert-debug-to-traces); r=cbrewster 2017-01-18 21:29:59 -08:00
range servo: Merge #15588 - Update serde to 0.9 (from servo:serde); r=SimonSapin 2017-02-18 12:10:26 -08:00
remutex servo: Merge #15107 - convert less interesting debug! logs to traces (from DexterHaslem:15100-convert-debug-to-traces); r=cbrewster 2017-01-18 21:29:59 -08:00
script servo: Merge #16697 - Make History attributes and methods throw (from cbrewster:history_throw); r=KiChjang 2017-05-04 18:50:17 -05:00
script_layout_interface servo: Merge #16689 - Upgrade to html5ever 0.16 (from servo:m5e); r=nox 2017-05-03 08:42:41 -05:00
script_plugins servo: Merge #16681 - Stop using unstable slice_patterns feature (from mbrubeck:slice_patterns); r=emilio 2017-05-01 21:48:33 -05:00
script_traits servo: Merge #16738 - derive(Debug) for LoadData (from paulrouget:LoadDataDebug); r=Wafflespeanut 2017-05-05 12:05:22 -05:00
selectors servo: Merge #16655 - Fix broken unit tests (from servo:jdm-patch-1); r=emilio 2017-05-03 09:47:44 -05:00
servo servo: Merge #16048 - Make image cache per-document rather than global (from ferjm:issue-15701-image-cache); r=jdm 2017-03-27 13:50:46 -07:00
style servo: Merge #16754 - Fix parsing behavior of text-shadow property (from canaltinova:text-shadow); r=emilio 2017-05-06 16:10:22 -05:00
style_traits servo: Merge #16733 - Make stylo support moz-prefixed cursor values (from KuoE0:bug-1356072); r=xidorn 2017-05-04 22:27:44 -05:00
url servo: Merge #16297 - Remove servo_url dependency for geckolib (from upsuper:stylo-servo-url); r=SimonSapin 2017-04-07 04:34:47 -05:00
webdriver_server servo: Merge #16706 - Bump base64 to 0.4.2 (from alicemaz:master); r=nox 2017-05-04 06:08:37 -05:00
webvr servo: Merge #16612 - Update WR (groove/ridge borders, mix-blend-mode opts) (from glennw:update-wr-groove-ridge-2); r=jdm 2017-04-26 07:56:32 -05:00
webvr_traits servo: Merge #16260 - Gamepad API implementation (from MortimerGoro:gamepad); r=nox,larsbergstrom 2017-04-13 16:10:42 -05:00