Commit Graph

87 Commits

Author SHA1 Message Date
Josh Matthews
0935497a34 servo: Merge #16258 - Overwrite default RunInfo values with the first real ones encountered (from jdm:panic-at-the-ellipsis); r=pcwalton,stshine
TextRunScanner::flush_clump_to_list compares the values in the RunInfo object against the ones determined from the current fragment, but these values can be arbitrary defaults that don't mean anything useful.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c0d8e44a005ef68f805569f535a6ffa1f46d627
2017-04-12 23:09:53 -05:00
Matt Brubeck
3bbe9bee5b 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
cefdb77f9b 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
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
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
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
Simon Sapin
1f820224e4 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
2016-07-20 02:58:34 -05:00
Emilio Cobos Álvarez
0d89c54012 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
25b6b35cd1 servo: Merge #11930 - Remove some util stuff (from nox:die-util-die); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: dcc4697dde3ba8af32e233b302a16bea76af378a
2016-06-29 15:37:42 -05:00
Michael Howell
bce483cee6 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
5f71922341 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
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
cf5f5fae22 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
518936c38a 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
ae96131d9d 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
8bbb7242ac 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
36e169d254 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:01:12 +05:00
Per Lundberg
23273bdf74 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:54:28 +05:00
Matt Brubeck
7ee92734d5 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:31:17 +05:00
Mauricio Collares
1501e15311 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:48:15 +05:00
Emilio Cobos Álvarez
b93d0a3d99 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:17:07 +05:00
Per Lundberg
7e97301070 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:34:57 +05:00
Matt Brubeck
2ebce97dc8 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:19:25 +05:00
Per Lundberg
7dd7483a07 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:55:40 +05:00
Matt Brubeck
1ebc487686 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:46:20 +05:00
Bobby Holley
c3e649c731 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:57:33 +05:00
Jonathan Schuster
71dd7af24e 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
2016-02-26 07:11:57 +05:00
Anthony Ramine
a1c9a0bed1 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
2016-02-18 14:21:29 +05:00
Corey Farwell
16d40dc0ec 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:06:01 +05:00
Olaf Buddenhagen
aa6d7a8fe1 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:41:56 +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
Keith Yeung
7168fee94c 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:09:07 +05:00
Florian Merz
63e894a766 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
2f22bda6d3 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
5c835e208c 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
5054dbadc9 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
62e8ea2732 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
704178a0dd 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
be100864a1 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
824a99496b 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
0a0eb823f4 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
d67af4db2f 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
97907f756a 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
815af6aa90 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
1b79f20ff5 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
c79a7611a6 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
83840728e7 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
67b9391f01 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
fcee69b8ec 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
b72bb5e7d5 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