Commit Graph

681 Commits

Author SHA1 Message Date
Bastien Orivel
f38039247d servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 12d82fe621947c2b29b12d9c9e9a81b0f4baa117
2018-03-28 15:08:52 -04:00
Bastien Orivel
052cff7bc3 servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 02c758a2266f51a95dc2ef647462e13fad4bb6a8
2018-03-21 09:00:16 -04:00
Glenn Watson
1f83167dd1 servo: Merge #20311 - Update WR (local clip API change, texture cache optimizations) (from glennw:update-wr-pic); r=mbrubeck
Update WR (local clip API change, texture cache optimizations).

Source-Repo: https://github.com/servo/servo
Source-Revision: 57b12aaaaf61ad02006014465ed2c93c7ecb1e77
2018-03-15 22:19:31 -04:00
Bastien Orivel
123e9728d5 servo: Merge #20140 - Bump euclid to 0.17 (from Eijebong:euclid); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 38298336beb4ef8873cae22919bd8bee0f6496d4
2018-02-28 04:14:32 -05:00
Pyfisch
6f65a9da07 servo: Merge #20031 - Reorganise display list builder (from pyfisch:transform); r=mbrubeck
Description in the individual commits.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a2feb3c1bc1374dc97c788f07c2074895d2f1f1
2018-02-24 10:06:16 -05:00
Josh Matthews
1bd572232a servo: Merge #20106 - Add font cache debugging to isolate cause of IPC failures in CI (from jdm:font-thread-shutdown-debug); r=emilio
This should help us better understand the actual underlying cause of frequent CI failures like #13509. In particular, we will be able to state with confidence whether an IPC message is being dropped while the font cache thread is still alive, or whether the dropped sender was in a message that was in the queue after the font cache thread was shutdown.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 267f9db314acc6641c896a595a24fbb18da74459
2018-02-22 12:41:15 -05:00
Jon Leighton
3a1f74e266 servo: Merge #20021 - Lazy load fonts in a FontGroup (from jonleighton:lazy-font-group); r=mbrubeck,glennw
Lazy load fonts in a FontGroup

The first commit message explains this so I'll just copy it here:

---

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.

---

I've added some tests in the second commit, but it required quite a bit of gymnastics to make it possible to write such a test. I'm not sure if the added complexity to the production code is worth it?

On the other hand, having this infrastructure in place may be useful for testing future changes in this area, and also possibly brings us a step closer to extracting a library as discussed in #4901. (What I mean by that is: it reduces coupling between `FontCacheThread` and `FontContext` -- the latter would have a place in such a library, the former wouldn't.)

Source-Repo: https://github.com/servo/servo
Source-Revision: f48dce120dddd8e3d585cfc8bc221faa2726bf6b
2018-02-22 10:49:52 -05:00
Jon Leighton
d899b5f0b9 servo: Merge #20105 - Make FontTemplateData's Debug formatter more concise (from jonleighton:font-template-data-debug); r=emilio
Otherwise the log gets spammed with all the individual bytes of the
underlying font file.

Source-Repo: https://github.com/servo/servo
Source-Revision: c0d00e9a6ad08a0a57484036e37f118912295326
2018-02-22 05:49:30 -05:00
dan-robertson
d9b0a78e53 servo: Merge #19965 - Improve Freetype font handling and font selection (from dan-robertson:freetype2); r=jdm
<!-- Please describe your changes on the following line: -->
This correctly implements the boldness and stretchiness properties for Freetype fonts. This also modifies the metric used to select fonts so that it takes account of stretchiness and italicness instead of just boldness. Finally there is a test of font selection (and thereby that fonts are having their boldness/italicness correctly read).

These were originally part of an old and abandoned pull request. I've rebased the changes and modified them to make them work with some name changes.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 13cf8130487851c41aeda474053ca0f42b777194
2018-02-08 13:14:11 -05:00
Jon Leighton
b5b1c581c2 servo: Merge #19928 - Fix FontTemplateDescriptor under FreeType (from jonleighton:issue-17321); r=jdm
Issue #17321. Under Linux, using "font-family: sans-serif" previously
caused Servo to select the "UltraLight" face (of DejaVu Sans). There were
two reasons for this:

1. Font weight was only retrieved from the OS/2 table for bold faces.
   This neglected to retrieve the weight information for "lighter than
   normal" weight faces. This meant that the UltraLight face appeared as
   normal weight, and was selected.

2. Retrieval of font stretch information from the OS/2 table was not
   implemented at all.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1ed60100695ec21fe6a023f967258fd018c7dafd
2018-02-08 10:37:13 -05:00
Pyfisch
97b05c75a0 servo: Merge #19931 - Use LayoutRects for bounds and overflow in display lists (from pyfisch:float-bounds); r=mrobinson
Convert text runs to glyphs in display list builder.
Remove ComplexClippingRegion and use the WebRender type.

Source-Repo: https://github.com/servo/servo
Source-Revision: 03a1a014ae3f7feeb91246343c487962d061d9fb
2018-02-07 07:11:41 -05:00
Martin Robinson
bd17f5d3b7 servo: Merge #19933 - Update WebRender (from mrobinson:update-wr); r=emilio
This allows servo to use the ExternalScrollId API from WebRender fixing
some issues related to duplicate scroll root ids.

Fixes #17176.
Fixes #19287.
Fixes #19648.

<!-- 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 #17176, #19287, and #19648.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f24005e17aa0b5e274e6efbe0e44f208eb71e42
2018-02-06 09:12:58 -05:00
Pyfisch
ed96a8f375 servo: Merge #19824 - Use more WebRender types in gfx (from pyfisch:dl-move); r=mrobinson
Removes ImageBorder details from gfx.
Use WebRender BorderRadius in BoxShadow.
Stores cursors as integer.
Use FilterOp, BorderWidths from WebRender.
Store content_rect as LayoutRect.

This amends #19782.

Source-Repo: https://github.com/servo/servo
Source-Revision: bad46383bd6c9091fe0213703e24345160bdf56a
2018-01-30 04:42:36 -06:00
Linus Färnstrand
4e5b363e80 servo: Merge #19759 - Upgrade core foundation (from faern:upgrade-core-foundation); r=jdm
<!-- Please describe your changes on the following line: -->
This PR is the final one in a chain of PRs that tries to make a breaking change to `core-foundation`. This PR makes sure Servo only use the new, not yet released `core-foundation 0.5.0`. The changes in `core-foundation` and why it is not yet published can be read in the comments on this PR: https://github.com/servo/core-foundation-rs/pull/132
Basically we want all of Servo (and deps) to be ready for a fairly swift upgrade from `core-foundation` `0.4.6` to `0.5.0` once it's released, so we don't end up in some state where we depend on, and have to maintain both, for an extended period of time.

This PR is **not ready for merge** in its current state. The following must be done first:
- [x] Merge https://github.com/servo/core-foundation-rs/pull/132 and publish.
- [x] Merge https://github.com/servo/core-graphics-rs/pull/110 and publish.
- [x] Merge https://github.com/servo/core-text-rs/pull/75 and publish.
- [x] Merge https://github.com/servo/cocoa-rs/pull/181 and publish.
- [x] Merge https://github.com/servo/glutin/pull/142 and publish.
- [x] Merge https://github.com/servo/io-surface-rs/pull/60 and publish.
- [x] Merge https://github.com/servo/skia/pull/148.
- [x] Merge https://github.com/servo/rust-azure/pull/282.
- [x] Merge https://github.com/servo/webrender/pull/2299.
- [x] Merge https://github.com/emilio/rust-offscreen-rendering-context/pull/118 and publish.
- [x] Remove the commit in this PR that temporarily adds patch entries to `Cargo.toml`.
- [x] Update Cargo.lock again to not point to my feature branches.

For some of the dependencies I might accidentally have bumped the version as if it was a breaking change when it in fact wasn't. It was a bit messy to figure out all the details in so many and large crates. But hopefully I did not do the inverse, only bump the patch version where the change actually broke something.

Ping @jdm and @nox who have been the ones commenting on the initial PR.

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

<!-- Either: -->
- [X] These changes do not require tests because they don't change any code, just upgrade dependencies.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: e94a25949c924e086e38ef6bdbdc935734415b26
2018-01-29 06:38:26 -06:00
CYBAI
a0af98a71f servo: Merge #19868 - Use specific assertions (from CYBAI:specific-assertion); r=emilio
Similar to #19865
r? jdm

Note: Should I squash all the commits into one commit?

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because it should not break anything

Source-Repo: https://github.com/servo/servo
Source-Revision: c9ba16f9fbdf7f43cb19feedfaaa68c85bbcbe3b
2018-01-25 18:06:33 -06:00
Manish Goregaokar
ea60a8db79 servo: Merge #19688 - Detect adjoining text fragments with no line break opportunity between them (from Manishearth:linebreak); r=mbrubeck
First attempt at https://github.com/servo/servo/issues/874

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c1307307575637f5ad360413c6a8395579ab511
2018-01-24 22:42:59 -06:00
Igor Gutorov
58f5a93acb servo: Merge #19798 - style: Move cursor property out of mako (from gootorov:move_cursor_from_mako); r=emilio
<!-- Please describe your changes on the following line: -->
Sub-PR of #19015

r? emilio

---
<!-- 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 build-geckolib` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #19775 (github issue number if applicable).

<!-- Either: -->
- [x] These changes do not require tests

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 59033e697063e6bbe0f0c4c56e4d9aeff46a3336
2018-01-20 12:10:58 -06:00
Anthony Ramine
c04e3b7ed1 servo: Merge #19819 - Merge some test crates in their corresponding components (from servo:rm-test-crates); r=<try>
(Do not merge) Merge some test crates in their corresponding components

Source-Repo: https://github.com/servo/servo
Source-Revision: a4808a3649e6cb6e579e60b82d9979755643f711
2018-01-20 08:51:27 -06:00
Pyfisch
f96f03b2c9 servo: Merge #19782 - Use more WebRender types in gfx/display_list (from pyfisch:dl-simple); r=mrobinson
Use more WebRender types in gfx/display_list.
This uses floating-point (Layout) coordinates in where possible.
Replace NormalBorder struct with WebRender equivalent.
Remove ToPointF and ToRectF traits.
Convert border RepeatKeyword with ToLayout.
Add some definitions to malloc_size_of for WebRender types.

Source-Repo: https://github.com/servo/servo
Source-Revision: aee0d694cc077d4694fc3114af3a2ad83e326cbf
2018-01-18 05:42:52 -06:00
Georg Streich
7027e270e5 servo: Merge #19755 - Decouple metrics and gfx (from streichgeorg:decoupling_metrics_gfx); r=jdm
Added gfx_traits::DisplayList so metrics doesn't depend on the gfx crate for gfx::display_list::DisplayList.

---
<!-- 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 #19422 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because succesful compilation should be enough

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 8281ee004336049df11cc0478cb3c8b5610c6bde
2018-01-17 07:28:01 -06:00
Pyfisch
4f93ec088d servo: Merge #19716 - Use a ToLayout trait for converting from style to webrender types (from pyfisch:conversions); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a4df8f87668d5f5f24f4faeca43fb592a8edfe0
2018-01-11 03:41:43 -06:00
Pyfisch
9a3546b539 servo: Merge #19689 - Fix typo. san-serif -> sans-serif (from pyfisch:san-serif); r=jdm
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 782e3fe4e47b4be47bf8ec87e6ef566881c312b0
2018-01-04 14:06:47 -06:00
Pyfisch
c296c89734 servo: Merge #19651 - Unify background placement code (from pyfisch:background-placement); r=emilio
Merges the implementations for background-image placement
from gradients and images. Add missing parts and fix bugs.

Now supported are the CSS properties:

* background-attachment (except for local value, see #19650)
* background-clip
* background-origin
* background-position-x/y
* background-repeat
* background-size

It should be noted that backgrounds are not clipped to
rounded border corners.
(This was done before but worked only in simple cases)
See: #19649

This solves the following issues:
closes #19626
closes #16657
closes #19482 (examples from http://lea.verou.me/css3patterns/ are rendered perfectly but the round border is completely ignored now)
closes #19577

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

I enabled a few tests with the first commit but I have written about a dozen manual tests I will try to turn into ref tests either before or after this patch lands.

@bors-servo try

The relationship between the different inputs is visualized in this flowchart:
![flowchart-background](https://user-images.githubusercontent.com/2781017/34394430-5a06c72c-eb59-11e7-9d51-3d23e2215f07.png)

Source-Repo: https://github.com/servo/servo
Source-Revision: 691bff86b6f57da37c2e0af99aa7f72fc1b4f9d6
2018-01-02 08:47:24 -06:00
Pyfisch
b40948a36e servo: Merge #19655 - Remove solved FIXMEs about border radii (from pyfisch:border-radii-comments); r=emilio
cc pcwalton

cgaebel: Is this [comment] still accurate?

    // TODO(cgaebel): Support border radii even in the case of multiple border widths.
    // This is an extension of supporting elliptical radii. For now, all percentage
    // radii will be relative to the width.

[comment]: 446536b9c3/components/layout/display_list_builder.rs (L659-L661)

Source-Repo: https://github.com/servo/servo
Source-Revision: 657d8a2ede97e7f7fedee5ada97c833abe5a8d9e
2018-01-01 08:19:36 -06:00
tigercosmos
6457aea725 servo: Merge #19642 - cleanup no need cfg target_os (from tigercosmos:c1); r=emilio
<!-- Please describe your changes on the following line: -->
Already in macos, no need cfg target_os

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

Source-Repo: https://github.com/servo/servo
Source-Revision: d49cb8a47812c0e8ae25643e5437e212f5cbee16
2017-12-25 05:12:41 -06:00
Pyfisch
9710f4798c servo: Merge #19554 - layout: support tiled gradients (from pyfisch:tiled-gradients1); r=mbrubeck
Use background-size, background-position properties to render
CSS gradients.

Some cleanup in display_list_builder.rs related to gradient
calculations.

Adds two wpt tests for tiled gradients.

Note: For now even gradients with background-repeat: no-repeat
are repeated. Sometimes the gradient is not repeated everywhere.

Resolves partially #19482. (See the mentioned website for example gradients with these features)
See also: #16657 and #10412

Some glitches can be seen in the attached file. I am unsure what the exact intended semantics of [`push_gradient`](https://doc.servo.org/webrender_api/struct.DisplayListBuilder.html#method.push_gradient) are and want to ask the webrender team before building in "workarounds" for the missing gradients.
![half-rhombes](https://user-images.githubusercontent.com/2781017/33958051-b16f964a-e043-11e7-8218-b28388e2cf8d.png)

Source-Repo: https://github.com/servo/servo
Source-Revision: 6ee8e6a1684d6dbc65933da11ce1a2c8ba660442
2017-12-14 13:20:34 -06:00
Emilio Cobos Álvarez
b90b95f861 servo: Merge #19538 - Use ? in Option more often (from emilio:questions-questions-questions); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 548028fd07d85dbbbd0511386f88ea19825dc258
2017-12-09 13:58:25 -06:00
Simon Sapin
acd70f99cb servo: Merge #19510 - Update some dependencies, remove heapsize from the build (from servo:heapsize); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 07bd84ecc8dc9ba56df873453696993118e18583
2017-12-08 07:49:54 -06:00
Bastien Orivel
fa970a57d7 servo: Merge #19514 - Bump string_cache, html5ever and xml5ever (from Eijebong:bump); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 4016551e89e1cbb9dae988e6fca33a26f1537f02
2017-12-07 13:43:13 -06:00
Emilio Cobos Álvarez
034c3d82a4 servo: Merge #19500 - style: Make all keywords CamelCase for consistency (from emilio:camel-case-all-the-way); r=nox
style: Make all keywords CamelCase for consistency.

Source-Repo: https://github.com/servo/servo
Source-Revision: b24778202a4d886a990ee493adfb6851ac4be40c
2017-12-05 19:35:25 -06:00
Bastien Orivel
fcbd628a38 servo: Merge #19494 - Update smallvec to 0.6 (from Eijebong:smallvec); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: c20fd7d58a36496ea7d12ea3284172712da006b0
2017-12-05 13:44:19 -06:00
Bastien Orivel
fdb8c3c17d servo: Merge #19487 - Update lazy_static to 1.0 (from Eijebong:bump); r=jdm
For now it'll be duplicated

Source-Repo: https://github.com/servo/servo
Source-Revision: e2a7360e17e5d6ae8aca274183f67db18f37a6c4
2017-12-05 10:31:16 -06:00
CYBAI
9a4963f721 servo: Merge #19366 - style: Move font-family outside of mako (from CYBAI:font-family-out-of-mako); r=emilio
This is a sub-PR of #19015
Besides, this is the last PR for `font.mako.rs`! 🎉
r? emilio

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #19355
- [x] These changes do not require tests

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f61fde3907f2dde3e697791ccfb9a4d86d1a48c
2017-11-25 13:06:31 -06:00
Dzmitry Malyshau
37710b2415 servo: Merge #19314 - Update WR and the whole macOS crate stack (from servo:wr); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 37fa711657e6684e234e855be03470a0e17307de
2017-11-21 18:40:36 -06:00
Simon Sapin
c86a4ab713 servo: Merge #19128 - Upgrade to rustc 1.23.0-nightly (02004ef78 2017-11-08) (from servo:asciiext); r=nox
This fixes some new warnings, some of which (in `style`) are treated as errors. See https://users.rust-lang.org/t/psa-dealing-with-warning-unused-import-std-ascii-asciiext-in-today-s-nightly/13726

Source-Repo: https://github.com/servo/servo
Source-Revision: c46c9dc019ffe5447297140c22cd8b6ee95a9f5f
2017-11-09 10:00:38 -06:00
Bastien Orivel
113ffac80e servo: Merge #18967 - Bump bitflags to 1.0 (from Eijebong:bitflags2.0); r=mbrubeck
See #18809

Still haven't had time to test it but it should fix the tests failures that appeared in m-c

Source-Repo: https://github.com/servo/servo
Source-Revision: fe4139b779b3af749ec1426ddf4e1393c7b85442
2017-10-30 18:25:45 -05:00
Martin Robinson
89b4b77d5c servo: Merge #19057 - Update WR to use the new sticky positioning API (from mrobinson:update-wr-sticky-api); r=glennw
<!-- 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 do not change behavior.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: b6475cf433747a8b0cd177f0a16abae9d795e41c
2017-10-30 15:58:07 -05:00
Simon Sapin
a9959eafdb servo: Merge #19061 - FreeType: don’t use usable_size() as deallocation size (from servo:ft-alloc); r=mbrubeck
Instead use C-level malloc()/free() so that the size doesn’t need to be known during deallocation, since FreeType doesn’t provide it.

Hopefully fixes https://github.com/servo/servo/issues/19058

Depends on https://github.com/alexcrichton/jemallocator/pull/21

Source-Repo: https://github.com/servo/servo
Source-Revision: f18099118a5be17b5b1d6fdcc3352a98a1499e6a
2017-10-30 12:40:34 -05:00
Matt Brubeck
f16918e37c servo: Merge #19011 - Use actual size for old allocation in ft_realloc (from mbrubeck:realloc); r=glennw
Prevents crashes from improperly freed memory.

Fixes #19008, fixes #18950, fixes #18949.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: e1dac69a4054f208accd18aa443cae19ec7eaf53
2017-10-24 18:40:20 -05:00
Keith Yeung
0249128677 servo: Merge #18981 - Merge request type and destination (from KiChjang:fold-type-destination); r=avadacatavra
Fixes #18278.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcd7d2fa32aa53628a9be63a2d0ea64796cd968e
2017-10-24 17:02:18 -05:00
Martin Robinson
aac4baa8be servo: Merge #18951 - Wait as late as possible to assign ClipIds (from mrobinson:later-id-assignment-for-clip-scroll-nodes); r=glennw,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: -->
- [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 should not change behavior.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: f26aa3b016beb5717d8a53477c162dd832b24d7e
2017-10-24 09:46:08 -05:00
Glenn Watson
e9e609862c servo: Merge #18956 - Update WR (box shadows + per-corner radii, elliptical clips) (from glennw:update-wr-ellipse-bs); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: d6042707a660ec0377ff2db038e089cf509ac886
2017-10-20 16:47:30 -05:00
Nikhil Shagrithaya
ed037fb4d0 servo: Merge #18946 - Update h5e version (from cynicaldevil:update-h5e); r=nox
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 91077ee4185b4917f5f67bf7ebe7ea03ca3e7241
2017-10-20 08:49:09 -05:00
Sebastian Hengst
97c840e765 Backed out changeset e64e659c077d: servo PR #18809 and revendor for reftest failures, e.g. in layout/reftests/bugs/392435-1.html. r=backout on a CLOSED TREE 2017-10-19 23:23:30 +02:00
Bastien Orivel
a7068a599d servo: Merge #18809 - Update bitflags to 1.0 in every servo crate (from Eijebong:bitflags); r=nox
It still needs dependencies update to remove all the other bitflags
versions.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because it's a dependency update

Source-Repo: https://github.com/servo/servo
Source-Revision: fe16c1d5c3c9084da0ccb85af599d6ec0f8ab20b
2017-10-19 10:35:08 -05:00
Simon Sapin
95982fcd61 servo: Merge #18944 - Stop relying on linking details of std’s default allocator (from servo:jemallocator2); r=nox
We’ve been bitten before by symbol names changing: https://github.com/servo/heapsize/pull/46, and upstream is planning to stop using jemalloc by default: https://github.com/rust-lang/rust/issues/33082#issuecomment-309781465

So use the (relatively) new `#[global_allocator]` attribute to explicitly select the system allocator on Windows and jemalloc (now in an external crate) on other platforms. This choice matches current defaults.

Source-Repo: https://github.com/servo/servo
Source-Revision: 07e9794306d597afe5d90d192fd32a99572c3cc3
2017-10-19 09:15:17 -05:00
Martin Robinson
f3385203b6 servo: Merge #18933 - Use WebRender to compute text index on click events (from mrobinson:wr-text-index); r=jdm
This is the second half of switching over to WebRender for hit testing.
Now that WebRender gives us the location of the hit tested point in the
display item, we can use that to calculate text index.

<!-- 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 shouldn't change behavior.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 4cf2ce66fc4f970a47ab1fb4b9aa1a55282640f7
2017-10-19 02:36:32 -05:00
Glenn Watson
8e6b872c76 servo: Merge #18926 - Update WR (box shadows, subpixel + alpha text) (from glennw:update-wr-bs); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 59d727b020f18260e0bacc9aed6ffa5b75b3f0b6
2017-10-18 23:52:54 -05:00
Nicholas Nethercote
45f978e547 servo: Merge #18938 - Replace all uses of the heapsize crate with malloc_size_of (from nnethercote:bug-1409255); r=SimonSapin
Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`.
`malloc_size_of` is better -- it handles various cases that `heapsize` does not
-- so this patch changes Servo to use `malloc_size_of`.

This patch makes the following changes to the `malloc_size_of` crate.

- Adds `MallocSizeOf` trait implementations for numerous types, some built-in
  (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`).

- Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't
  support that operation.

- For `HashSet`/`HashMap`, falls back to a computed estimate when
  `enclosing_size_of_op` isn't available.

- Adds an extern "C" `malloc_size_of` function that does the actual heap
  measurement; this is based on the same functions from the `heapsize` crate.

This patch makes the following changes elsewhere.

- Converts all the uses of `heapsize` to instead use `malloc_size_of`.

- Disables the "heapsize"/"heap_size" feature for the external crates that
  provide it.

- Removes the `HeapSizeOf` implementation from `hashglobe`.

- Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of`
  doesn't derive those types, unlike `heapsize`.

<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1409255

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because testing is on the Gecko side.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 4c538b642e4bdfbf42c522c5a59c258a6d14546e
2017-10-18 13:56:05 -05:00
Martin Robinson
c8b72f7452 servo: Merge #18704 - Switch to using WebRender hit testing (from mrobinson:wr-hit-testing); r=jdm,glennw,mbrubeck
This trades quite a bit of complicated code in Servo for few more
messages and a significant performance improvement. In particular,
WebRender can search the entire display list at once instead of
ping-ponging down the pipeline tree. This allows us to send mouse
events to the correct pipeline immediately.

<!-- 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 should not change behavior.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: ca08271345f78fa881c174545f5b69a8ccb78143
2017-10-17 17:09:25 -05:00