Commit graph

122 commits

Author SHA1 Message Date
Ms2ger
6a4ad433a2 Update CSS tests to revision 465c03e3d8d42ce98b9dfa0c8d8e7b4b8d48ebd7 2015-10-22 10:19:14 +02:00
Ms2ger
f8b7a86ce4 Update cssparser. 2015-10-13 17:07:08 +02:00
Ms2ger
af637640ae Update CSS tests to revision 8cf31317e387a3bc22febb39ca3df8180a54b13e 2015-10-12 17:53:47 +02:00
Ms2ger
145aea3eeb Update CSS tests to revision 7a87ef71fc579e52d3438e009107aa442bc4021b 2015-10-06 17:04:25 +02:00
Michael Howell
bb5234767d Create a pseudo-stacking context for positioned floats.
Fixes #7828
2015-10-05 11:27:32 -07:00
bors-servo
fb6d0946cb Auto merge of #7794 - mbrubeck:setdata, r=pcwalton
Dirty text nodes when their content changes

Fixes #7793. r? @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7794)
<!-- Reviewable:end -->
2015-09-30 11:49:52 -06:00
Matt Brubeck
7e199f9bda Dirty text nodes when their content changes
Fixes #7793.
2015-09-29 16:40:46 -07:00
Matt Brubeck
062493fac6 Upgrade to the new harfbuzz-sys crate 2015-09-29 14:34:48 -07:00
Matt Brubeck
5667dfe7b0 Update unicode-bidi to 0.2.2
Fixes #7701 via servo/unicode-bidi#17.
2015-09-25 13:01:53 -07:00
Ms2ger
0ad6e78b23 Update CSS tests to revision 939546644b4d333218fd9c2c0f68c60752ff1e95 2015-09-25 12:54:36 +02:00
Ms2ger
bff545d198 Update CSS tests to revision 135b269a1d9f5ce7862ab7426578bd56e2add740 2015-09-19 18:02:54 +02:00
Bryan Bell
1f44686415 position-relative-035 reftest -> expected fail
There is no easy way to pass position-relative-035 & also
pass both tests/ref/border_rounding_1px_invisible_issue_7184 and
tests/ref/text_decoration_underline_subpx.

https://github.com/servo/servo/pull/7161, "Snap rectangles to nearest
pixels...", did fix position-relative-035 (except
for OS X) but broke 1px borders.
2015-09-09 11:58:21 -07:00
Glenn Watson
a02d28a732 Handle cases where the layout root is None. Fixes #6375. 2015-09-08 11:19:58 +10:00
Patrick Walton
683290e109 layout: Use a special path that treats margin: auto as zero for inline-block
inline size computation.

Places the search icon in the right place on the Google SERPs.
2015-09-04 20:42:57 -07:00
Ms2ger
58b5cd27de Update CSS tests to revision 584b6cdd10401df603bd7bdf4ec801fcddc65468 2015-09-04 16:52:07 +02:00
Matt Brubeck
afafb0b71c Implement get_table_for_tag on FreeType
Also fixes use-after-free of FontTable buffers.
2015-09-03 13:35:44 -07:00
Corey Farwell
c51deb9a6e Update CSS tests to revision c8ec30de8099360ecf6581035bfdf2180fcc9755
Necessary for:

https://github.com/servo/servo/pull/7117
2015-09-02 08:18:30 -04:00
Patrick Walton
ce327b8231 tests: Mark some WPT tests as passing now. 2015-09-01 11:30:15 -07:00
Ms2ger
5fb39b2af9 Update CSS tests to revision 2a5740eaf7fa99181681a89bc6789dbf5b839995 2015-08-27 13:35:08 +02:00
Patrick Walton
5c51a6214e layout: Fix calculation of overflow for stacking contexts that contain
`position: relative` fragments.

Fixes placement of the header on espn.go.com.
2015-08-25 15:08:28 -07:00
Patrick Walton
35c67b22e5 layout: Don't crash if quotes: none is specified and generated content
uses quotes.

Avoids a crash on The Verge.
2015-08-24 17:00:23 -07:00
bors-servo
7945c174a6 Auto merge of #7291 - pcwalton:has-layer-flag, r=mbrubeck
layout: Centralize the logic that determines whether fragments get layers in the fragment.

…so that it can be activated when we're forcing
the creation of extra layers due to positioned descendants that
themselves have layers.

The newly failing tests were tests that accidentally passed due to
incorrect stacking order.

Closes #7281.

r? @mbrubeck

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7291)
<!-- Reviewable:end -->
2015-08-22 15:56:05 -06:00
Patrick Walton
ec1c90df41 layout: Centralize the logic that determines whether fragments get
layers in the fragment, so that it can be activated when we're forcing
the creation of extra layers due to positioned descendants that
themselves have layers.

The newly failing tests were tests that accidentally passed due to
incorrect stacking order.

Closes #7281.
2015-08-22 12:41:33 -07:00
Patrick Walton
fed904fff5 layout: Make position: relative with non-auto z-index create a
stacking context.

Improves imgur.com and Fast Company articles.
2015-08-22 12:22:33 -07:00
Ms2ger
f235d49372 Update CSS tests to revision d674587d6ae7d2e231d632785559f2613d554eb0 2015-08-21 18:40:37 +02:00
bors-servo
39b7508aa2 Auto merge of #7251 - nox:text-transform-length-change, r=SimonSapin
Correctly handle length-changing mappings in text-transform



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7251)
<!-- Reviewable:end -->
2015-08-20 06:40:33 -06:00
Anthony Ramine
bb3d3db333 Correctly handle length-changing mappings in text-transform 2015-08-19 12:05:31 +02:00
Patrick Walton
9d41841964 layout: Make table cells' minimum inline sizes override explicitly
specified widths if the latter are too small.

Improves ebay.com.
2015-08-18 14:38:49 -07:00
Anthony Ramine
d885958621 Avoid a panic when handling collapsing borders (fixes #7144)
There is no need to compute next_collapsed_borders_in_block_direction for all
kind of flows when it's used only in the table row case. That also avoids a panic
when the next child is a table colgroup (this should not happen when iterating
over a table row).
2015-08-18 12:56:18 +02:00
Patrick Walton
8640cf5588 layout: Take relative position offsets for inlines and inline-blocks
into account only once.

There were two bugs here: (1) relative position applied to
scanned/unscanned text fragments independently of the container element
that applied that relative position, causing double-counting; (2)
relative position applied to inline block fragments independently of the
wrapped block itself, causing double-counting.

This commit also removes the `cascade_anonymous` function and the
related `Fragment` constructor. They were unused, and their
functionality has been replaced by the `modify_style_for_*` series of
functions.

Closes #7067.
2015-08-12 08:28:35 -07:00
bors-servo
7dc83e7820 Auto merge of #7024 - pcwalton:whitespace-stripping, r=mbrubeck
layout: Rewrite whitespace stripping.

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

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7024)
<!-- Reviewable:end -->
2015-08-11 12:57:02 -06:00
Patrick Walton
ae378a8c3e layout: Rewrite whitespace stripping.
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`
2015-08-11 11:42:20 -07:00
bors-servo
7ce47266ac Auto merge of #7137 - pcwalton:absolute-stacking-contexts, r=glennw
layout: Make absolutely-positioned elements with `z-index: auto` not stacking contexts.

Improves many sites.

Closes #7069.

r? @glennw

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7137)
<!-- Reviewable:end -->
2015-08-11 12:22:14 -06:00
Patrick Walton
d3d59ced36 layout: Make absolutely-positioned elements with z-index: auto not
stacking contexts.

Improves many sites.

Closes #7069.
2015-08-11 11:21:52 -07:00
bors-servo
9c528c6382 Auto merge of #7161 - mbrubeck:underline, r=pcwalton
Snap rectangles to nearest pixels consistently.

Snapping the top-left and bottom-right corners separately can cause a rectangle to change size or even become empty when offset by a subpixel amount.  Instead, this patch snaps the top-left corner, then snaps the size to a whole pixel amount, so any rectangle of a given original size will always have the same snapped size.

Fixes #7152. r? @pcwalton or @glennw

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7161)
<!-- Reviewable:end -->
2015-08-11 11:31:32 -06:00
Matt Brubeck
3b6dc09e47 Snap rectangles to nearest pixels consistently.
Snapping the top-left and bottom-right corners separately can cause a
rectangle to change size when offset by a subpixel amount.  Instead, this
patch snaps the top-left corner, then rounds the size to a whole pixel amount,
so any rectangle of a given size will always have the same snapped size.

Fixes #7152.
2015-08-11 10:30:32 -07:00
David Zbarsky
92d8058947 Enable CSS Color wpt tests 2015-08-09 23:35:20 -04:00
Patrick Walton
11fdb503df layout: Introduce infrastructure for tracking, backing up, and splitting
at the last known good split point, and use it for `white-space:
nowrap`.

Fixes overflowing tables on Wikipedia.

This infrastructure should form the basis of our fix for inline layout
of fragments that don't themselves constitute valid split points. That
will require some more work, however.
2015-08-08 00:01:31 -07:00
bors-servo
af4e0a246a Auto merge of #7082 - servo:linux-fail, r=metajack
Mark some tests as failing on Linux, not just Ubuntu 14.04.

They also fail for me on Archlinux.

(`absolute-replaced-height-007.htm` is disabled anyway, but let’s change it as well for consistency.)

r? @larsbergstrom

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7082)
<!-- Reviewable:end -->
2015-08-07 17:51:44 -06:00
Simon Sapin
649301fd35 Make the Ahem font available to test-css and test-wpt tests.
Provide a user stylesheet with an `@font-face` rule for it.

Fix #6195.

Many previously-failing tests now pass, and a few previously-passing now fail.

Among the latter, `font-family-013.htm` and `fonts-013.htm` are testing
that the Ahem font is not used for characters it doesn’t have a glyph for.
They were passing because Ahem was not available at all,
and now fail because we don’t implement font fallback correctly.

The others also use Ahem, but I don’t understand yet what’s going on exactly.
2015-08-07 21:38:55 +02:00
Simon Sapin
d58ea4f15f Mark some tests as failing on Linux, not just Ubuntu 14.04.
They also fail for me on Archlinux.
2015-08-07 20:02:29 +02:00
Simon Sapin
90d7d11a23 Upgrade cssparser
Pick up the fix for https://github.com/servo/rust-cssparser/issues/76
2015-08-07 18:34:16 +02:00
Patrick Walton
ed4172b2c6 layout: Make sure anonymous table flows are statically positioned.
The failing `float-applies-to-*` CSS 2.1 tests never really should have
been passing in the first place; they depend on floats inside
fixed-layout tables working properly, which they don't.

Closes #6078.
Closes #6709.
Closes #6858.
2015-08-06 18:49:07 -07:00
Matt Brubeck
73ce2325a2 Update to unicode-bidi 0.2.1
Fixes #6978.
2015-08-06 06:52:17 -07:00
bors-servo
b9f00190e1 Auto merge of #6979 - mbrubeck:counter, r=pcwalton
Fix crash caused by negative numbers in list counters.

Fixes #6818.  The test still fails because of #6978.

r? @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6979)
<!-- Reviewable:end -->
2015-08-04 18:37:10 -06:00
Matt Brubeck
35ba731123 Fix handling of negative numbers in list counters.
Fixes #6818.
2015-08-04 16:18:09 -07:00
Patrick Walton
be5b6ff8c2 Update CSS tests expected data 2015-08-04 09:54:31 -07:00
bors-servo
d66c59a152 Auto merge of #6784 - glennw:offset-ext, r=pcwalton
Implement offsetParent/Top/Left/Width/Height.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6784)
<!-- Reviewable:end -->
2015-08-03 18:39:43 -06:00
Glenn Watson
39972a174e Fix panic when called on root node, and update test expectations.
The three tests that are marked as failures are because they use offsetWidth as a dummy to force a layout flush. Now that these exist, they expose an unrelated bug with reflow.
2015-08-04 08:59:27 +10:00
Matt Brubeck
f8e92b2b01 Implement the unicode-bidi property 2015-08-03 14:12:33 -07:00