Commit graph

29067 commits

Author SHA1 Message Date
Anthony Ramine
24cf15a014 Store microtask queues in their global (fixes #18467) 2017-09-13 15:02:45 +02:00
Anthony Ramine
7481ce177f Store a Rc<MicrotaskQueue> directly on Window 2017-09-13 14:27:45 +02:00
Anthony Ramine
7f9f95b7ce Store microtask queues in Rc<T> 2017-09-13 14:27:42 +02:00
Anthony Ramine
fe29037e89 Avoid a clone in ScriptThread::new 2017-09-13 14:27:40 +02:00
Anthony Ramine
65dfd6bf63 Clean up DissimilarOriginWindow::origin
It's not dead code, and it should use Castable instead of directly reaching
to the globascope field.
2017-09-13 14:27:36 +02:00
bors-servo
ac1b49b198 Auto merge of #18381 - BorisChiou:stylo/transform/rounding, r=<try>
stylo: Bug 1392161 - Introduce CSSPixelLength as computed::Length

These are the inter-dependent patches of bug 1392161. We want to handle
extreme small lengths carefully for some properties, such as transform, so we
shouldn't use |Au| as the computed value of specified::Length. Now, we introduce
a new type, CSSPixelLength, which is a wrapper of CSSFloat, and it is the
computed value of specified::Length, so we can keep the fractional part
of computed::Length.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1392161](https://bugzilla.mozilla.org/show_bug.cgi?id=1392161).
- [X] These changes do not require tests because there is a wpt test for this, and I also add some others in Gecko.

<!-- 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/18381)
<!-- Reviewable:end -->
2017-09-13 05:20:20 -05:00
Boris Chiou
ce9f1ed143 Fix extremely small pixel value for transform on Servo.
Sometimes, we want to use extremely small pixel value in transform, e.g.
translate(calc(0.001px)), which should be rendered correctly together
with scale(100000). This patch only fixes this case for Servo because
Stylo still uses Au on the Gecko side, even if we pass pixel value into
FFI directly in the previous patch.
2017-09-13 18:10:47 +08:00
Boris Chiou
b89286e8e7 Use CSSPixelLength in LengthOrPercentage{*}.
Replace Au with CSSPixelLength in LengthOrPercentage,
LengthOrPercentageOrAuto, and LengthOrPercentageOrNone.
2017-09-13 18:10:46 +08:00
Boris Chiou
535c1e3c6f Replace Au with CSSPixelLength in CalcLengthOrPercentage.
We replace Au with CSSPixelLength for the length part of
computed::CalcLengthOrPercentage. Therefore, it would be easier to use
CSSPixelLength for all other LengthOrPercentage{*} types.
2017-09-13 18:10:39 +08:00
Boris Chiou
a949e2a057 Introduce CSSPixelLength and update NonNegativeLength.
First, we define computed::CSSPixelLength which contains a CSSFloat, a
pixel value, and then we replace computed::Length with CSSPixelLength.
Therefore, the |ComputedValue| of NoCalcLength, AbsoluteLength,
FontRelativeLength, ViewportPercentageLength, CharacterWidth, and
PhysicalLength is CSSPixelLength.

Besides, we drop NonNegativeAu, and replace computed::NonNegativeLength
with NonNegative<computed::Length>. (i.e. NonNegative<CSSPixelLength>)
2017-09-13 18:05:14 +08:00
Akos Kiss
a650e8b444 Bump the device crate to add blurmac dependency to enable Web Bluetooth on macOS 2017-09-13 11:37:40 +02:00
Anthony Ramine
1c46135c75 Reformat DissimilarOriginWindow::new 2017-09-13 10:53:05 +02:00
Anthony Ramine
b8ae82ffb8 Reformat GlobalScope::new_inherited 2017-09-13 10:53:03 +02:00
Anthony Ramine
3764217ca6 Reformat WorkerGlobalScope::new_inherited 2017-09-13 10:53:01 +02:00
Anthony Ramine
71df1d5d9b Reformat WorkletGlobalScope::new_inherited 2017-09-13 10:53:00 +02:00
Anthony Ramine
0822a74f94 Reformat Window::new 2017-09-13 10:50:09 +02:00
Glenn Watson
f6e875cfb3 Update WR (new frame out feature for webvr team).
This includes the experimental frame output feature that the
webvr team requested. This feature allows configuring WR to
output the contents of an iframe onto a native texture, allowing
experiments such as interactive web pages inside a webgl/webvr scene.
2017-09-13 17:19:29 +10:00
Nicholas Nethercote
6a088b6804 Support MallocSizeOf for [T] and Box<[T]>.
This requires tweaking things a bit to handle dynamically-sized types.
2017-09-13 16:06:55 +10:00
Nicholas Nethercote
f83099f62a Make MallocSizeOf::malloc_{,enclosing_}size_of unsafe.
This fixes #18473.
2017-09-13 15:59:54 +10:00
bors-servo
cad3aff508 Auto merge of #18470 - glennw:update-wr-bf, r=pcwalton
Update WR (backface API changes).

This does the minimal work to update to the API changes related
to backface support. It doesn't actually pass through any info
about the backface visibility flags yet.

<!-- 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/18470)
<!-- Reviewable:end -->
2017-09-12 19:07:49 -05:00
Josh Matthews
191201de6c Serialize shorthands in preferred order. 2017-09-12 18:31:21 -04:00
Glenn Watson
15d7697474 Update WR (backface API changes).
This does the minimal work to update to the API changes related
to backface support. It doesn't actually pass through any info
about the backface visibility flags yet.
2017-09-13 07:55:55 +10:00
bors-servo
66778851a8 Auto merge of #18460 - julian-seward1:master, r=emilio
Bug 1398593 - stylo: mitigate performance impact of fallible allocati…

…on on stylist rebuilds.  r=emilio.

<!-- 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: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./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 _____

<!-- 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/18460)
<!-- Reviewable:end -->
2017-09-12 15:25:52 -05:00
bors-servo
b856f11388 Auto merge of #18459 - servo:kill-cvas, r=emilio
Kill ComputedValueAsSpecified 🔫

<!-- 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/18459)
<!-- Reviewable:end -->
2017-09-12 14:14:33 -05:00
bors-servo
72f0fda836 Auto merge of #18465 - bholley:kill_restyledata, r=emilio
Eliminate RestyleData

https://bugzilla.mozilla.org/show_bug.cgi?id=1399011

<!-- 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/18465)
<!-- Reviewable:end -->
2017-09-12 13:16:26 -05:00
Bobby Holley
50cee3e133 Eliminate RestyleData entirely.
Without this change, the previous commit increases the size of ElementData.

MozReview-Commit-ID: 87BZuXINiT9
2017-09-12 10:33:51 -07:00
Bobby Holley
61cad869d9 Hoist flags out of RestyleData.
MozReview-Commit-ID: 8emE83lykh3
2017-09-12 10:22:50 -07:00
bors-servo
80e470cb9e Auto merge of #18463 - mrobinson:disable-position-sticky-tests, r=jdm
Disable position:sticky tests

Sending scroll positions to Webender is way too flaky to run the
position:sticky tests at this time. We need to disable them for now, so
that other Servo work can continue.

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

<!-- 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/18463)
<!-- Reviewable:end -->
2017-09-12 12:07:06 -05:00
Martin Robinson
48714a0eda Disable position:sticky tests
Sending scroll positions to Webender is way too flaky to run the
position:sticky tests at this time. We need to disable them for now, so
that other Servo work can continue.
2017-09-12 18:01:01 +02:00
bors-servo
9d0f8b9d52 Auto merge of #18457 - legnaleurc:fix_smil, r=emilio
Invalidation should check all restyle hints.

For some cases simply check EffectCompositor is not enough, we need to check the dirty bits for animation 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 #__ (github issue number if applicable).

<!-- Either: -->
- [ ] 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. -->

<!-- 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/18457)
<!-- Reviewable:end -->
2017-09-12 10:58:26 -05:00
Martin Robinson
ee46bc57ed Separate stacking context collection and display list building state
These are two different passes during layout, but previously they
shared a state object. While some of the members are the same, many are
different so we separate them out into two separate objects. We also
change the HashMaps of these state objects to use the FnvHashMap.
2017-09-12 17:15:06 +02:00
bors-servo
7746896bc4 Auto merge of #18449 - tromey:remove-get_location_with_offset, r=jdm
Remove get_location_with_offset

Now that rust-cssparser reports 1-based locations, bump the required
cssparser version and remove get_location_with_offset.  Previously,
some code paths were not calling get_location_with_offset; see
https://bugzilla.mozilla.org/show_bug.cgi?id=1398869 for some
background.

---
<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1398869 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because tests are in rust-cssparser and/or M-C

<!-- 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/18449)
<!-- Reviewable:end -->
2017-09-12 09:44:53 -05:00
bors-servo
bffe158fa4 Auto merge of #18455 - nnethercote:measure-Arc-Locked-properly, r=jdm
Measure Arc<Locked<T>> fields properly.

Currently when we measure various Arc<Locked<T>> fields we don't measure the T
itself, but only the descendants of the T. This patch fixes this.

This fix requires introducing a new trait, MallocUnconditionalShallowSizeOf,
which is implemented for servo_arc::Arc. A similar trait,
MallocConditionalShallowSizeOf, is also introduced, though it has no uses as
yet.

<!-- 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 are tested in Gecko.

<!-- 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/18455)
<!-- Reviewable:end -->
2017-09-12 08:40:56 -05:00
Tom Tromey
4768597b13 Remove get_location_with_offset
Now that rust-cssparser reports 1-based locations, bump the required
cssparser version and remove get_location_with_offset.  Previously,
some code paths were not calling get_location_with_offset; see
https://bugzilla.mozilla.org/show_bug.cgi?id=1398869 for some
background.
2017-09-12 07:35:55 -06:00
Julian Seward
e7e03fac7b Bug 1398593 - stylo: mitigate performance impact of fallible allocation on stylist rebuilds. r=emilio. 2017-09-12 15:18:49 +02:00
bors-servo
6ca456ca21 Auto merge of #18274 - DominoTree:18224-test, r=emilio
Add test for 18224

<!-- Please describe your changes on the following line: -->
Add test for #18224 - wasn't sure what (if anything) to do beyond this - let me know if additional changes are necessary.

---
<!-- 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 #18224 (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. -->

<!-- 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/18274)
<!-- Reviewable:end -->
2017-09-12 07:40:52 -05:00
Anthony Ramine
95f2d93960 Derive ToComputedValue for Image<..> 2017-09-12 14:34:17 +02:00
Anthony Ramine
7c31202dda Implement ToComputedValue for Box<T> 2017-09-12 14:34:16 +02:00
Anthony Ramine
4e64ccde60 Kill ComputedValueAsSpecified 🔫 2017-09-12 14:34:15 +02:00
Anthony Ramine
891789109b Do not use CVAS for the list-style-image property 2017-09-12 14:34:11 +02:00
Anthony Ramine
bf034a83e8 Do not use CVAS for FontSettings<T> 2017-09-12 13:39:55 +02:00
Wei-Cheng Pan
a646b9d559 Invalidation should check all restyle hints. 2017-09-12 19:17:48 +08:00
bors-servo
61fac2c10d Auto merge of #18456 - emilio:dead-code, r=upsuper
style: Remove an unused function.

Nobody will miss it.

<!-- 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/18456)
<!-- Reviewable:end -->
2017-09-12 06:11:58 -05:00
bors-servo
af077a7222 Auto merge of #18420 - servo:toml, r=nox,emilio
Get rustc commit hash from channel manifest

… added in https://github.com/rust-lang/rust/pull/44218, instead of using the GitHub API.

Also upgrade to rustc 1.22.0-nightly (d93036a04 2017-09-07).

<!-- 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/18420)
<!-- Reviewable:end -->
2017-09-12 05:01:24 -05:00
Simon Sapin
052a8b500a './mach rustup': Use alternate S3 URL that doesn’t require SNI
… to hopefully fix https://travis-ci.org/servo/servo-with-rust-nightly/ builds.
2017-09-12 11:42:12 +02:00
Simon Sapin
f59bcc0064 Get rustc commit hash from channel manifest
… added in https://github.com/rust-lang/rust/pull/44218,
instead of using the GitHub API.
2017-09-12 11:42:11 +02:00
Simon Sapin
6c6ce53c3d Upgrade to rustc 1.22.0-nightly (d93036a04 2017-09-07) 2017-09-12 11:42:10 +02:00
Simon Sapin
0d4168034f Un-inline some methods initializing thread_local! …
… in order to limit stack frame sizes after extra inlining from
https://github.com/rust-lang/rust/pull/43931

See https://github.com/servo/servo/pull/18420#issuecomment-328769322
2017-09-12 11:42:04 +02:00
bors-servo
def983c295 Auto merge of #18453 - bholley:style_cache_refactor, r=emilio
Refactor the style cache

This is the first set of patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1398658

<!-- 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/18453)
<!-- Reviewable:end -->
2017-09-12 03:25:36 -05:00
bors-servo
efd2d5e4cc Auto merge of #18454 - glennw:update-wr-text-runs, r=jdm
Update WR (handle text runs requiring batch splits, clip optimizations).

<!-- 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/18454)
<!-- Reviewable:end -->
2017-09-12 02:09:25 -05:00