Commit graph

86 commits

Author SHA1 Message Date
Matt Brubeck
fc6dd7a765 servo: Merge #15268 - Make text-orientation:sideways-right an alias for sideways in Gecko (from mbrubeck:sideways); r=upsuper
Fixes #15214. r? @upsuper

Source-Repo: https://github.com/servo/servo
Source-Revision: ec12b7665b5cf35b13932a7c17901ffb8e73b5ee
2017-01-28 17:24:47 -08:00
Emilio Cobos Álvarez
89013f9ba5 servo: Merge #14801 - style: Document and force documentation in a big chunk of the style crate (from emilio:no-missing-docs); r=mbrubeck,Manishearth,Wafflespeanut
Style no forced docs for the properties code and similar, but I ran out of time, and I think it's a nice improvement.

I'd appreciate a fast-ish turn-around time because this is pretty much prone to bitrot.

Source-Repo: https://github.com/servo/servo
Source-Revision: bd67163438317daa711b2411ce302aaf5bf4136a
2016-12-31 03:19:02 -08:00
Felipe Lacerda
8d886ed6cb 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
UK992
f8cb9971b7 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
Ravi Shankar
c069acc623 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
Simon Sapin
c710b104be servo: Merge #12515 - Make the style crate more concrete (from servo:concrete-style); r=bholley
Background:

The changes to Servo code to support Stylo began in the `selectors` crate with making pseudo-elements generic, defined be the user, so that different users (such as Servo and Gecko/Stylo) could have a different set of pseudo-elements supported and parsed. Adding a trait makes sense there since `selectors` is in its own repository and has others users (or at least [one](https://github.com/SimonSapin/kuchiki)).

Then we kind of kept going with the same pattern and added a bunch of traits in the `style` crate to make everything generic, allowing Servo and Gecko/Stylo to do things differently. But we’ve also added a `gecko` Cargo feature to do conditional compilation, at first to enable or disable some CSS properties and values in the Mako templates. Since we’re doing conditional compilation anyway, it’s often easier and simpler to do it more (with `#[cfg(feature = "gecko")]` and `#[cfg(feature = "servo")]`) that to keep adding traits and making everything generic. When a type is generic, any method that we want to call on it needs to be part of some trait.

----

The first several commits move some code around, mostly from `geckolib` to `style` (with `#[cfg(feature = "gecko")]`) but otherwise don’t change much.

The following commits remove some traits and many type parameters through the `style` crate, replacing them with pairs of conditionally-compiled API-compatible items (types, methods, …).

Simplifying code is nice to make it more maintainable, but this is motivated by another change described in https://github.com/servo/servo/pull/12391#issuecomment-232183942. (Porting Servo for that change proved difficult because some code in the `style` crate was becoming generic over `String` vs `Atom`, and this PR will help make that concrete. That change, in turn, is motivated by removing geckolib’s `[replace]` override for string-cache, in order to enable using a single Cargo "workspace" in this repository.)

r? @bholley

---
<!-- 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 new tests because refactoring

<!-- 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: 2d01d41a506bcbc7f26a2284b9f42390d6ef96ab

--HG--
rename : servo/ports/geckolib/selector_impl.rs => servo/components/style/gecko_selector_impl.rs
rename : servo/ports/geckolib/values.rs => servo/components/style/gecko_values.rs
rename : servo/ports/geckolib/properties.mako.rs => servo/components/style/properties/gecko.mako.rs
2016-07-20 02:58:34 -05:00
Emilio Cobos Álvarez
74b652d758 servo: Merge #12370 - Fix line-breaking with white-space: pre-wrap/pre-line; (from emilio:wrap); r=mbrubeck
Fix line-breaking with white-space: pre-wrap/pre-line;

<!-- Please describe your changes on the following line: -->

Not sure if this is the appropriate fix, but we'll know soon.

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

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

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ded106186aa0855a2bd991d573e7095590efca1
2016-07-11 01:08:57 -07:00
Anthony Ramine
1e92070ea4 servo: Merge #11930 - Remove some util stuff (from nox:die-util-die); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: dcc4697dde3ba8af32e233b302a16bea76af378a

--HG--
rename : servo/components/util/linked_list.rs => servo/components/layout/linked_list.rs
2016-06-29 15:37:42 -05:00
Michael Howell
353729223b servo: Merge #11786 - Alignment is wrong (from notriddle:cleanup); r=jdm
Fix off-alignment.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not fix any particular issue number
- [X] These changes do not require tests because refactoring

Source-Repo: https://github.com/servo/servo
Source-Revision: 2cea4187fcf2e7f5a069c5d4dc8d6f7b4688cde7
2016-06-18 13:56:37 -05:00
Josh Matthews
7f10c47c0a servo: Merge #11472 - Report blank lines that follow an open brace (from jdm:wip); r=mbrubeck
This automates something that I find myself frequently commenting on in PRs.

---
<!-- 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] 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: 3ec20d9cf517c67f4d280e8958cc58c4c2b4fbb2
2016-05-27 18:14:25 -05:00
Cullen Rhodes
2bd22f97ce 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
70b7a1aa47 servo: Merge #11303 - Always include the last-resort font (from mbrubeck:last-resort); r=pcwalton
This is used as a fallback for any characters that don't have glyphs in the specified font.  Without this, per-glyph font fallback doesn't work because the FontGroup always contains only one font.  Fixes missing glyphs on many pages on my Linux box.

As a follow-up, we should probably have a smarter strategy for finding fallback fonts, possibly varying by script.  (Currently we just have a few hard-coded family names.)

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: aa9f50a1d406e72d8b443f79439aaf9fd2ba4425
2016-05-24 10:39:44 -07:00
Per Lundberg
28632dc3a1 servo: Merge #11192 - Removed unused imports (from perlun:remove-unused-imports); r=Manishearth
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #11185
- [X] These changes do not require tests because it only removes dead code.

----

This fixes #11185.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c674d0397927ef6563feb70e54f46815af55600
2016-05-15 15:41:16 -07:00
Simon Sapin
6cdd7c095d servo: Merge #10928 - Fix some warnings (from servo:warnings); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 0f1a921ba6731499fe89a82f14d9e01a3bd7c50b
2016-04-30 05:16:46 -07:00
Matt Brubeck
22979e08c6 servo: Merge #10895 - Use byte indices instead of char indices for text runs (from mbrubeck:byteindex); r=pcwalton
Replace character indices with UTF-8 byte offsets throughout all code dealing with text runs.  This eliminates a lot of complexity when converting from one to the other, and interoperates better with the rest of the Rust ecosystem.

For most code this is just a simple replacement of char indices with byte indices.  In a few places like glyph storage and text fragment scanning, it also lets us get rid of code that existed only to map between bytes and chars.

Also includes some related fixes to text shaping, discovered while working on this conversion.  See the commit messages for details.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: cf121ad8dff90b8fa55558ca9bdcbfe29512a617
2016-04-28 20:22:09 -07:00
Matt Brubeck
e0e04db4c0 servo: Merge #10643 - Fix handling of borders and padding for empty/stripped inline flows (from mbrubeck:empty-span-border); r=pcwalton
This forces fragment generation for empty inline flows, if they have borders or padding.  Fixes #10533 and #2001.  Also includes fixes for other bugs that were uncovered by this change; see the individual commit messages for detailed explanations.  r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 15e76eb6e2c00ba26b65df73f1954ccada7509cf
2016-04-17 03:02:12 +05:01
Per Lundberg
c03ec4e764 servo: Merge #10324 - Renamed the style structs (from perlun:rename-style-structs); r=bholley
Renamed style structs.

The idea is to rename all style structs from Foo to ServoFoo, as described out in #10185.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4da38cdd7c26d24d6c9de75d3f3509ae372dd25b
2016-04-09 00:55:28 +05:01
Matt Brubeck
8d80646e3b servo: Merge #10361 - Fixes for insertion point caret rendering (from mbrubeck:empty-caret); r=pcwalton
This contains several fixes for the code to position and render the insertion point.  The main effect is that the insertion point is now rendered correctly when in an empty input field.  See the individual commit messages for more detais.  r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: c191dff04e182e2fc38e9df3e8ba353b8d697827
2016-04-08 05:32:17 +05:01
Mauricio Collares
14d64f2465 servo: Merge #10407 - Move some CSS properties to match Gecko's representation (from mauricioc:issue10403); r=bholley
Fixes #10403. Animation had an extra transition-delay property, which was also moved to Box. Let me know if I should squash the commits.

Source-Repo: https://github.com/servo/servo
Source-Revision: 256b865055c10082731b218f41373d47ad632062
2016-04-07 02:49:15 +05:01
Emilio Cobos Álvarez
6a77e7f71e servo: Merge #10252 - Implement ::selection pseudo-element (from emilio:selection); r=mbrubeck
It only supports `color` and `background`, for now, but it shouldn't be hard to add more properties (like text-shadow).

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 723989b9dddeb9bcdc28dc7d640fd6fd7247a27f
2016-03-31 00:18:07 +05:01
Per Lundberg
206f878009 servo: Merge #10277 - Renamed TComputedValues to ComputedValues (from perlun:rename-tcomputedvalues-to-computedvalues); r=SimonSapin
This is a followup to #10210, and a continuation of #10185.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0ec96ac02a6c40ffda98e1074ceb9874dd1fb3cb
2016-03-30 10:35:57 +05:01
Matt Brubeck
d6e77ef96b servo: Merge #10255 - Reduce size of layout::fragment::Fragment struct (from mbrubeck:box-unscanned); r=pcwalton
This reduces the size of the SpecificFragmentInfo enum from 48 to 24.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 44b2ba25471e77b89b417161beb312a2985791a1
2016-03-30 07:20:25 +05:01
Per Lundberg
ad08fc1cc0 servo: Merge #10210 - ComputedValues is now ServoComputedValues (from perlun:rename-computedvalues-to-servocomputedvalues); r=SimonSapin
This is the first part of #10185. More to follow. I have built this locally with both servo and geckolib without errors; let's see if it succeeds on all platforms as well.

Source-Repo: https://github.com/servo/servo
Source-Revision: 639fdd6b128e0cfd418e4ae0dd78de3f5aecac4c
2016-03-29 17:56:40 +05:01
Matt Brubeck
7f2f49fe54 servo: Merge #10176 - Highlight selected text in input fields (from mbrubeck:selection-range); r=pcwalton
Fixes #9993.  This does not yet allow stylesheets to set the selection colors; instead it uses a hard-coded orange background and white foreground.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: bed91b3334786970c91a47c3bc95889d8675b4d5
2016-03-26 07:47:20 +05:01
Bobby Holley
6e1def963d servo: Merge #10155 - Generalize the style structs (from bholley:generalize_style_structs); r=SimonSapin
This allows geckolib to pass gecko style structs and have the style system write to them directly, provided we implement all the traits.

Source-Repo: https://github.com/servo/servo
Source-Revision: 605842f193aedc1151ab38a99c49f693c76e5cf3
2016-03-25 02:58:33 +05:01
Jonathan Schuster
6ae403af2c servo: Merge #9717 - Move util::range into its own crate (from schuster:move-range); r=frewsxcv
Fixes #9695

Source-Repo: https://github.com/servo/servo
Source-Revision: 4300ba221170785652fe7368e2900f9a5a946096

--HG--
rename : servo/components/util/range.rs => servo/components/range/lib.rs
2016-02-26 07:12:57 +05:01
Anthony Ramine
1b4c648862 servo: Merge #9686 - Move util::logical_geometry to style (from nox:mv-logical_geometry); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: eee0d4efeba1ee77e864a495b6e1992c8ad088cc

--HG--
rename : servo/components/util/logical_geometry.rs => servo/components/style/logical_geometry.rs
rename : servo/tests/unit/util/logical_geometry.rs => servo/tests/unit/style/logical_geometry.rs
2016-02-18 14:22:29 +05:01
Corey Farwell
eb697a60ee servo: Merge #9464 - Prefer is_empty over len when option is available (from frewsxcv:is-empty); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: cd51ac742d9c827c756f1c4f36b185d2cbc6667b
2016-01-30 09:07:01 +05:01
Olaf Buddenhagen
289efa1b7b servo: Merge #9300 - layout/text.rs: Add assertion for empty fontgroup (from antrik:assert_empty_fontgroup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a76de4b0cc2ec1e37539e9d328c9825c9812be78
2016-01-14 13:42:56 +05:01
Johannes Linke
38405ee47e 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:47:34 +05:01
Keith Yeung
3e5efa34d0 servo: Merge #8542 - Extend whitespace::T with additional helper methods (from KiChjang:style-whitespace-methods); r=SimonSapin
Fixes #8128.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6449cd09ebd7f7e3545039c26bcbe9a6ca7a5621
2015-11-23 23:10:07 +05:01
Florian Merz
74d3b7be24 servo: Merge #7761 - display input caret for textarea. fixes #7758 (from fiji-flo:input_caret); r=pcwalton
This adds the input caret for textareas. Although, it does not handle multiline textareas correctly. The caret gets displayed for each line.

I'll look into that but that will take more time. Some feedback on this small patch would be appreciated though.

Source-Repo: https://github.com/servo/servo
Source-Revision: af6a64e176ec66a9c066e9e7bf40b6ce3ac77b2e
2015-10-21 15:23:52 -06:00
Eli Friedman
75c42c7efd servo: Merge #7951 - Add support for pre-wrap and pre-line values for white-space (from eefriedman:white-space); r=pcwalton
This is mostly straightforward.  I had to modify a couple of places
which were accidentally discarding whitespace.

Fixes #1513.

This fixes some relevant tests from the CSS testsuite... but a lot of
them are either manual, or don't pass because of unrelated issues.  (For
example, white-space-mixed-002 renders correctly, but
white-space-mixed-002-ref doesn't because of a float bug.)

I'd appreciate any suggestions for how to go about adding tests for this.

Source-Repo: https://github.com/servo/servo
Source-Revision: c3ab71109ee2ffcc31b40890f4c6739d8f5b1333
2015-10-20 12:38:54 -06:00
Glenn Watson
40d2827806 servo: Merge #7795 - Split Au type into separate crate, with minimal dependencies (from glennw:app-units-crate); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 35888e5a1d48511ec54ddf8c58f1c7b0c47c5d3c
2015-09-30 15:19:33 -06:00
Matt Brubeck
c0299bc195 servo: Merge #7786 - Use Harfbuzz 1.0 and unicode-script for text shaping (from mbrubeck:harfbuzz-sys); r=pcwalton
Depends on servo/rust-harfbuzz#53 and introduces a dependency on the new servo/unicode-script crate.  r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: a144d086d911375f8d5674ac90ff55a9dcaf0cda
2015-09-29 15:37:11 -06:00
Ravi Shankar
7d512d50d1 servo: Merge #7698 - sorted the declarations in various files (from Wafflespeanut:sorting); r=frewsxcv
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!

Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
2015-09-23 15:02:56 -06:00
Brandon Fairchild
f7fb1e4b4a servo: Merge #7662 - Check for multiple import blocks separated by whitespace (from nerith:import); r=frewsxcv
Fixes #7381.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0d3c9223f09757124b1520c4f17e94fa8bbe249
2015-09-19 13:34:51 -06:00
Patrick Walton
12ae75107c servo: Merge #7644 - layout: Draw the insertion point in input elements (from pcwalton:carrot); r=mbrubeck
Known issues:

* The caret doesn't show up if there's no text present, because we don't create text runs in that case. This should be a followup.

* Text runs don't support decomposing ligatures into their constituent subglyphs for advance computation, so the caret won't appear inside a ligature. This is a text run bug.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 6cd098da302db85975d0967ddee836f04eae3bd5
2015-09-17 05:50:41 -06:00
Mathieu Rheaume
fe567c36c0 servo: Merge #7559 - Remove 'get_*' on getters as per RFC 0344 on canevas, compositing, devtools, gfx, layout, net, profile, servo and webdriver_server (from ddrmanxbxfr:RFC-0344-Work); r=nox
Hi guys,

I just gave a big pass of RFC-0344 as per issue #6224 .

Pretty much renamed all the get_* fn that were used to fetch values.

I hope I didn't rename too much.

As said in the issue discussion, I didn't touch at the scripts folder so we keep the unsafe ones pretty explicit.

I've ran the whole pass of test, everything seems to be still working right :).

Please give feedback on this PR.

Thanks for looking into it.

Source-Repo: https://github.com/servo/servo
Source-Revision: b05f4aa3aa3085e65cb75433ae37bf272216d033
2015-09-12 18:29:56 -06:00
Patrick Walton
0238af05da servo: Merge #7207 - layout: Fix several bugs relating to inline borders, padding, and margins (from pcwalton:surround-whitespace-stripping); r=mbrubeck
* The code that attempted to strip out borders that span multiple
  fragments in the same element could go wrong if fragments were
  stripped out due to text clumping or whitespace stripping. This patch
  rewrites that code to maintain flags in the inline fragment context
  specifying whether the node is the beginning or end of the element.
  Not only is this easier to maintain, it's closer in spirit to what roc
  originally suggested two years ago: it's isomorphic to "begin element,
  end element" markers for inline layout.

* Padding and margins for spans containing inline-blocks are now
  properly handled via a division of labor between the `InlineBlock`
  fragment and the `BlockFlow` that represents the inline-block.

* Unscanned text fragments may not be joined together into a text run if
  borders, padding, or margins separate them.

Because Servo now matches the rendering of Gecko and WebKit on the
`input_button_margins_a` reftest, I had to modify it to add some
vertical alignment.

The combined effect of all of these fixes places "Advertising" on the
right place on google.com.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 8bbace7815b489e1b87df2ec496e65e78721d929
2015-09-03 11:55:03 -06:00
Simon Sapin
ea7357b400 servo: Merge #7509 - Upgrade to rustc 1.4.0-dev (cb9323ec0 2015-09-01) (from servo:rustup_2015-09-01); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: f49615ca7b5d98ee603cf42f705073fbe4d414fb
2015-09-02 01:31:23 -06:00
Anthony Ramine
04c0eb66fb servo: Merge #7251 - Correctly handle length-changing mappings in text-transform (from nox:text-transform-length-change); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 39b7508aa2b1f7d9b97d69ce3396d24c92c30efe
2015-08-20 06:40:33 -06:00
Patrick Walton
05e3c47b79 servo: Merge #7024 - layout: Rewrite whitespace stripping (from pcwalton:whitespace-stripping); r=mbrubeck
This patch makes Servo unconditionally strip whitespace before text run
scanning (assuming that the `white-space` property allows it). Whitespace
stripping during reflow is now only used for handling whitespace at the ends of
lines; reflow now never attempts to handle ignorable whitespace.

Many CSS tests pass now. There are some new failures, however.

The following reference tests now fail due to a pre-existing bug whereby
whitespace is used to calculate the position of inline hypothetical boxes for
elements with `display: inline; position: absolute`:

* `absolute-replaced-height-036.htm`
* `vertical-align-sub-001.htm`
* `vertical-align-super-001.htm`

The following reference tests fail due to a pre-existing bug whereby we don't
handle `font-size: 0` properly in inline reflow:

* `font-size-zero-1.htm`
* `font-size-zero-2.htm`

The following reference test fails due to the fact that it relied on our
incorrect insertion of whitespace to make room for the black background:

* `inline-formatting-context-007.htm`

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 7dc83e7820df43b1b617ae8dcf661398b0bd0842
2015-08-11 12:57:02 -06:00
Matt Brubeck
037b9c0ec4 servo: Merge #7052 - Rollup of 2 pull requests (from mbrubeck:rollup); r=mbrubeck
- Successful merges: #7014, #7015
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: b21584c862f8831dfb40e9cf0495bf04bc6ae1b5
2015-08-06 16:13:12 -06:00
David Zbarsky
c4655740ea servo: Merge #6798 - Implement getComputedStyle (from dzbarsky:gCS); r=pcwalton
It's not quite done but can probably be reviewed anyway.
I still need to finish up a few of the ToCss impls, I just got lazy and wanted to make sure things worked.

The computation of the used values is definitely not right, I'm going to investigate that.

Source-Repo: https://github.com/servo/servo
Source-Revision: acbca7b3aaf18866f7a1a79d9684149897bf4305
2015-07-29 18:48:45 -06:00
Matt Brubeck
a442c0ee7e servo: Merge #6471 - Basic support for bidirectional text (from mbrubeck:bidi); r=pcwalton
This re-orders text according to the Unicode bidirectional layout algorithm, using the [unicode-bidi](https://github.com/mbrubeck/unicode-bidi) crate.  It uses the natural order of the text based on Unicode character properties and the CSS `direction` property.

This does not yet support the CSS `unicode-bidi` property or the HTML `dir` attribute, but these should be straightforward to add.

r? @pcwalton.  Also depends on servo/unicode-bidi#4.

Source-Repo: https://github.com/servo/servo
Source-Revision: d3a36fafd948d7b9366feeca44f9ca9ad012d706
2015-07-23 21:20:49 -06:00
Matt Brubeck
0df634fe82 servo: Merge #6449 - Slice TextRuns by byte range instead of char range (from mbrubeck:byte_range); r=pcwalton
Currently only the end of the byte range is used, but I plan to use the full range in some follow-up work.

Fixes #6431. r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 26982cb547f479e1fbe9395b7fd9207078a6d8ee
2015-06-25 22:25:36 -06:00
Patrick Walton
eccdc2ade1 servo: Merge #5607 - layout: Implement per-glyph font fallback (from pcwalton:per-glyph-font-fallback); r=mbrubeck
This improves numerous pages, for example Wikipedia and Ars Technica.

Built on #5493.

Closes #177.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7561f7b83f27811683c1e724d75a935573a72813
2015-05-22 19:16:54 -05:00
Simon Sapin
95c8716656 servo: Merge #5935 - Upgrade Rust (from servo:rustup_2015-04-25); r=Ms2ger
r? everybody

Source-Repo: https://github.com/servo/servo
Source-Revision: 49aed6555dbc008c1a378c5cbb303f5467232b6b
2015-05-05 09:11:30 -05:00
Patrick Walton
ef6fbba28f servo: Merge #5816 - layout: Don't strip trailing newlines from fragments, since we use their presence to determine the line flush mode (from pcwalton:more-jumpiness); r=mbrubeck
Fixes the "jumpiness" seen on the Google home page, Wikipedia, and many
other places.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 211ee668fae7f619ac7e09abd776a6f45fc40052
2015-04-24 15:17:07 -05:00