Commit graph

31774 commits

Author SHA1 Message Date
Jon Leighton
e4acb3f77f Add test for FontContext/FontGroup functionality
Unfortunately, this required quite a bit of changes to the non-test
code. That's because FontContext depends on a FontCacheThread, which in
turn depends on a CoreResourceThread and therefore lots of other data
structures.

It seemed like it would be very difficult to instantiate a FontContext
as it was, and even if we could it seems like overkill to have all these
data structures present for a relatively focused test.

Therefore, I created a FontSource trait which represents the interface
which FontContext uses to talk to FontCacheThread. FontCacheThread then
implements FontSource. Then, in the test, we can create a dummy
implementation of FontSource rather than using FontCacheThread.

This actually has the advantage that we can make our dummy
implementation behave in certain specific way which are useful for
testing, for example it can count the number of times
find_font_template() is called, which helps us verify that
caching/lazy-loading is working as intended.
2018-02-22 16:36:09 +01:00
Jon Leighton
f22e5ef3bd Lazy load fonts in a FontGroup
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.
2018-02-22 16:36:05 +01:00
bors-servo
691f3be24a
Auto merge of #20082 - emilio:ignore-existing-styles, r=bholley
style: Cleanup always-false argument to Servo_ResolveStyleLazily.

I changed this setup in https://bugzilla.mozilla.org/show_bug.cgi?id=1414999,
because it was totally unsound.

<!-- 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/20082)
<!-- Reviewable:end -->
2018-02-21 06:09:15 -05:00
bors-servo
554b0c0d06
Auto merge of #20096 - maekawatoshiki:master, r=emilio
Fix typo

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

<!-- 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/20096)
<!-- Reviewable:end -->
2018-02-21 04:22:43 -05:00
bors-servo
a0fff37de3
Auto merge of #20094 - servo-wpt-sync:wpt_update_20-02-2018, r=jdm
Sync WPT with upstream (20-02-2018)

Automated downstream sync of changes from upstream as of 20-02-2018.
[no-wpt-sync]

<!-- 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/20094)
<!-- Reviewable:end -->
2018-02-21 01:06:32 -05:00
maekawatoshiki
89797c0868 Fix typo 2018-02-21 14:00:06 +09:00
bors-servo
2c060eb81a
Auto merge of #20081 - emilio:more-longhand-stuff, r=nox
style: More serialization tweaks.

This still doesn't fix everything. In particular, we need to check whether the
subproperty will be enabled in Longhands and LonghandsToSerialize too.

I haven't decided yet on what's the best way to do that.

<!-- 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/20081)
<!-- Reviewable:end -->
2018-02-20 23:49:19 -05:00
bors-servo
036b9d3139
Auto merge of #20095 - servo:jdm-patch-9, r=jdm
Set CARGO_HOME for Windows builders.

This is a temporary fix to allow reopening the tree. This value belongs in saltfs instead, but it's already late and I don't want to have to wait to deploy the changes.

<!-- 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/20095)
<!-- Reviewable:end -->
2018-02-20 22:08:50 -05:00
Josh Matthews
47e0dab42a
Set CARGO_HOME for Windows builders.
This sets it to a directory that all relevant users can manipulate without any issues.
2018-02-20 22:02:01 -05:00
WPT Sync Bot
a57b869a58 Update web-platform-tests to revision 58462b6f92aab3eea03ad1ea70923855889ed1e2 2018-02-20 21:46:54 -05:00
Emilio Cobos Álvarez
e47b3b23ab
style: Update bindings. 2018-02-20 21:08:21 +01:00
bors-servo
05b8ba0a48
Auto merge of #20079 - servo:ZEH-INDEX, r=emilio
Replace IntegerOrAuto with ZIndex

It's its only use.

<!-- 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/20079)
<!-- Reviewable:end -->
2018-02-20 12:13:40 -05:00
bors-servo
f5b0a187b0
Auto merge of #20085 - servo:jdm-patch-2, r=emilio
Clean target directories of linux builders.

This should avoid our frequent problems with running out of disk space on the smallest linux build machines. This linux builders are also our fastest ones, so it shouldn't slow down our CI too much.

<!-- 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/20085)
<!-- Reviewable:end -->
2018-02-20 10:36:19 -05:00
Emilio Cobos Álvarez
a4c7728062
style: Cleanup PrioritizedPropertyIter. 2018-02-20 16:32:40 +01:00
Emilio Cobos Álvarez
0b1f78275c
style: Remove unneeded whitespace.
I bet it was added when this code was part of a mako file.
2018-02-20 16:32:13 +01:00
Josh Matthews
710baa4f6f
Clean target directories of linux builders.
This should avoid our frequent problems with running out of disk space on the smallest linux build machines.
2018-02-20 10:21:27 -05:00
Anthony Ramine
b44ffcf498 Replace IntegerOrAuto with ZIndex
It's its only use.
2018-02-20 15:18:22 +01:00
bors-servo
8fdcfb2dfe
Auto merge of #20080 - ferjm:innertext.cleanup, r=emilio
Minor cleanup of element.innerText

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- 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/20080)
<!-- Reviewable:end -->
2018-02-20 08:43:48 -05:00
Emilio Cobos Álvarez
1359c7c218
style: Don't try to serialize the same shorthand over and over.
I looked at what were we doing in that loop, and we're doing tons of dumb stuff.

In particular, we try to serialize the "all" shorthand all the time. This patch
prevents us from trying to serialize shorthands that we've already tried to
serialize.
2018-02-20 14:21:35 +01:00
Emilio Cobos Álvarez
c09257b540
style: There's no need to check the serialized custom properties.
Given they're not duplicated, and can't be part of a shorthand.
2018-02-20 14:21:34 +01:00
Emilio Cobos Álvarez
4c979a8346
style: Remove a unit test that relies on disabled-by-default properties. 2018-02-20 14:21:34 +01:00
Fernando Jiménez Moreno
ff81707928 Minor cleanup of element.innerText 2018-02-20 13:50:53 +01:00
Emilio Cobos Álvarez
94b687306f
style: Cleanup always-false argument to Servo_ResolveStyleLazily.
I changed this setup in https://bugzilla.mozilla.org/show_bug.cgi?id=1414999,
because it was totally unsound.
2018-02-20 12:59:21 +01:00
bors-servo
4d7383f4f3
Auto merge of #20078 - emilio:decl-block-serialization, r=nox
style: Rejigger serialization of a declaration block to not look at the shorthands length.

This is because I'm going to make shorthands() and longhands() return an
iterator, so that we account for prefs properly
(https://bugzilla.mozilla.org/show_bug.cgi?id=1438234).

<!-- 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/20078)
<!-- Reviewable:end -->
2018-02-20 06:40:43 -05:00
Emilio Cobos Álvarez
e46f910b66
style: Rejigger serialization of a declaration block to not look at the shorthands length.
This is because I'm going to make shorthands() and longhands() return an
iterator, so that we account for prefs properly
(https://bugzilla.mozilla.org/show_bug.cgi?id=1438234).
2018-02-20 10:05:58 +01:00
Emilio Cobos Álvarez
c676b52448
style: Sprinkle some #[inline] on trivial methods. 2018-02-20 10:05:12 +01:00
Emilio Cobos Álvarez
f896cb63a6
style: Make DeclarationBlock::get O(1) if we know the longhand isn't there. 2018-02-20 10:04:17 +01:00
bors-servo
6a7ae3b12e
Auto merge of #20077 - servo-wpt-sync:wpt_update_19-02-2018, r=jdm
Sync WPT with upstream (19-02-2018)

Automated downstream sync of changes from upstream as of 19-02-2018.
[no-wpt-sync]

<!-- 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/20077)
<!-- Reviewable:end -->
2018-02-19 23:03:10 -05:00
WPT Sync Bot
8a6476740e Update web-platform-tests to revision 8fed98324bc133df221d778c62cbff210d43b0ce 2018-02-19 21:42:17 -05:00
bors-servo
be902d56c0
Auto merge of #20073 - servo:keywordsize, r=emilio
Remove some useless manual layout optimisation for KeywordSize

<!-- 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/20073)
<!-- Reviewable:end -->
2018-02-19 07:02:45 -05:00
Anthony Ramine
e976955634 Remove some useless manual layout optimisation for KeywordSize 2018-02-19 12:37:46 +01:00
bors-servo
6afdf7c1cb
Auto merge of #20072 - emilio:moz-transform, r=xidorn
style: Unship the legacy syntax for -moz-transform.

Intent to unship link:

  https://groups.google.com/d/msg/mozilla.dev.platform/T3PGm97MPNU/59XUavMlCgAJ

Reviewed-by: xidorn
Bug: 1438297
MozReview-Commit-ID: 6ybGBasPAWU

<!-- 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/20072)
<!-- Reviewable:end -->
2018-02-19 05:46:16 -05:00
Emilio Cobos Álvarez
df132b4954
style: Update bindings. 2018-02-19 11:45:47 +01:00
Emilio Cobos Álvarez
7473796aba
style: Unship the legacy syntax for -moz-transform.
Intent to unship link:

  https://groups.google.com/d/msg/mozilla.dev.platform/T3PGm97MPNU/59XUavMlCgAJ

Reviewed-by: xidorn
Bug: 1438297
MozReview-Commit-ID: 6ybGBasPAWU
2018-02-19 10:46:14 +01:00
bors-servo
a98da8ce93
Auto merge of #20070 - upsuper:authorstyles-size, r=bholley,njn
Add sizeof for AuthorStyles.

This is the Servo side change for [bug 1438497](https://bugzilla.mozilla.org/show_bug.cgi?id=1438497).
2018-02-18 23:13:10 -05:00
Xidorn Quan
f518e55c28 Add sizeof for AuthorStyles. 2018-02-19 15:12:13 +11:00
bors-servo
d423e54d58
Auto merge of #20065 - emilio:note-stuff, r=nox
style: Cleanup GeckoElement::note_explicit_hints

What it's doing is not so complicated.

<!-- 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/20065)
<!-- Reviewable:end -->
2018-02-16 15:33:48 -05:00
bors-servo
d092c2e877
Auto merge of #20064 - emilio:cleanup-length-parsing, r=nox
style: Trivially cleanup length parsing.

Mostly formatting signatures properly, but also removing useless functions and
stuff.

<!-- 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/20064)
<!-- Reviewable:end -->
2018-02-16 14:43:50 -05:00
bors-servo
e97693ee09
Auto merge of #20062 - servo:iamroot, r=emilio
Remove a single use of rooted_vec

<!-- 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/20062)
<!-- Reviewable:end -->
2018-02-16 13:09:28 -05:00
Emilio Cobos Álvarez
2c03609dc1
style: Cleanup GeckoElement::note_explicit_hints.
What it's doing is not so complicated.
2018-02-16 19:00:21 +01:00
Emilio Cobos Álvarez
36e6d57aee
style: Inline maybe_restyle, since it only has one caller. 2018-02-16 19:00:21 +01:00
bors-servo
4454e81878
Auto merge of #20041 - paavininanda:mutflags, r=jdm
Added extra bool in Window object to know about its Mutation Observers

<!-- Please describe your changes on the following line: -->
- Added Cell<bool> type variable in Window object to know whether its mutation observers are present/absent
- Added get and set functions for this variable
- Added supporting test files to check for performance

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

<!-- Either: -->
- [x] There are tests for these changes, but these are manual tests for checking correctness of added code

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

<!-- 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/20041)
<!-- Reviewable:end -->
2018-02-16 12:16:55 -05:00
Nupur Baghel
a1fd6c39a2 Added extra bool in Window object to know about its Mutation Observers 2018-02-16 21:52:29 +05:30
bors-servo
a1c79d21c1
Auto merge of #20059 - servo-wpt-sync:wpt_update_15-02-2018, r=jdm
Sync WPT with upstream (15-02-2018)

Automated downstream sync of changes from upstream as of 15-02-2018.
[no-wpt-sync]

<!-- 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/20059)
<!-- Reviewable:end -->
2018-02-16 10:47:22 -05:00
Emilio Cobos Álvarez
fdc8405330
style: Trivially cleanup length parsing.
Mostly formatting signatures properly, but also removing useless functions and
stuff.
2018-02-16 16:04:19 +01:00
bors-servo
504b901cc8
Auto merge of #20061 - emilio:author-styles, r=xidorn
style: Make XBL / Shadow DOM use something more light-weight than a Stylist.

Introduce AuthorStyles, which is just a struct aggregating stylesheets +
CascadeData, with a quirks_mode parameter because XBL sucks so bad.

Bug: 1436059
Reviewed-by: xidorn
MozReview-Commit-ID: 7q99tSNXo0K

<!-- 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/20061)
<!-- Reviewable:end -->
2018-02-16 09:54:06 -05:00
Emilio Cobos Álvarez
a6afaf2428
style: Update bindings. 2018-02-16 15:21:08 +01:00
Anthony Ramine
b6b6b46568 Remove a single use of rooted_vec 2018-02-16 14:02:05 +01:00
Emilio Cobos Álvarez
5e64cb3516
style: Make XBL / Shadow DOM use something more light-weight than a Stylist.
It's just a struct aggregating stylesheets + CascadeData, with a quirks_mode
parameter because XBL sucks so bad.

Bug: 1436059
Reviewed-by: xidorn
MozReview-Commit-ID: 7q99tSNXo0K
2018-02-16 13:42:36 +01:00
bors-servo
a6113af873
Auto merge of #20054 - ferjm:innertext.setter, r=emilio
Implement element.innerText setter

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

<!-- 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/20054)
<!-- Reviewable:end -->
2018-02-16 05:38:38 -05:00