Commit graph

4994 commits

Author SHA1 Message Date
bors-servo
4475cbe7e8 auto merge of #3548 : glennw/servo/remove-encodable, r=jdm 2014-10-06 23:51:35 -06:00
Glenn Watson
01be57cfae Remove manual encodable implementation. Fixes #3425. 2014-10-07 08:00:23 +10:00
Cameron Zwarich
0ede734018 Silence unused_mut warnings in generated style/properties/mod.rs
I would have put the attribute on the binding itself, but that doesn't
appear to be possible yet.
2014-10-06 14:37:47 -07:00
Jack Moffitt
7f6f072b02 Fix up and run unit tests.
This adds the subpackages to `./mach test-unit`.
2014-10-02 23:14:42 -06:00
Patrick Walton
885fc1c28b layout: Implement box-sizing: border-box.
Improves GitHub.
2014-10-01 20:24:34 -07:00
Patrick Walton
287fe3b3ab layout: Implement the correct hypothetical box behavior for
absolutely-positioned elements declared with `display: inline`.

Although the computed `display` property of elements with `position:
absolute` is `block`, `position: absolute; display: inline` can still
behave differently from `position: absolute; display: block`. This is
because the hypothetical box for `position: absolute` can be at the
position it would have been if it had `display: inline`. CSS 2.1 §
10.3.7 describes this case in a parenthetical:

"The static-position containing block is the containing block of a
hypothetical box that would have been the first box of the element if
its specified 'position' value had been 'static' and its specified
'float' had been 'none'. (Note that due to the rules in section 9.7 this
hypothetical calculation might require also assuming a different
computed value for 'display'.)"

To handle this, I had to change both style computation and layout. For
the former, I added an internal property
`-servo-display-for-hypothetical-box`, which stores the `display` value
supplied by the author, before the computed value is calculated. Flow
construction now uses this value.

As for layout, implementing the proper behavior is tricky because the
position of an inline fragment in the inline direction cannot be
determined until height assignment, which is a parallelism hazard
because in parallel layout widths are computed before heights. However,
in this particular case we can avoid the parallelism hazard because the
inline direction of a hypothetical box only affects the layout if an
absolutely-positioned element is unconstrained in the inline direction.
Therefore, we can just lay out such absolutely-positioned elements with
a bogus inline position and fix it up once the true inline position of
the hypothetical box is computed. The name for this fix-up process is
"late computation of inline position" (and the corresponding fix-up for
the block position is called "late computation of block position").

This improves the header on /r/rust.
2014-10-01 18:34:53 -07:00
Josh Matthews
ca5d4633c2 Disallow wrapping on input elements. 2014-10-01 15:37:40 -04:00
Josh Matthews
8112859d55 Disallow toggling radio buttons. Use generated content for checkboxes and radio buttons. Switching to the glyph 0 for the average advance width. 2014-10-01 15:37:40 -04:00
Josh Matthews
f70bb68503 Implement simple layout for text, button, radio, and checkbox inputs. Implement simple interaction for checkboxes and radio buttons. 2014-10-01 15:35:42 -04:00
Cameron Zwarich
79b4ec99b4 Convert TNode / TElement to use self methods rather than &self 2014-09-30 21:26:19 -07:00
Cameron Zwarich
63314208c0 Add Copy bounds to TNode / TElement 2014-09-30 21:26:19 -07:00
Cameron Zwarich
ccc5d976f7 Refine a lifetime parameter on TElement's get_local_name 2014-09-30 21:22:24 -07:00
Cameron Zwarich
4ef0f39c78 Remove a prefix from a method name by manually resolving methods 2014-09-30 21:21:00 -07:00
Keegan McAllister
d50114c41d Use string-cache's Namespace type 2014-09-29 21:40:54 -07:00
Keegan McAllister
6429750b33 Eliminate servo_util::atom
We only needed this for Encodable, and now we use JSTraceable instead.
2014-09-29 18:39:36 -07:00
Simon Sapin
3996a15adb Enable rustdoc for the style crate. Fix #2924.
We’re now at a Rust version that has a fix for
https://github.com/rust-lang/rust/issues/16274
2014-09-29 17:41:45 +01:00
Simon Sapin
b3245fa407 Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
Cameron Zwarich
b2a3519011 Remove the 'static lifetime parameters from TElement methods
This improves the static correctness of layout's use of DOM nodes.

Fixes #2595.
2014-09-27 11:14:10 -07:00
Cameron Zwarich
61ae80e186 Add an extra lifetime parameter to TElement / TNode
This isn't used for anything yet, but it's easier to propagate this
change in a separate commit.
2014-09-27 11:14:10 -07:00
bors-servo
a2220f1ea4 Merge pull request #3499 from pcwalton/ua-fixes
style: Tweak the UA style a little bit.

Reviewed-by: SimonSapin
2014-09-27 03:03:31 -06:00
Patrick Walton
0a0e73b21f style: Tweak the UA style a little bit. 2014-09-26 20:44:41 -07:00
Glenn Watson
cf79e64a5a Improve acid2. Fix line height calculation. Text fragments get correct enclosing element style.
* Enabled acid2 on mac + linux. Updated the reference image. The only difference from the
real acid2 now is the paint order and a 1 pixel horizontal offset on the nose.
* Change line-height to be calculated correctly.
* Apply enclosing element style to text fragments.
2014-09-26 17:12:22 +10:00
Josh Matthews
c7a575e793 Merge pull request #3465 from Ms2ger/ns
Handle null strings in Namespace::new.
2014-09-24 10:30:13 -04:00
Patrick Walton
d9f836bc75 Merge pull request #3458 from pcwalton/whitespace-nowrap
layout: Implement `white-space: nowrap`.
2014-09-23 20:22:33 -07:00
Manish Goregaokar
3b842c4f06 Merge pull request #3466 from Ms2ger/into_string
Remove redundant into_string() calls.; r=jdm
2014-09-24 08:10:17 +05:30
glennw
98222cf24c Merge pull request #3459 from glennw/small-caps
Add support for small-caps font-variant.
2014-09-24 09:49:05 +10:00
Patrick Walton
9aacd4c10c layout: Implement white-space: nowrap.
Improves the Reddit header.
2014-09-23 15:47:45 -07:00
Ms2ger
3a9e51ea17 Remove redundant into_string() calls. 2014-09-23 22:42:09 +02:00
Ms2ger
d3d7c1dabd Handle null strings in Namespace::new.
This also avoids a string copy in the rare case of an unrecognized namespace.
2014-09-23 22:22:45 +02:00
Manish Goregaokar
fcb25a35ec Rename macros crate to plugins 2014-09-23 17:37:27 +05:30
Glenn Watson
0dd1b85739 Add support for small-caps font-variant.
Ref: 2554.
2014-09-23 14:21:41 +10:00
Simon Sapin
eabb8d4f29 Add support for font-size relative size keywords. Fix #3423 2014-09-22 17:00:00 +01:00
Simon Sapin
a40b94d7f9 Use upstream lazy_static!() macro through Cargo
... instead of having our own copy.

https://github.com/Kimundi/lazy-static.rs
2014-09-20 13:32:52 -07:00
Keegan McAllister
dc86e83654 Eliminate warnings 2014-09-20 13:00:55 -07:00
Keegan McAllister
a640a7c5c3 Upgrade to rustc 0.12.0-pre (4d2af3861 2014-09-17 15:51:11 +0000) 2014-09-20 13:00:06 -07:00
Simon Sapin
4e71b215b8 Add font-size absolute size keywords. Fix #3417.
Relative size keywords are still missing:
https://github.com/servo/servo/issues/3423
2014-09-19 19:04:31 +01:00
Josh Matthews
9607b468bc Revert "script: Use atom comparison in more places, especially for attributes." for persistent test failures.
This reverts commit 874db26104.
2014-09-18 09:20:19 -04:00
Matt Brubeck
140b0007fd Update style unit tests to use atoms
Fixes test bustage from #3316.
2014-09-17 14:49:04 -07:00
Patrick Walton
874db26104 script: Use atom comparison in more places, especially for attributes.
75% improvement in style recalc for Guardians of the Galaxy.
2014-09-17 13:17:12 -07:00
Matt Brubeck
6c9524b687 Implement background-position keyword values
Also fixes calculation of background-position percentages:

Rather than multiplying the container size by a percent and aligning the top
left of the image at the resulting width, we also need to subtract a
corresponding percent of the image size, per
http://dev.w3.org/csswg/css2/colors.html#propdef-background-position

"A value pair of '100% 100%' places the lower right corner of the image in the
lower right corner of the padding box. With a value pair of '14% 84%', the
point 14% across and 84% down the image is to be placed at the point 14%
across and 84% down the padding box."
2014-09-16 10:24:31 -07:00
Clark Gaebel
acd83ff47b Added a bloom filter to CSS selector matching. 2014-09-15 16:29:45 -07:00
Jack Moffitt
e10206e91e Reinstate errors for unused variables and imports. 2014-09-13 23:38:00 -06:00
Gilles Leblanc
81a0d065f1 Make use of the list of Atoms in ClassSelector
Make use of the list of Atoms in the class attribute selector
(ClassSelector) in selector_matching.

Fixes #3111
2014-09-11 23:19:26 -04:00
Jack Moffitt
c6ab60dbfc Cargoify servo 2014-09-08 20:21:42 -06:00