Commit Graph

577 Commits

Author SHA1 Message Date
Alan Jeffrey
965a687125 servo: Merge #14592 - Remove the util crate (from asajeffrey:util-goodbye); r=mbrubeck
<!-- Please describe your changes on the following line: -->

This PR removes the `util` crate.

* Replaced the `spawn_named` and `clamp` functions by appropriate uses of `std:🧵:Builder::spawn`, `std::cmp::min` and `std::cmp::max`.
* Moved `opts`, `prefs` and `resource_files` into a new `config` crate.
* Moved `remutex` and `geometry` into their own crates.

---
<!-- 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 do not require tests because they are refactorings

<!-- 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: 4eb653817f87e5fb47de34356f558eb76ecbca9f
2016-12-14 16:48:42 -08:00
Glenn Watson
2d65b999ff servo: Merge #14286 - Update to webrender 0.10.0 (from gterzian:update_canvas_with_offscreen_context); r=jdm
<!-- Please describe your changes on the following line: -->

Changes necessary to build servor with webrender 0.10.0

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

<!-- 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: e1eff691f8a1d8c9c7ab33344364f0419626b80e
2016-11-24 12:29:52 -08:00
Emilio Cobos Álvarez
592972be51 servo: Merge #14246 - Urlmageddon (from emilio:servo-url); r=SimonSapin
<!-- Please describe your changes on the following line: -->

Still needs a bunch of code in net to be converted in order to get more
advantage of this for images and stuff, but meanwhile this should help quite a
bit with #13778.

Still wanted to get this in.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 22aebdf5d41a3509cd6515ccf5edcdf33715a76d
2016-11-17 15:34:47 -06:00
UK992
f8ebc08408 servo: Merge #14193 - Various cleanup (from UK992:win-cleanup); r=vvuk
<!-- Please describe your changes on the following line: -->
Reduces msi file size from 102 MB to 94 MB and installation size from 394 MB to 334 MB.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: b7eb36fa84e6c6c77727ea2cd02c57f6750dc7af
2016-11-14 12:12:29 -06:00
Vladimir Vukicevic
2f368d2b31 servo: Merge #14153 - Add support for DirectWrite font rendering on Windows (from vvuk:win32-dwrite); r=glennw
<!-- Please describe your changes on the following line: -->
This PR adds support for DirectWrite text rendering using a thin wrapper for dwrite, as well as similar functionality added to WebRender.  In doing so it removes the FreeType dep from the Windows build.

There is still work to be done here, but this is a good starting point for future cleanup and fixes.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are already tested by other tests

<!-- 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: 796fae4bbe966a4e6e32b01fa44f6123c7162992
2016-11-10 16:55:17 -06:00
Martin Robinson
e0f12feb6a servo: Merge #14084 - Don't promote all scrollable regions to stacking contexts (from mrobinson:scroll_root_2); r=glennw
<!-- Please describe your changes on the following line: -->

Don't promote all scrollable regions to stacking contexts

Instead annotate all flows with their owning ScrollRoots. When
processing the display list items into a flattened display list, we add
PushScrollRoot and PopScrollRoot to signal when scrolling regions start
and end. It is possible for content from different scrolling regions to
intersect and when they do, the stack of scrolling regions is
duplicated.  When these duplicated scrolling regions stacks reach
WebRender, it will scroll them in tandem.

The PushScrollRoot and PopScrollRoot items are currently represented as
StackingContexts in WebRender, but eventually these will be replaced
with special WebRender display items.

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

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- 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: ef5ca14283f1f47654093b5c196ab813efb53ea8
2016-11-07 18:49:53 -06:00
Ms2ger
d378dc4046 servo: Merge #14060 - Remove the direct azure dependencies from gfx, layout and layout_thread (from servo:gfx-azure); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f7875dad1a43792ff3869f292990d03d30ebd9eb
2016-11-05 07:26:30 -05:00
Simon Sapin
6250c60a7d servo: Merge #14043 - Update to string-cache 0.3 (from servo:string-cache-up); r=nox
Previously, `string-cache` defined:
*  An string-like `Atom` type,
* An `atom!("foo")` macro that expands to a value of that type, for a set of strings known at compile-time,
* A `struct Namespace(Atom);` type
* A `ns!(html)` macro that maps known prefixed to `Namespace` values with the corresponding namespace URL.

Adding a string to the static set required making a change to the `string-cache` crate.

With 0.3, the `Atom` type is now generic, with a type parameter that provides a set of static strings. We can have multiple such sets, defined in different crates. The `string_cache_codegen` crate, to be used in build scripts, generates code that defines such a set, a new atom type (a type alias for `Atom<_>` with the type parameter set), and an `atom!`-like macro.

The html5ever repository has a new `html5ever_atoms` crate that defines three such types: `Prefix`, `Namespace`, and `LocalName` (with respective `namespace_prefix!`, `namespace_url!`, and `local_name!` macros). It also defines the `ns!` macro like before.

This repository has a new `servo_atoms` crate in `components/atoms` that, for now, defines a single `Atom` type (and `atom!`) macro. (`servo_atoms::Atom` is defined as something like `type Atom = string_cache::Atom<ServoStaticStringSet>;`, so overall there’s now two types named `Atom`.)

In this PR, `servo_atoms::Atom` is used for everything else that was `string_cache::Atom` before. But more atom types can be defined as needed. Two reasons to do this are to auto-generate the set of static strings (I’m planning to do this for CSS property names, which is the motivation for this change), or to have the type system help us avoid mix up unrelated things (this is why we had a `Namespace` type ever before this change).

Introducing new types helped me find a bug: when creating a new attribute `dom::Element::set_style_attr`, would pass `Some(atom!("style"))` instead of `None` (now `Option<html5ever_atoms::Prefix>` instead of `Option<string_cache::Atom>`) to the `prefix` argument of `Attr::new`. I suppose the author of that code confused it with the `local_name` argument.

---

Note that Stylo is not affected by any of this. The `gecko_string_cache` module is unchanged, with a single `Atom` type. The `style` crate conditionally compiles `Prefix` and `LocalName` re-exports for that are both `gecko_string_cache::Atom` on stylo.

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

<!-- 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: 5b4cc9568dbd5c15e5d2fbc62719172f11566ffa
2016-11-03 11:19:44 -05:00
Anthony Ramine
75c45a8387 servo: Merge #14040 - Remove last use of custom derive plugin (from nox:custom-derive); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: e3493cdd26f6faab0ddf6503ad19f0af169ad880
2016-11-03 06:15:25 -05:00
Anthony Ramine
eeebb7b92e servo: Merge #14028 - Update Rust to 1.14.0-nightly (7c69b0d5a 2016-11-01) (from servo:rustup); r=nox,SimonSapin
<!-- 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 _____

<!-- 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: c6e15f8ef244a0f3859489ca7f1c7bcc80181468
2016-11-02 21:49:08 -05:00
Martin Robinson
b8219c10db servo: Merge #14020 - Fold some DisplayList methods into DisplayListBuildState (from mrobinson:scroll_root_prep); r=pcwalton
<!-- 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.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This makes the API used to build display lists quite a bit simpler and
reduces the amount of auxiliary data structures that need to be passed
around. It is also important preparation work for separating scrolling
areas from stacking contexts.

Source-Repo: https://github.com/servo/servo
Source-Revision: 021cabd3e6242b3537addec32010ee8cee556121
2016-11-02 13:55:07 -05:00
Ms2ger
ff43bb321c servo: Merge #13961 - Move remaining users of the legacy networking stack to fetch (from servo:sync-fetch); r=jdm
Fixes #13931.
Fixes #13714.

Source-Repo: https://github.com/servo/servo
Source-Revision: 56f4a691dbe3f885b029b7a76924f6018f0894af
2016-11-02 10:59:18 -05:00
Ms2ger
d2073690ed servo: Merge #14004 - Various gfx cleanup (from servo:gfx); r=glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a213bf22d48fc3cf8882f609e3aa7fe8ba2f60a
2016-10-31 14:58:03 -05:00
Martin Robinson
7ebd503192 servo: Merge #13957 - Track overflow:scroll stacking contexts with ScrollRootId instead of StackingContextId (from mrobinson:scroll_root); 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 this PR should not change behavior.

<!-- 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: 3a3f3192a87dbcd5d05efb82a1f4dde23f9c4cf7
2016-10-30 15:27:56 -05:00
Ms2ger
aa2f161ff8 servo: Merge #13959 - Remove some unused gfx code (from servo:dead-gfx); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: e154475d7bf4ec5a77ec3e8b10c8788e5b5fcea2
2016-10-29 15:07:49 -05:00
Ravi Shankar
22004f91b8 servo: Merge #13902 - Prefer auto-generation for some keyword props (from Wafflespeanut:keyword); 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: -->
- [x] `./mach build-geckolib` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because it's a refactor

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? @Manishearth or @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 3c16dde1f268ffab3e2b220fda7e5be299d005b4
2016-10-26 02:27:13 -05:00
Martin Robinson
91036c836c servo: Merge #13848 - Remove concept of Layers from Servo (from mrobinson:remove-layers); 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 this PR should not change behavior.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Layers were a feature of the legacy drawing path. If we re-add them at
some point, it probably makes more sense to make them a product of
display list inspection.

This change also remove a bunch of dead painting code.

Source-Repo: https://github.com/servo/servo
Source-Revision: bb271ef4afea02b6b1b5d207e773d1fedccd2906
2016-10-21 01:43:25 -05:00
Martin Robinson
2491cf8a3b servo: Merge #13820 - Remove the concept of nested stacking contexts from display list builder (from mrobinson:remove-nesting); 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 should not change behavior.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

With the removal of the legacy rendering path, we don't need to worry
about nested stacking contexts. This change just pushes the
complication to the WebRender conversion step, but a later change will
remove the concept from WebRender as well.

This also helps to prepare for the introduction of ids for particular
scrolling regions, an integral part of multiple ScrollLayers per block.

Source-Repo: https://github.com/servo/servo
Source-Revision: e667e62f0ca8cd5fd21282333808cccaed8c957c
2016-10-19 12:54:40 -05:00
Ms2ger
c4e1d2458e servo: Merge #13811 - Remove unused DisplayItem::LayeredItem (from servo:LayeredItem); r=mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: 89ced788ebb89b6cab82b15f4a1bab0b822e953c
2016-10-18 03:30:17 -05:00
Martin Robinson
d683c4f4f4 servo: Merge #13810 - Remove Class from DisplayItem enum names (from mrobinson:names); r=Ms2ger
<!-- 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 this PR does not change behavior. It's only a rename.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This is probably a holdover from the days before namespaced enums. We
can remove this part of the name to avoid a lot of visual noise.

Source-Repo: https://github.com/servo/servo
Source-Revision: 275278be44b96b683bee40a8d8a6462198ec9e39
2016-10-18 02:24:44 -05:00
Glenn Watson
89fec93361 servo: Merge #13711 - Remove old rendering backend (from glennw:remove-old-renderer); r=larsbergstrom
This removes paint threads, rust-layers dependency, and changes
optional webrender types to be required.

The use_webrender option has been removed, however I've left
the "-w" command line option in place for now so that wpt
runner can continue to pass that. Once it's removed from there
we can also remove the -w option.

Once this stage is complete, it should be fine to change the
display list building code to generate webrender display
lists directly and avoid the conversion step.

Source-Repo: https://github.com/servo/servo
Source-Revision: f96718d03da969510dc992699cb6f25c2e21ae1e
2016-10-17 19:22:20 -05:00
Patrick Walton
6fcfbaf43c servo: Merge #13756 - layout: Rewrite clipping to be a two-phase process that takes physical border box positions and transforms into account (from pcwalton:relative-position-clip); r=notriddle
Clipping region computation now follows a simple process: (1) in the
parent's coordinate system, parents store appropriate clipping regions
into children; (2) each child moves its clipping region to its own
coordinate system if necessary.

Because clipping region computation is now based on stacking-relative
border box positions and the `transform_rect` method, it can handle
`position: relative` offsets and more types of transforms, such as
scaling.

Improves etsy.com.

Closes #13753.

Source-Repo: https://github.com/servo/servo
Source-Revision: c1abd8797c5b257c9339fbaf6ca4b7480c43a755
2016-10-15 16:19:10 -05:00
Martin Robinson
a128c6dd93 servo: Merge #13682 - Integrate stacking contexts into the display list (from mrobinson:push_pop); r=pcwalton
<!-- 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: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Integrate stacking contexts into the display list by adding two new
entry types, PushStackingContext and PopStackingContext. This allows us
to eliminate the ugly offsets map that DisplayList used to contain
and seems to speed up display list construction. With this approach
we are able to also completely prune pseudo-stacking contexts from the
final display list and remove their (minimal) overhead from display
list traversal Traversing the display list is also a bit simpler now.

Additionally, this will allow easier editing of the DisplayList to
properly support scrolling roots. The push/pop entries can be
duplicated to clone complex StackingContext trees between layers.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6e0d7326ab2901ef493c6de5b41969f8ee602864
2016-10-13 17:25:03 -05:00
Martin Robinson
fa129cba59 servo: Merge #13696 - Add a custom Debug formatter for ClippingRegion (from mrobinson:clipping_region_print); 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: -->
- [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 debug printing is untested.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This will make display list dumps more likely to fit on a single line.

Source-Repo: https://github.com/servo/servo
Source-Revision: b9bd15ebb0e84b48d5b0e7d1e952a911960d4fef
2016-10-11 20:58:49 -05:00
Patrick Walton
de5f94eda0 servo: Merge #13602 - layout: Rewrite Servo's vertical-align support to match CSS 2.1 § 10.8, and implement vertical-align: middle per CSS 2.1 § 10.8.1 (from pcwalton:vertical-align-middle); r=mbrubeck
`InlineMetrics` has been split into `InlineMetrics` for fragments and
`LineMetrics` for lines. Both structures' fields have been renamed in
order to more clearly delineate the difference between *space* and
*content*. Vertical positioning of fragments has been reworked to take
margins and borders into account only for replaced content.

This patch fixes the `vertical_align_super_a.html` reftest. Servo now
matches the rendering that Gecko and WebKit produce.

Additionally, this includes a test for the popular inline-block
centering technique described here:
https://s.codepen.io/shshaw/fullpage/gEiDt?#Inline-Block

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 768a699fa5d822173b2247d6348413d09951a8bb
2016-10-11 15:33:47 -05:00
Anthony Ramine
a2454adeea servo: Merge #13649 - Update to Rust 1.14.0-nightly (19ac57926 2016-10-08) (from servo:rustup); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 39d3fce1af89bf30e201dcb873d7f2ffe0ad3d42
2016-10-09 20:12:38 -05:00
Ravi Shankar
3d5d796667 servo: Merge #13636 - Add 'image-rendering' support and some cleanup (from Wafflespeanut:properties); r=Manishearth
<!-- 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-geckolib` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes have been tested manually

![screenshot](https://cloud.githubusercontent.com/assets/6691262/19195866/eb46ffce-8cd0-11e6-8642-a9525da8bf38.png)

r? @Manishearth

<!-- 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: a25e0670b39df0efcc4c6642775c0de414461a3d
2016-10-07 16:30:29 -05:00
Glenn Watson
89e3bc1d09 servo: Merge #13567 - Minimal Win32 font platform implementation (from glennw:win-fonts); r=larsbergstrom
This uses a (very simple) Win32 API call to enumerate font
families available, and load them as byte buffers.

The font rasterization itself is done by freetype.

This gets Servo + WR + Windows working, but should be improved
by adding a proper implementation that matches fonts correctly
and also uses DirectWrite (or GDI) to handle font rasterization.

Source-Repo: https://github.com/servo/servo
Source-Revision: eb3333eb2f6dbac75ecf23e84cbb12149b3dc969
2016-10-04 20:06:29 -05:00
Ms2ger
bcdfef8467 servo: Merge #13571 - Simplify fetching code (from servo:simplify-fetching); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: b80769dbf5e8f0c59db353b8e0ee7e4d77813294
2016-10-04 08:05:44 -05:00
Felipe Lacerda
ceb6e1add0 servo: Merge #13414 - Implement word-break: keep-all (#9673) (from flacerdk:master); r=mbrubeck
<!-- Please describe your changes on the following line: -->
Implement the `keep-all` value for the `word-break` property, as specified in [CSS](https://drafts.csswg.org/css-text-3/#word-break-property).

The relevant CSSWG tests (in `tests/wpt/css-tests/css-text-3_dev/html/word-break-keep-all-*.htm`) do not currently pass. As far as I can tell, this is because the tests use some JavaScript code that is not working properly. (But then, it seems that most tests in this directory are failing at the moment. I'm not sure what can be done here for now.)

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- 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: c9442346d3b454d9cbfcbd76d887e4f22f942531
2016-09-29 19:20:55 -05:00
Martin Robinson
150309e9aa servo: Merge #13417 - Simplify stacking context collection (from mrobinson:simplify-stacking-context-collection); 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: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Simplify the way that stacking contexts are collected. Instead of
passing the StackingContextId down the tree, pass the parent
StackingContext itself. This will allow future patches to get more
information about the parent stacking context (such as location).

Also remove the return value of collect_stacking_contexts, which was
unused.

Source-Repo: https://github.com/servo/servo
Source-Revision: 81dfa6a96b99eae8a7232eab39de96edf663ba99
2016-09-29 09:01:33 -05:00
Martin Robinson
44524757fc servo: Merge #13331 - Add support for background-repeat: space and round (from mrobinson:background-repeat); r=emilio
<!-- Please describe your changes on the following line: -->

Add support for new background-repeat modes and upgrade Euclid, which now has support for basic arithmetic with Size2D.

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

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This adds support for more background-repeat modes using the legacy
rasterization backend.

Source-Repo: https://github.com/servo/servo
Source-Revision: efdd94a2b629e4ae41d81a4209ad80b89eb6b937
2016-09-22 06:37:10 -05:00
Josh Matthews
2d81d0f185 servo: Merge #13322 - Make dummy font implementation conform to API changes (from jdm:msvc-build-fix); r=KiChjang
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13321
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 7d3c7beb215c18f10c03fb394eff9d152313dc59
2016-09-19 15:37:16 -05:00
Josh Matthews
ed1e0584da servo: Merge #12076 - Make font template data load fallible (from jdm:font-load); r=pcwalton
Remove a TODO around dealing with a failed file operation.

Can we write an automated test for this? I don't really know what font template data is, but this failure seems to be fontconfig-specific...

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12037
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

Source-Repo: https://github.com/servo/servo
Source-Revision: a82d5106bd15d243c8552bf58472e3e9889d1ce2
2016-09-19 09:14:55 -05:00
UK992
a6ebcb8483 servo: Merge #13205 - Tidy: Fix ordering use statements with braces (from UK992:tidy-sort); r=Wafflespeanut
This hack fixes https://github.com/servo/servo/issues/7412 and matches behavior with rustfmt.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3117787fd2a8b7748cfde1e9b8c5be3c00f2c599
2016-09-08 22:19:19 -05:00
Keith Yeung
8fc608e984 servo: Merge #13090 - Update string_cache to 0.2.26 (from KiChjang:update-string-cache); r=Manishearth
<!-- 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 hahahas
- [ ] `./mach test-tidy` does not report any hahahas
- [ ] These changes fix #hahaha (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR hahaha
- [ ] These changes do not require tests because hahahaha

<!-- 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: 73bea84b41fe573856a4e9456b209e9faa6fef48
2016-08-28 09:52:38 -05:00
Anthony Ramine
e385645ad4 servo: Merge #13055 - Update Rust to 1.13.0-nightly (198713106 2016-08-26) (from servo:rustup); r=metajack
(Do not merge) Update Rust to 1.13.0-nightly (198713106 2016-08-26)

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c2b45f87f23278d365913506e9c1776799ec345
2016-08-28 07:53:33 -05:00
Emilio Cobos Álvarez
918d80afa9 servo: Merge #12841 - Fix hit testing to take into account nested stacking contexts #12777 (from emilio:hit-test); r=pcwalton
<!-- Please describe your changes on the following line: -->

Fixes #12833.

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

<!-- Either: -->
- [x] There are tests for these changes OR

<!-- 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: 9b4713f5366aa43ac0db6a8f1d96f33b2f527978
2016-08-25 13:44:27 -05:00
Keegan McAllister
fc2650bea4 servo: Merge #12938 - Sanitise web fonts (from nox:fontsan); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 785fcd55806b546e2d5d15d5618fdf575262a012
2016-08-22 19:20:19 -05:00
Ms2ger
d8a7720e88 servo: Merge #12970 - Move thread_state to style (from servo:thread-state); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 1911606e5c7d81e41b79fa25c41b1d7def7aef62
2016-08-22 10:39:51 -05:00
Anthony Ramine
271c714e66 servo: Merge #12941 - Update euclid to 0.10.1 (from nox:euclid); r=metajack,emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: bb0ba644a8a028d6de8b5daf1b578a82ab23d49e
2016-08-20 20:04:17 -05:00
Anthony Ramine
9d89e8d7db servo: Merge #12925 - Update to webrender 0.4.0 (from nox:wr-merge); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: c769db69108c6dc50492abeaf1cd4de1653a04c9
2016-08-18 13:30:12 -05:00
Vladimir Vukicevic
f387e2e425 servo: Merge #11756 - MSVC support for Servo, and CMake builds for native code (from vvuk:servo-msvc); r=larsbergstrom
This is the base PR for MSVC builds of servo and dependent crates.  It's got replacements in the Cargo.toml to pull in the right versions, to make sure that crates were properly converted to CMake for all other platforms, not just Windows.  (Servo builds with MSVC 2015 with this PR; also with 2013, though a manual change in rust-mozjs to select a different set of bindings is needed.)

This PR isn't quite ready yet, but I want bors-servo to do builds.

Source-Repo: https://github.com/servo/servo
Source-Revision: ec53136863f20b80caf165d2f15e8a77d614536e
2016-08-17 13:22:52 -05:00
Emilio Cobos Álvarez
6f739f2aa3 servo: Merge #12843 - layout: Make the stacking context take into account the children transform when calculating overflow areas (from emilio:transforms); r=glennw
<!-- Please describe your changes on the following line: -->

This is a potential fix for #12842. I have done only the math to handle simple transforms because it's three AM, but I'd like @pcwalton to verify my approach, or suggest an alternative.

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

<!-- Either: -->
- [x] There are tests for these changes.

<!-- 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: 5f169581dc290e3cf0e8d6e7fc0550f1031fb25f
2016-08-17 00:35:16 -05:00
Patrick Trottier
e4dd28c9da servo: Merge #12849 - Fix GFX Warnings (from Coder206:gfxWarnings); r=Wafflespeanut
<!-- 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
- [x] These changes fix #12624 (github issue number if applicable).

- [ ] There are tests for these changes OR

<!-- 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: 41296d20b962cc95bde813b13617aba022615796
2016-08-14 12:48:06 -05:00
David Tolnay
883fb967fd servo: Merge #12834 - Remove #[serde(bound = "")] attributes (from dtolnay:bound); r=nox
These were fixed in serde_codegen 0.8.0 by serde-rs/serde#456.

cc @nox

- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because: the generated code continues to compile

Source-Repo: https://github.com/servo/servo
Source-Revision: 11b853fbf1916fb71b49fefbf2ebeaccaec50ee2
2016-08-12 19:01:28 -05:00
Anthony Ramine
6bb66d30be servo: Merge #12828 - Update serde to 0.8 (fixes #12659) (from nox:serde); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 9abe9e450b54ef9151bbee1aa0bd2dedb685fa7a
2016-08-12 12:23:10 -05:00
Martin Robinson
4902811eaf servo: Merge #12817 - Update to euclid 0.8 (from servo:euclid); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 5b915c403d2e96bd2917e7df4f2a58a6668a0c0e
2016-08-11 20:12:29 -05:00
Emilio Cobos Álvarez
e9c1d63a0e servo: Merge #12777 - layout: Take into account the client point for fixed positioned stacking contexts (from emilio:hit-test); r=pcwalton
<!-- 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
- [x] These changes fix #12763 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- 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: 9b4b94aa755a04d4b9c9703574b01c03ad25a788
2016-08-10 18:50:33 -05:00
Ravi Shankar
344e41a8e2 servo: Merge #12783 - Prefer length and percentage for word spacing (from Wafflespeanut:word_spacing); r=Manishearth
<!-- Please describe your changes on the following line: -->
The goal is to make use of `LengthOrPercentage` for word spacing in `ShapingOptions`, but since it makes use of `f32` which doesn't implement `Hash`, we're going for `NotNan<f32>` from [ordered-float](https://github.com/reem/rust-ordered-float/), which supports hashing. Instead of implementing `Hash` for `LengthOrPercentage` and thereby the inner types like `CSSFloat`, `CalcLengthOrPercentage`, etc., we convert it to `(Au, NotNan<f32>)`.

---
<!-- 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: -->
- [ ] There are tests for these changes

<!-- 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: 3b676bc85dc66ed0e80756204f347bf1842b01a0
2016-08-09 10:13:30 -05:00