servo/components
Emilio Cobos Álvarez ccff9b294f style: Use cbindgen for URIs.
This doesn't clean up as much as a whole, but it's a step in the right
direction. In particular, it allows us to start using simple bindings for:

 * Filters
 * Shapes and images, almost. Need to:
   * Get rid of the complex -moz- gradient parsing (let
     layout.css.simple-moz-gradient.enabled get to release).
 * Counters, almost. Need to:
   * Share the Attr representation with Gecko, by not using Option<>.
     * Just another variant should be enough (ContentItem::{Attr,Prefixedattr},
       maybe).

Which in turn allows us to remove a whole lot of bindings in followups to this.

The setup changes a bit. This also removes the double pointer I complained about
while reviewing the shared UA sheet patches. The old setup is:

```
SpecifiedUrl
 * CssUrl
   * Arc<CssUrlData>
     * String
     * UrlExtraData
 * UrlValueSource
   * Arc<CssUrlData>
   * load id
   * resolved uri
   * CORS mode.
   * ...
```

The new one removes the double reference to the url data via URLValue, and looks
like:

```
SpecifiedUrl
 * CssUrl
   * Arc<CssUrlData>
     * String
     * UrlExtraData
     * CorsMode
     * LoadData
       * load id
       * resolved URI
```

The LoadData is the only mutable bit that C++ can change, and is not used from
Rust. Ideally, in the future, we could just use rust-url to resolve the URL
after parsing or something, and make it all immutable. Maybe.

I've verified that this approach still works with the UA sheet patches (via the
LoadDataSource::Lazy).

The reordering of mWillChange is to avoid nsStyleDisplay from going over the
size limit. We want to split it up anyway in bug 1552587, but mBinding gains a
tag member, which means that we were having a bit of extra padding.

One thing I want to explore is to see if we can abuse rustc's non-zero
optimizations to predict the layout from C++, but that's something to explore at
some other point in time and with a lot of care and help from Michael (who sits
next to me and works on rustc ;)).

Differential Revision: https://phabricator.services.mozilla.com/D31742
2019-06-04 01:03:50 -04:00
..
allocator Make Servo components use winapi 0.3 2019-01-16 14:29:53 +01:00
atoms atoms: Add some static atoms in code that is shared with gecko. 2019-05-29 16:14:33 +02:00
background_hang_monitor Glutin update: dependencies update 2019-05-25 07:15:30 -04:00
bluetooth #23065 removed unnecessary headless checking 2019-03-22 16:31:18 +03:00
bluetooth_traits Update regex to 1.1 2019-04-29 22:25:12 +09:00
canvas Make Azure backend build again. 2019-06-03 00:12:01 -04:00
canvas_traits Auto merge of #23226 - mmatyas:webgl_compressed_textures, r=jdm 2019-05-21 17:10:24 -04:00
compositing compositing: removed opts-get 2019-06-01 13:54:57 -06:00
config Add blank XRTest interface 2019-05-30 12:53:47 -07:00
config_plugins #8539 Config preferences backend restructure 2019-03-20 15:01:26 +00:00
constellation Add cargo feature to control canvas backend. 2019-06-03 00:12:01 -04:00
debugger
deny_public_fields Update syn and related dependencies 2018-11-30 17:48:41 +01:00
derive_common Update darling to 0.9 2019-05-23 12:14:56 +02:00
devtools Introduce EvaluateJSAsync method and evaluationResponse event 2019-05-07 18:16:04 +02:00
devtools_traits Update references to malloc_size_of_derive, which is in crates.io now. 2019-01-13 21:59:31 +01:00
dom_struct Can collect webidl paths. 2019-04-20 22:39:22 +02:00
domobject_derive Update syn and related dependencies 2018-11-30 17:48:41 +01:00
embedder_traits Add a sampling profiler and a script to generate profiles for use with Gecko tooling. 2019-03-26 16:35:08 -04:00
fallible
geometry WR update: new viewport semantic 2019-03-22 15:41:48 +08:00
gfx Auto merge of #23477 - est31:unused_code_removal, r=jdm 2019-06-02 19:43:00 -04:00
gfx_traits Fix deprecation warnings 2019-01-28 11:32:40 +01:00
hashglobe
jstraceable_derive Update syn and related dependencies 2018-11-30 17:48:41 +01:00
layout Auto merge of #23477 - est31:unused_code_removal, r=jdm 2019-06-02 19:43:00 -04:00
layout_thread script: Fix Servo build. 2019-05-29 16:14:36 +02:00
layout_traits Measure layout queries blocked by ongoing layout 2019-04-13 07:42:07 +02:00
malloc_size_of Update xml5ever and html5ever 2019-05-19 22:14:28 +02:00
metrics Update references to malloc_size_of_derive, which is in crates.io now. 2019-01-13 21:59:31 +01:00
msg bound sampler buffer 2019-03-31 20:14:46 +08:00
net Remove unused code from net and net_traits crates 2019-06-02 02:44:37 +02:00
net_traits Remove unused code from net and net_traits crates 2019-06-02 02:44:37 +02:00
pixels Update references to malloc_size_of_derive, which is in crates.io now. 2019-01-13 21:59:31 +01:00
profile Update regex to 1.1 2019-04-29 22:25:12 +09:00
profile_traits fixup! Measure layout queries blocked by ongoing layout 2019-04-17 17:23:17 +02:00
rand
range Update references to malloc_size_of_derive, which is in crates.io now. 2019-01-13 21:59:31 +01:00
remutex Rustfmt has changed its default style :/ 2018-12-28 13:17:47 +01:00
script Auto merge of #23372 - sreeise:xhr_resource_url, r=jdm 2019-06-02 22:48:25 -04:00
script_layout_interface Update xml5ever and html5ever 2019-05-19 22:14:28 +02:00
script_plugins Auto merge of #23405 - Eijebong:weedle, r=jdm 2019-05-20 21:13:33 -04:00
script_traits Auto merge of #23171 - hundredeir:find_elem_elems, r=jdm 2019-05-19 15:25:07 -04:00
selectors style: Cleanup selector-matching for nested pseudo-elements, match ::slotted correctly when there's no selector before it, and add tests. 2019-05-29 16:14:26 +02:00
servo Auto merge of #23451 - pylbrecht:canvas.rendering, r=Manishearth 2019-06-03 11:05:56 -04:00
servo_arc style: Use cbindgen for URIs. 2019-06-04 01:03:50 -04:00
size_of_test
std_test_override
style style: Use cbindgen for URIs. 2019-06-04 01:03:50 -04:00
style_derive Update darling to 0.9 2019-05-23 12:14:56 +02:00
style_traits style: Appease tidy. 2019-05-29 16:14:31 +02:00
to_shmem style: Add an owned slice type which cbindgen can understand. 2019-05-10 12:43:02 +02:00
to_shmem_derive Update darling to 0.9 2019-05-23 12:14:56 +02:00
url style: Fix servo build, and appease tidy / fmt. 2019-04-12 12:20:15 +02:00
webdriver_server Auto merge of #23171 - hundredeir:find_elem_elems, r=jdm 2019-05-19 15:25:07 -04:00
webvr Support creating and messaging mock display 2019-05-30 19:04:08 -07:00
webvr_traits Support creating and messaging mock display 2019-05-30 19:04:08 -07:00