Commit graph

19469 commits

Author SHA1 Message Date
Bobby Holley
50a85a5dd6
style: Cap the number of style threads at six.
Differential Revision: https://phabricator.services.mozilla.com/D1928
Bug: 1431285
Reviewed-by: emilio
2018-07-09 03:04:01 +02:00
Emilio Cobos Álvarez
c23dca874f
style: Reformat font.mako.rs.
To be consistent, use the block indentation the rest of the Rust code uses.

Differential Revision: https://phabricator.services.mozilla.com/D1906
Bug: 1472552
Reviewed-by: xidorn
2018-07-09 03:03:41 +02:00
bors-servo
41e105733c
Auto merge of #21129 - servo:webgl, r=emilio
Implement instanced WebGL drawing calls (part of #20791)

This is half of #20599. The check for drawElements is a bit more complex to implement.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21129)
<!-- Reviewable:end -->
2018-07-08 04:45:37 -04:00
Anthony Ramine
4e6eea221a Implement instanced WebGL drawing calls (part of #20791) 2018-07-08 10:44:45 +02:00
Anthony Ramine
0aefffc5bf Correctly implement the vertex buffer checks in drawArrays
This is half of #20599. The check for drawElements is a bit more complex
to implement.
2018-07-08 10:44:45 +02:00
Anthony Ramine
f0ca100e87 Return an empty typed array from gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS) 2018-07-08 10:44:42 +02:00
Anthony Ramine
31774e9203 Implement gl.getParameter(gl.MAX_VIEWPORT_DIMS) 2018-07-08 10:14:10 +02:00
Anthony Ramine
0e6bec65bb Return typed arrays from gl.getParameter (fixes #20655) 2018-07-08 10:11:44 +02:00
Anthony Ramine
6996d1ce36 Fix gl.getShaderSource and gl.getShaderInfoLog
It only returns null if there was an error, and the only error isn't
implemented yet.
2018-07-08 10:11:44 +02:00
Anthony Ramine
0e93f06d8d Pass more GL limits to the ANGLE shader compiler 2018-07-08 10:11:44 +02:00
bors-servo
bd0c001218
Auto merge of #21135 - Eijebong:regex, r=SimonSapin
Update regex to 1.0

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21135)
<!-- Reviewable:end -->
2018-07-07 15:10:34 -04:00
Simon Sapin
a09899be99 Upgrade to rustc 1.29.0-nightly (e06c87544 2018-07-06) 2018-07-07 12:53:39 +02:00
Bastien Orivel
1766867cf4 Update regex to 1.0 2018-07-07 12:03:17 +02:00
Manish Goregaokar
cceaede96a Make (dictionary)::empty() safe
It currently works by constructing from null (which will throw a runtime
error if there are non-defaultable members).

This changes it so that we no longer need a JSContext to construct this,
so it can be safely constructed. In the case of non-defaultable members,
this method simply does not exist.
2018-07-06 13:10:56 -07:00
bors-servo
c90737e6c8
Auto merge of #21118 - servo:webgl, r=emilio
Store vertex attribs data in DOM and optimise GetVertexAttrib

This is not an extremely useful change on its own but those things need to be stored on the DOM side to implement some draw checks anyway.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21118)
<!-- Reviewable:end -->
2018-07-05 08:21:45 -04:00
Anthony Ramine
15389586d9 Make gl.useProgram(null) do the right thing 2018-07-05 14:20:47 +02:00
Anthony Ramine
fc593c68c5 Store active attribs in DOM and optimise active attributes APIs 2018-07-05 14:20:47 +02:00
Anthony Ramine
0e2e834d18 Fix gl.linkProgram() signature 2018-07-05 14:20:47 +02:00
Anthony Ramine
cde6023ed4 Store vertex attribs data in DOM and optimise GetVertexAttrib 2018-07-05 14:20:47 +02:00
Anthony Ramine
0814bd6699 Rename VertexAttribs::set_from to VertexAttribs::clone_from 2018-07-05 14:20:47 +02:00
Anthony Ramine
0018e5e6ba Refactor some vertex attrib checks 2018-07-05 14:20:47 +02:00
Anthony Ramine
f108a3e797 Introduce VertexAttribData 2018-07-05 14:20:47 +02:00
Anthony Ramine
5d43f1c9bd Rename BoundAttribBuffers to VertexAttribs and make it store a slice 2018-07-05 14:20:44 +02:00
bors-servo
3c43fa6b1d
Auto merge of #21105 - Manishearth:dom-inheritance-assert, r=nox
Assert that DOM structs have the correct first field

Not having the right field can lead to fun bugs like https://github.com/ferjm/servo/pull/1 where the struct gets mis-reinterpreted as what should be its parent (but is not layout-wise)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21105)
<!-- Reviewable:end -->
2018-07-03 12:52:12 -04:00
Manish Goregaokar
ad198993b1 Assert that DOM structs have the correct first field
DOM structs embed their parent type as their first field. This
introduces a `.parent()` method to the DOM struct that returns its first
field, and codegens a type assert that ensures that `.parent()` returns
the parent struct.

This generates:

On `#[dom_struct]`:

```rust
impl HasParent for Type {
    type Parent = ParentType;
    fn as_parent(&self) -> ParentType {
        &self.first_field
    }
}
```

In the codegen files:

```rust
impl Type {
    fn __assert_parent_type(&self) {
        let _: &ParentType = self.as_parent();
    }
}
````
2018-07-03 09:39:29 -07:00
paavininanda
5f77b60c3a Making getters and setters 2018-07-03 01:34:22 +05:30
Simon Sapin
3c992af8a1 Remove debugging println from a year ago 2018-07-02 13:25:44 +02:00
Emilio Cobos Álvarez
36495d677f
Remove unused code for parsing a sizes attribute.
We have `SourceSizeList` in
components/style/values/specified/source_size_list.rs which does the job and is
tested via WPT in Gecko.
2018-07-01 10:53:42 +02:00
Emilio Cobos Álvarez
8e5c853fca
style: Appease tidy. 2018-07-01 01:01:46 +02:00
Emilio Cobos Álvarez
719209316c
Fix servo build. 2018-07-01 00:54:30 +02:00
Emilio Cobos Álvarez
e149059608
style: Fix build / unit tests. 2018-07-01 00:54:30 +02:00
Emilio Cobos Álvarez
fc5dbc1bae
style: Remove stray newline. 2018-07-01 00:11:08 +02:00
Emilio Cobos Álvarez
c2d21a8497
style: Serialize content properties using Servo.
Bug: 1472443
Reviewed-by: xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1901
2018-07-01 00:10:46 +02:00
Emilio Cobos Álvarez
856924f167
style: Make StyleContentType an enum class.
Most of it is automated by:

  %s/eStyleContentType_/StyleContentType::/g
  %s/nsStyleContentType/StyleContentType/g

But I removed some parentheses by hand.

Bug: 1472443
Reviewed-by: xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1900
2018-07-01 00:10:31 +02:00
Emilio Cobos Álvarez
28c9820dd9
style: Expose logical props in computed style.
Bug: 1116638
Reviewed-by: xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1862
2018-07-01 00:10:13 +02:00
Olli Pettay
6483a89848
if ExtendedDOMSlots are used before slots, use FatSlots to have fewer allocations.
Bug: 1419661
2018-07-01 00:09:54 +02:00
Gerald Squelart
8488875a56
style: Removed layout.css.all-shorthand.enabled pref.
The 'all' shorthand has shipped a long time ago, so this pref is not needed
anymore.

Bug: 1459524
Reviewed-by: heycam
MozReview-Commit-ID: GND8qSVAfCG
2018-07-01 00:09:38 +02:00
Emilio Cobos Álvarez
e6d62b685b
style: Make :host() and ::slotted() account for the inner selector's specificity.
As resolved in https://github.com/w3c/csswg-drafts/issues/1915.

Bug: 1454165
Reviewed-by: xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1849
2018-07-01 00:09:08 +02:00
Olli Pettay
8688c53f07
style: Unconditionally enable :defined in chrome.
Bug: 1471871
Reviewed-by: emilio
2018-07-01 00:08:48 +02:00
Olli Pettay
b68e4c2352
style: Implement :defined pseudo-class for custom elements.
Bug: 1331334
Reviewed-by: emilio
2018-07-01 00:08:33 +02:00
Emilio Cobos Álvarez
06fa3406de
style: Put offset-* aliases behind a pref.
Bug: 1464782
Reviewed-by: xidorn
MozReview-Commit-ID: Hl6Muim3wVH
2018-07-01 00:08:20 +02:00
Emilio Cobos Álvarez
65953fb158
style: Rename offset-* logical properties to inset-*.
Bug: 1464782
Reviewed-by: xidorn
MozReview-Commit-ID: BW44sru99RF
2018-07-01 00:08:09 +02:00
Xidorn Quan
ce0496e116
style: Generate ComputedStyleMap entry list from property data.
This changes the order of properties returned from gCS. The old order
doesn't make much sense, and other browsers don't agree on an identical
order either, so it should be trivial to change it. Also the spec isn't
super clear / useful in this case.

Several -moz-prefixed properties are excluded from the list due to their
being internal. I suspect they are never accessible anyway, so probably
nothing gets changed by this.

Bug: 1471114
Reviewed-by: xidorn
MozReview-Commit-ID: 9LfangjpJ3P
2018-07-01 00:07:50 +02:00
Xidorn Quan
9d1ae1840f
style: Upgrade cssparser.
Bug: 1471104
MozReview-Commit-ID: 74rBgkJEcYd
2018-07-01 00:07:36 +02:00
Xidorn Quan
26a9c9f53c
style: Remove location from preludes and take it from argument.
Bug: 1471104
Reviewed-by: emilio
MozReview-Commit-ID: HeJUQvkacaf
2018-07-01 00:07:20 +02:00
Xidorn Quan
0d0c6bd29e
style: Use RUSTFMT env in stylo build script.
Bug: 1471486
Reviewed-by: emilio
MozReview-Commit-ID: JOg0xkmG5Yx
2018-07-01 00:07:01 +02:00
Emilio Cobos Álvarez
07456bbd3d
style: Simplify selector serialization.
Bug: 1471063
Reviewed-by: xidorn
MozReview-Commit-ID: 959U7yd5W9j
2018-07-01 00:06:48 +02:00
Emilio Cobos Álvarez
84280c5203
style: Deindent the serialization loop.
Bug: 1471063
Reviewed-by: xidorn
MozReview-Commit-ID: GPlUAx7YXVb
2018-07-01 00:06:35 +02:00
Emilio Cobos Álvarez
aca724ec79
style: Remove unneeded combinator check in selector-matching.
The combinator doesn't change during the loop, no need to check it.

Bug: 1471063
Reviewed-by: xidorn
MozReview-Commit-ID: KIAt0WiEOtI
2018-07-01 00:06:17 +02:00
Hiroyuki Ikezoe
2274f392d8
style: Try to allocate possible size for AnimationValueMap before composing.
The EffectSet count does not exactly represent the count what we really need
for AnimationValueMap, but in most cases it matches.  For example;

1) The element has two different keyframes animations

 @keyframes anim1 {
   to { opacity: 0; }
 }
 @keyframes anim2 {
   to { transform: rotate(360deg); }
 }

 In this case the number matches.

2) The element has two animations but both keyframes have the same CSS property

 @keyframes anim1 {
   to { opacity: 0; }
 }
 @keyframes anim2 {
   to { opacity: 0.1; }
 }

 In this case the number doesn't match, moreover it results more memory than we
 ever needed, but this case is presumably less common.

3) The element has an animation having keyframes for two different CSS
   properties.

 @keyframes anim {
   from { opacity: 0; transform: rotate(360deg); }
 }

 In this kind of cases, the number doesn't match.  But even so, this patch
 reduces the opportunities that the AnimationValueMap tries to allocate a new
 memory (i.e. less opportunities on expanding the map).

Note that when the hash map is expanded, we do allocate a new RawTable with the
new size then replace the old one with the new one [1], so I believe this
change will reduce the crash rate to some extent.

[1] https://hg.mozilla.org/mozilla-central/file/15c95df467be/servo/components/hashglobe/src/hash_map.rs#l734

Bug: 1418806
Reviewed-by: birtles
MozReview-Commit-ID: 6tcF9aqXh7a
2018-07-01 00:05:46 +02:00