Commit Graph

110 Commits

Author SHA1 Message Date
Simon Sapin
dbb22281df servo: Merge #18854 - Make optional the usage of some unstable features (from servo:servo-unstable-feature); r=nox
With `--no-default-features --features default-except-unstable`, more crates can now be compiled on stable Rust. This will help integrate them in rustc’s regression testing and compiler performance benchmarking.

Source-Repo: https://github.com/servo/servo
Source-Revision: 78aaa85aec8184d0a2d70006c45034d7c2ec561a
2017-10-13 12:26:39 -05:00
Simon Sapin
ff18ff343e servo: Merge #18839 - Remove some usage of unstable features (from servo:stabler); r=nox
`Box::new(x)` seems to compile to exactly the same assembly as `box x` in release mode:
https://play.rust-lang.org/?gist=55ec5dd02c22fa799375d6e2e1a6e970&version=nightly

Source-Repo: https://github.com/servo/servo
Source-Revision: fc4de5adf5bff7fabe9f32b960c405f249b5d035
2017-10-12 05:18:00 -05:00
Clément DAVID
a6c6efb7e6 servo: Merge #18179 - Automatically verify that derive() lists are alphabetically ordered #… (from davidcl:master); r=jdm
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172

---
<!-- 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 #18172 (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: 474369618965569407d127b1e8c481e757cc59d3
2017-08-23 17:18:31 -05:00
Glenn Watson
cbd9627950 servo: Merge #17706 - Improve font layout in Linux / Freetype platforms (from glennw:linux-fonts); r=stshine,emilio
This patch contains two small changes:

* Fix the font size calculation that is passed to Freetype. This
  now matches exactly how Webrender and Gecko calculate font size
  to pass to layout.
* Enable light hinting by default for fonts when using Freetype.
  We should make this configurable in the future, but this is a
  better default than no hinting (and matches what most Linux
  distros default to).

These two changes (along with the pending WR update) fix a lot
of the font layout issues on Linux. There is still at least one
remaining issue with hidpi displays on Linux that will be fixed
in a follow up patch.

Source-Repo: https://github.com/servo/servo
Source-Revision: af48b42c57701040d59ac40e25837a444c6ee361
2017-07-13 16:13:41 -07:00
Simon Sapin
acf8d42c57 servo: Merge #17714 - Update to rustc 1.20.0-nightly (f85579d4a 2017-07-12) (from servo:rustup); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 51c94954d1116eb7f60b067a73a830ebb305726f
2017-07-13 12:56:56 -07:00
Martin Robinson
7b0a6b5e35 servo: Merge #17694 - Upgrade to the latest version of WebRender (from glennw:webrender-update); r=glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 173181a491f18a292ea80acbc25dd561e6e678d8
2017-07-12 21:52:27 -07:00
Emilio Cobos Álvarez
97bafbd1e9 servo: Merge #17693 - Revert "Auto merge of #17633 - servo:rustup, r=nox" (from emilio:revert-rustup); r=nox
This reverts commit 327e72aa149cdad347196f37bdb64c3afc5ae5e0, reversing
changes made to eec51cdd575cf985bc1ed926c6cb8868f1ba0e0e.

This closes #17642.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3e2f6dc8705d8085578df44a2db598927ba78baf
2017-07-12 19:04:21 -07:00
Simon Sapin
ec566f2cb9 servo: Merge #17633 - Upgrade to rustc 1.20.0-nightly (696412de7 2017-07-06) (from servo:rustup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 327e72aa149cdad347196f37bdb64c3afc5ae5e0
2017-07-07 06:31:46 -07:00
Xidorn Quan
bda898671b servo: Merge #17430 - Store font-weight as integer directly (from upsuper:font-weight-int); r=nox
It doesn't make much sense to store `font-weight` as separate enums, especially given that we would need to support (somehow) arbitrary font weight value when we implement CSS Fonts Level 4.

This PR refactors the `font-weight` a bit to make it store as `u16` directly.

Source-Repo: https://github.com/servo/servo
Source-Revision: f11a922760a08ffb956607d9ab447f8f2a319a25
2017-07-06 16:18:36 -07:00
Simon Sapin
3727d5f818 servo: Merge #17390 - Untry (from servo:untry); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 568ab550053fddf346806ed6cc2d3bfe37f3e1d0
2017-06-18 05:55:11 -07:00
Simon Sapin
7279c780ac servo: Merge #17355 - Bump serde to 1.0 (from servo:serdeup); r=nox
This is a rebase of #17325 with `[replace]` entries removed, a bunch more dependencies updated, and some more compile fixes. Original work by @Eijebong, thanks a lot!

Source-Repo: https://github.com/servo/servo
Source-Revision: 66c130d55aa0d7af1104c00e93a5bf950f23a383
2017-06-16 05:03:18 -07:00
hinaria
33dabf2ea6 servo: Merge #17340 - windows: fix line height handling (from hinaria:master); r=jdm
hi there!

on windows, this change properly scales a font's line height by its size.

previously, line height was not scaled to the font's size at all, which meant line heights become worse and worse the further you scaled away from the font's design size (in either direction, larger or smaller).

this change makes the `line_gap` ratio and size scale with the font size. i've hand checked that the new computed `line_gap` matches the effective heights in chrome and firefox when `line-height = normal` for a bunch of system fonts. (servo's rendering quality on windows is a different story, though).

![demonstration](https://user-images.githubusercontent.com/975570/27185401-8e27023a-5228-11e7-8475-9e4223730d25.png)

i believe this also solves #16476.

---
- [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: 8fd7dc80c40440b88f42b8f1036ef67483dd93f0
2017-06-15 15:42:38 -07:00
Imanol Fernandez
945096a59f servo: Merge #17141 - Ged rid of libfontconfig in Android (from MortimerGoro:android_fonts); r=mbrubeck
Libfontconfig dependency is causing huge startup times in Android (20 seconds on each page load!). On other platforms fontconfig caches are already available or can be prebuilt on installation scripts, but this can't be done on Android. Updating libfontconfig dependency doesn't fix the problem either.

This PR gets rid of libfontconfig in Android. It queries available fonts and variations from Android System font configuration files. Android doesn't provide an API to query system fonts until Android O (which is very far from the minimum API right 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
- [ ] These changes fix #16195 (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: f388c0ab1e4df8cbd94d58eb7657f36baaf813fe
2017-06-06 13:29:05 -07:00
Glenn Watson
f8c447b931 servo: Merge #16551 - Update WR (improved double border quality, minor API changes) (from glennw:update-wr-mostly-borders); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 0f6c883658930006994b2738f059d050c037ffb9
2017-04-23 17:50:08 -05:00
Dominik Boehi
9e8e357587 servo: Merge #16388 - Fix panic when font face name is not available (from Tiwalun:fix-freetype-panic); r=emilio
I got a panic in Servo when I ran it with `RUST_LOG=debug`, which was due to `FT_Get_Postscript_Name` returning a null pointer.

I'm not sure how to add a test for this, so there is none right 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

<!-- 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: 5ccb087769fdb5253514e1ea2babd28b21c65907
2017-04-16 10:50:20 -05:00
Anthony Ramine
2b360f83d2 servo: Merge #16099 - Properly follow the spec in WebSocket::Constructor (from nox:tungstenite); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 189b0d9094a8448aedd778ae2aac538a3a9e4871
2017-03-24 01:46:14 -07:00
Jonathan Turner
b093c31871 servo: Merge #16034 - Fix Windows UI and font squishing (from jonathandturner:fix_font); r=metajack
<!-- Please describe your changes on the following line: -->

This PR:

* updates the browserhtml dep (fixes https://github.com/servo/servo/issues/15255)
* updates the Windows font metric calculation (fixes https://github.com/servo/servo/issues/15698, based on codec-abc https://github.com/servo/servo/pull/15937#issuecomment-286513712)
* may address https://github.com/servo/servo/issues/15933.  With this PR, I was not able to repro

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because change are to UI/visual results of font drawing

<!-- 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: cea1760eb7689d88b18525fac7d53f9a12fdb8a1
2017-03-21 03:15:10 -07:00
Anthony Ramine
c30a83618c servo: Merge #15588 - Update serde to 0.9 (from servo:serde); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 7f3a75fa804c0be67f1567ca4a2449cebefa9616
2017-02-18 12:10:26 -08:00
Tetsuharu OHZEKI
bd187f0299 servo: Merge #15406 - Use 'alloc' gate only for platforms which use freetype in gfx (from saneyuki:rm-unused-alloc-gfx); 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: -->
- [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: 4f8a1e33f7a17f4896cd88398c6c503933e12aff
2017-02-06 10:43:07 -08:00
Ms2ger
204506e936 servo: Merge #15154 - Update rustc to 1.16.0-nightly (7821a9b99 2017-01-23) (from servo:rustup); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ff42462154025b1aed97a825e3a171eaa156d9b
2017-01-24 06:11:40 -08:00
Vladimir Vukicevic
e1400d6cd8 servo: Merge #15096 - Implement downloadable fonts on Windows (from vvuk:custom-font-files); r=emilio
This PR implements downloadable font support for Servo.  It depends on new changes in webrender and dwrote, and adds a dependency on the `truetype` crate for pulling out basic font information.  The original DirectWrite API does not provide an easy way to query font information direct from a `FontFace` (which is what you create from a `FontFile`).  There are new DirectWrite APIs starting with Windows 10 that allow for this, but they are Win 10+ only, and `winapi-rs` does not yet have bindings for those versions of the interfaces (specificially, `IDirectWriteFontFace3`).  The way to do this with DW is to go through a lot of pain in creating a custom collection and enumerator, add your font to your custom collection, then query the collection for its properties.

Instead, we just parse the truetype tables directly to pull out the few bits of information that we need.  The `truetype` crate is ok, but I discovered some bugs (an update needs to get pushed to crates.io before this will build).  It might be more worthwhile to just implement the tiny bit of truetype parsing that we need ourselves in Servo.

I'm guessing there are existing tests for downloadable fonts...

---
<!-- 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: 1a7404e38c0f0e9c58487299956bec78589191c7
2017-01-18 16:09:51 -08:00
Emilio Cobos Álvarez
2cb45772b8 servo: Merge #15018 - gfx: Use proper freetype bindings (from emilio:freetype); r=jdm
<!-- Please describe your changes on the following line: -->

Needs https://github.com/servo/rust-freetype/pull/48, and https://github.com/servo/webrender/pull/716

Source-Repo: https://github.com/servo/servo
Source-Revision: c8c38249a3ee38e72e4a427b05ab96b95d08f8fa
2017-01-16 13:01:59 -08:00
Emilio Cobos Álvarez
5633dee08c servo: Merge #14728 - Bunch of nitpicks (from emilio:nit); r=Wafflespeanut
I just noticed one while writing #14719, and then grepped and couldn't stop.

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fc9047d22147cf419d2551350421e23105e6f0e
2016-12-25 11:04:21 -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
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
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
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
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
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
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
Matt Brubeck
272a6fda93 servo: Merge #12291 - Bail out gracefully on malformed kern table headers (from mbrubeck:font-panic); r=Wafflespeanut
This changes a debug assert to a debug log and early return.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because I'm just removing an assertion

<!-- 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: b3c58f25ef9b9c503dcdbbc74883f702c8494531
2016-07-07 11:54:11 -07:00
Ms2ger
dadec2fea7 servo: Merge #11619 - Some cleanup in gfx (from Ms2ger:freetype); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: d768ee5d4c2ef0429e88191f01f977338c964359
2016-06-05 06:57:18 -05:00
Cullen Rhodes
44dc9f68ea servo: Merge #11329 - Report use statements that use {} with only one entry (from c-rhodes:11320); r=jdm
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 --faster` does not report any errors
- [X ] These changes fix #11320  (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: 2f9796fa696e9514280777398467696dd4f004b3
2016-05-27 07:11:17 -05:00
Matt Brubeck
3f798ebe69 servo: Merge #11273 - Add a fast path for shaping ASCII text (from mbrubeck:fast-shape); r=pcwalton
On both my Linux laptop and iMac, this is about twice as fast as Harfbuzz text shaping on https://en.wikipedia.org/wiki/Barack_Obama.

I haven't tested this on any high-DPI (retina) displays, and I'm not 100% certain that the font unit scaling is correct there.

Depends on servo/core-text-rs#50.

Source-Repo: https://github.com/servo/servo
Source-Revision: c0c70ef0946da25ce31c44037f4a5ff2028b9aee
2016-05-20 17:58:23 -07:00
Patrick Walton
599ba94004 servo: Merge #11103 - gfx: Map CSS normal font weight to Regular font weight on the Mac (from pcwalton:mac-font-matching); r=metajack
This series of commits fixes #9487, and improves the look of nytimes.com among others.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fd9c5583455b873fca1c95b2784f969870073bd
2016-05-10 14:11:35 -07:00
Patrick Walton
c17cd84edf servo: Merge #10937 - gfx: Map sans-serif to Helvetica on Mac and DejaVu Sans on Linux (from pcwalton:mac-helvetica); r=metajack
This matches what I believe the OS native defaults to be.

Partially addresses #9487.

r? @metajack
cc @paulrouget

Source-Repo: https://github.com/servo/servo
Source-Revision: 180a9813aa5ecce0a3013cdd30c1ef99ed1d1f6d
2016-05-09 13:02:23 -07:00
Patrick Walton
1e40ce1049 servo: Merge #10493 - gfx: Clamp the font size we supply to Core Text to 0.01pt (from pcwalton:inline-font-size-zero); r=mbrubeck
Core Text treats a font size of 0.0 as 12.0, which is obviously not what
we want.

Improves Twitter.
Improves Reddit /r/rust.

Closes #10492.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 65120756c06ee2d0357cca6357e30694a0ec6559
2016-04-12 04:09:37 +05:00
Anthony Ramine
37371c7786 servo: Merge #10055 - Bump serde to 0.7 (from servo:serde); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 7a9dc577617b442ff0fe07eaa683207234c519ee
2016-03-17 17:57:36 +05:00
Glenn Watson
3b05a50ca8 servo: Merge #9589 - Add WebRender integration to Servo (from glennw:webrender); r=pcwalton
WebRender is an experimental GPU accelerated rendering backend for Servo.

The WebRender backend can be specified by running Servo with the -w option (otherwise the default rendering backend will be used).

WebRender has many bugs, and missing features - but it is usable to browse most websites - please report any WebRender specific rendering bugs you encounter!

Source-Repo: https://github.com/servo/servo
Source-Revision: ab07b06823ea9748a6091aee2281495f86f00bce
2016-02-19 00:24:06 +05:00
Anthony Ramine
361e9b1a9e servo: Merge #9622 - Bump heapsize to 0.3 (from nox:heapsize); r=ecoal95
Source-Repo: https://github.com/servo/servo
Source-Revision: a164176876bb6abccf729eb5d6334e3c22230103
2016-02-13 18:20:41 +05:00
Anthony Ramine
011de9f1aa servo: Merge #9532 - Say farewell to in-tree HeapSizeOf (from nox:dedup-heapsize); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 2a6707ce58df27d93e865bffb6b44d396b810c99
2016-02-05 03:10:36 +05:00
Lars Bergstrom
281c208ec7 servo: Merge #9385 - Win32 support (from larsbergstrom:win32); r=frewsxcv,pcwalton,jdm,ecoal95
r? @frewsxcv for python stuff
r? @pcwalton for the "remove usage of Gaol" stuff for Win32
r? anybody else for misc cargo.lock updates, etc.

This replaces #7878.

This works best with https://github.com/servo/mozjs/pull/71, too, to enable static linking, but can be run without (via some PATH hackery).

The instructions are here, and will be added to a .md file in the repo once the mozjs changes also land:
https://hackpad.com/Servo-on-Windows-C1LPcI2bP25

I'd like to get these changes landed because I've been rebasing them for months, they're otherwise quite stable, and don't affect our other platforms and targets.

Source-Repo: https://github.com/servo/servo
Source-Revision: 525e77f64fc65ea2397b4ff3849f5b1f39386698
2016-01-23 06:57:27 +05:00
Matthew Kuo
dbe696dc65 servo: Merge #9352 - Convert private types to public (from mattkuo:cleanup-private-types); r=nox
fixes #9347

Source-Repo: https://github.com/servo/servo
Source-Revision: 380541bd48bb7ce0b36a8be90f756734e531ca5f
2016-01-18 01:28:01 +05:00
Johannes Linke
bb6c128359 servo: Merge #9123 - Fix a bunch of clippy lints (from karyon:clippy_cleanup); r=Manishearth
This fixes about 130 clippy lints. Let me know if i should split up the commit.

I wasn't sure about some of the changes, especially map_or instead of map(...).unwrap_or(...) and if let instead of single arm match were not always a strict improvement in my opinion, but i'll leave that decision to the reviewer :)

There are about 150 lints left which i thought were clippy bugs or i didn't know how to fix.

cc @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 9da739acefc7d1776bf727c8bf782eb79f241028
2016-01-03 08:46:34 +05:00
Olaf Buddenhagen
0a92662728 servo: Merge #9013 - Derive Debug for FontGroup and Homu is a bully (from antrik:debug-fontgroup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 6490d1e1c59c6de3d7ef030c209ad33e22bc6b26
2015-12-18 13:53:15 +05:00
Alan Jeffrey
4d3e2c8d46 servo: Merge #8667 - Update string cache (from asajeffrey:update-string-cache); r=SimonSapin
Updated string_cache to 0.2, and updated the dependencies that depend on string_cache.
Removed references to string_cache_plugin.
Import atom! and ns! from string_cache.
Replaced ns!("") by ns!().
Replaced ns!(XML) and co by ns!(xml) and co.
Replaced Atom::from_slice by Atom::from.
Replaced atom.as_slice() by &*atom.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 188fa9378c103093f1f8dac24bff0d9d237fd2bc
2015-11-25 23:40:39 +05:00