Commit Graph

168 Commits

Author SHA1 Message Date
Corey Farwell
3d43073796 servo: Merge #6174 - Reduce max line length from 150 to 120 characters (from frewsxcv:cleanup-long-lines); r=SimonSapin
Part of https://github.com/servo/servo/issues/6041

Source-Repo: https://github.com/servo/servo
Source-Revision: 542519ebfd073662bc9421ac5fa0aa01ebc0d6fe
2015-05-24 18:27:26 -05:00
Simon Sapin
469c482ec7 servo: Merge #6159 - Remove usage of the mod_path compiler plugin (from SimonSapin:no_mod_path); r=Manishearth
https://github.com/rust-lang/rust/pull/20179 makes its use case much weaker.

r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: e04d9c32a98ff4673f413ed17f66e7466e2ff974
2015-05-22 03:13:13 -05:00
Matt Brubeck
8868c02bf2 servo: Merge #6138 - Enable 'direction' without --experimental (from mbrubeck:enable-rtl); r=pcwalton
r? @pcwalton or @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: fed48ca59b122f733c74957b6be39b067d792d17
2015-05-19 22:27:17 -05:00
Jinwoo Song
0482f48b98 servo: Merge #6067 - Implement 'background-clip' property in CSS3 Background (from Jinwoo-Song:backgroundclip); r=pcwalton
This property determines the background painting area, which determines the area
within which the background is painted.

Spec: http://dev.w3.org/csswg/css-backgrounds-3/#background-clip

Fixes #6066.

r? @pcwalton
cc @yichoi

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f2079f6baafd5f111fbe7b6542f98c2672fa317
2015-05-15 22:05:05 -05:00
Jinwoo Song
4b3d53fce0 servo: Merge #6033 - Add support for 'padding-box' value for 'box-sizing' property (fixes #6032) (from Jinwoo-Song:boxsizing_paddingbox); r=pcwalton
Spec: http://dev.w3.org/csswg/css-ui/#valdef-box-sizing-padding-box

Currently, only Firefox is supporting this value.

Source-Repo: https://github.com/servo/servo
Source-Revision: 68d135e67116fd15634b0e61ce101e71d8bf34c6
2015-05-15 09:42:18 -05:00
Jinwoo Song
4b52eb822a servo: Merge #6046 - Implement 'background-origin' property in CSS3 Background (from Jinwoo-Song:background_origin); r=pcwalton
This property determines the background positioning area, that is the position of
the origin of an image specified using the 'background-image' CSS property.

'background-origin' is ignored when background-attachment is fixed.

Spec: http://dev.w3.org/csswg/css-backgrounds-3/#background-origin

Fixes #6045.

r? @pcwalton
cc @yichoi

Source-Repo: https://github.com/servo/servo
Source-Revision: 8c402728247c73268df9389948ee9a9d9e4063b2
2015-05-14 20:53:02 -05:00
Ms2ger
cf4f8c7684 servo: Merge #6019 - Move the presentational hint from table border to the new infrastructure (from Ms2ger:preshint-border); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 398e7f07fe0c5b0f0c9e8c05b8962011c83505d3
2015-05-12 14:47:49 -05:00
Mike Blumenkrantz
a19648b456 servo: Merge #5992 - Random fixups (from zmike:random-fixups); r=larsbergstrom
Attempt to not panic as much if the resources/ dir is not where it's expected to be.

Source-Repo: https://github.com/servo/servo
Source-Revision: 76225bdccb5105764d979b4d739d4d8edfc98bfe
2015-05-12 13:26:22 -05:00
Ms2ger
e982e78205 servo: Merge #5988 - Move some presentational hints to the new infrastructure (from Ms2ger:preshints); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 8fa604be9dc85bfd41db7d574e236ab8b4e6d89a
2015-05-12 02:15:11 -05:00
Patrick Walton
a503e48f27 servo: Merge #5980 - layout: Implement <table width> and <center> (from pcwalton:table-width-and-center); r=mbrubeck
Improves Hacker News.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: c1e15e827edeef264afbbf1eae4be46de19fa0ef
2015-05-11 15:25:42 -05:00
Ms2ger
1cdbd0dcb7 servo: Merge #5999 - Move get_attr and get_attrs into TElementAttributes (from Ms2ger:TElement); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cf9338cb2eb1ff0c28e83d40e06b687828ab4c04
2015-05-10 11:26:25 -05:00
Patrick Walton
7dada6d4f9 servo: Merge #5940 - layout: Implement inline margins (from pcwalton:inline-margins); r=glennw
Improves the Google SERPs.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 0872ed922ff49d28e0183ea1407e07a9cbe338a8
2015-05-07 19:10:31 -05:00
Patrick Walton
712167aac6 servo: Merge #5936 - layout: Don't rerun selector matching unless we need to when resizing the window (from pcwalton:fast-resize); r=jdm
2.1x improvement on resizing on Reddit.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: bfd16984623e55d835a0a9c08e985d96257c49c0
2015-05-07 18:13:29 -05:00
Simon Sapin
0872ebe9b2 servo: Merge #5968 - Deduplicate some dependencies (from SimonSapin:deduplicate-deps); r=Manishearth
This uses some dependencies from crates.io instead of git where the crates.io copy was already used in some other part of the dependency tree, so we had two copies of the same library.

The `android_glue` crate is the only one left where we have two copies, but solving that is more tricky since we hard-code a path in `components/servo/.cargo/config`.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: 59cb1b03968a55dcce1774088890a3ecf4de0037
2015-05-07 02:31:15 -05:00
James Gilbertson
8a584c6fcf servo: Merge #5361 - Implement CSS Device Adaption Level 1 (from luniv:css-device-adapt); r=mbrubeck
Spec: http://dev.w3.org/csswg/css-device-adapt/

Currently, the actual viewport is used by the layout task as part of the reflow, and the compositor uses the zoom constraints. I'm not sure if anywhere else currently needs access to the constraints (i.e. there's no CSSOM as far as I can tell).

I did not implement sections 9 (viewport <META>) or 10 (handling 'auto' for 'zoom').

Source-Repo: https://github.com/servo/servo
Source-Revision: ccf1e6b9a701cf4ff010fa1f1b4ba9d656d962af
2015-05-06 12:41:09 -05:00
Simon Sapin
25523c4789 servo: Merge #5951 - Clean up the Au API (from SimonSapin:au-cleanup); r=mbrubeck
Fix #5943.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 1721cf45ed59306a69f3ade08feca065804c3804
2015-05-05 15:08:12 -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
Matt Brubeck
36dbb98d95 servo: Merge #5891 - Support text-align: start and end (from mbrubeck:text-align-rtl); r=SimonSapin
r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 7ee605db117bfc96ef145a1c77d43b704baeacb2
2015-04-29 09:07:17 -05:00
Simon Sapin
18ebfd9b8c servo: Merge #5480 - Preliminary steps for CSS Multi-column Layout (from SimonSapin:multicol); r=pcwalton
This add some properties to the style system and a new flow type, but the larger issues of dealing with fragmentation in the flow tree is still an open question.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1e150140bd12624ad357e3168fb496079fb8ec7c
2015-04-28 19:48:45 -05:00
Ms2ger
622e167a6a servo: Merge #5888 - Prepare for the rustup (from Ms2ger:prepare-rustup); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: ab2d07db1fabd7ad9590aa7296038bbc91806c3f
2015-04-28 17:52:49 -05:00
Ms2ger
61c403ae3e servo: Merge #5857 - Create a new infrastructure for presentational hints (from Ms2ger:preshints); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 1cb012fc5043dd978d118e49b2f76e9320090bba
2015-04-28 03:24:14 -05:00
Simon Sapin
e11ff55b59 servo: Merge #5870 - layout: Implement most of border-collapse per CSS 2.1 § 17.6.2 (from SimonSapin:border-collapse); r=SimonSapin
Fixes #5300, which it is a rebase of.

Known issues:

* Collapsed borders do not correctly affect the border-box of the table
  itself.

* The content widths of all cells in a column and the content height of
  all cells in a row is the same in this patch, but not in Gecko and
  WebKit.

* Corners are not painted well. The spec does not say what to do here.

* Column spans are not handled well. The spec does not say what to do
  here either.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8a4555cc53bc1bbb21a08eb6f010cb1215034419
2015-04-27 12:29:15 -05:00
Patrick Walton
f858f2e214 servo: Merge #5836 - style: Disregard the size attribute for input elements other than text or password fields (from pcwalton:input-size); r=mbrubeck
HTML5 § 4.10.5.3.2 doesn't explicitly say to do this, but all other
browser engines seem to do it.

Improves the Google home page.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: f010c8331304dcdd40f40fe844087399078532d0
2015-04-24 20:06:41 -05:00
Ms2ger
f3c2bbdd16 servo: Merge #5827 - Use as_slice less (from Ms2ger:slice); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 79be3b967668e46a4289f4fc8fce2b4f457cab23
2015-04-24 12:12:53 -05:00
Simon Sapin
976ad65fcb servo: Merge #5794 - vertical-align can take negative lengths and percentages (from SimonSapin:negative-vertical-align); r=Manishearth
http://dev.w3.org/csswg/css2/visudet.html#propdef-vertical-align

Source-Repo: https://github.com/servo/servo
Source-Revision: 8efd70b01b0ff9b42722e6b9d88940f6944ebba2
2015-04-22 11:13:25 -05:00
Anthony Ramine
c721dcf26a servo: Merge #5775 - Implement CSSStyleDeclaration.float (fixes #5101) (from nox:cssstyledeclaration-float); r=jdm
It just needs to be prefixed by an underscore.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fa1a6a42621a8bd46137b3417a7623a6b3ed2d1
2015-04-21 13:33:03 -05:00
Corey Farwell
3a07d505df servo: Merge #5739 - Add links to the spec for components/style (from frewsxcv:style-docs); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 40ee41ca92206768b53cb5768c0b38fd7ba439dc
2015-04-18 05:44:50 -05:00
Corey Farwell
7a0c4a962f servo: Merge #5729 - Don't link to specific WHATWG multipage page (from frewsxcv:whatwg-multipage-redirects); r=Manishearth
"Links to the multipage version of the specification are unfortunately
likely to break over time."
-- https://html.spec.whatwg.org/multipage/asefij.html

This commit removes all references to the specific pages when viewing
WHATWG using multipage mode. I went through all these links and they
redirect fine.

Regex used to generate this commit:

`s_whatwg.org/multipage/.*#_whatwg.org/multipage/#_g`

Source-Repo: https://github.com/servo/servo
Source-Revision: d90fe2b0889dee4eb27693aca7670969d5253424
2015-04-17 08:57:33 -05:00
Joseph Seaton
8470bbeba4 servo: Merge #5704 - Make many CSS properties animatable (from jseaton:jseaton/animation-props); r=pcwalton
Contributes towards servo/servo#5494 - includes all properties listed at http://dev.w3.org/csswg/css-transitions/#animatable-css .

Unforunately the most obvious way to support text-shadow meant making a few structures NoCopy.

Source-Repo: https://github.com/servo/servo
Source-Revision: 653b40d3e56aedbc11d6c51c5e80819231f42144
2015-04-16 13:42:16 -05:00
Ms2ger
51447ea41d servo: Merge #5708 - Remove an unused import (from Ms2ger:warnings); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: 96b20bc2d33092c8380f8bd4ea0e1220fd6f4e5a
2015-04-16 08:39:41 -05:00
Adenilson Cavalcanti
518345cfd8 servo: Merge #5546 - Implementing Blur filter (from Adenilson:blurFilter01); r=pcwalton
See discussion on #5190 and #5496.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fd6a48cca1ff951e60c9345e988f5489cb56f61
2015-04-15 18:56:49 -05:00
Patrick Walton
ef81f7f477 servo: Merge #5691 - layout: Use the same code path for computing static positions of regular flows and static positions of hypothetical boxes (from pcwalton:hypothetical-box-reform); r=glennw
Before this change, Servo used one code path that computed the position
of flows with `position: static` or `position: relative` and another
separate code path that computed the position of flows with `position:
absolute` or `position: fixed`. The latter code attempted to duplicate
the former code to determine the static position of hypothetical boxes,
but this was both fragile and incorrect in the case of hypothetical
boxes nested inside floats. In fact, it's impossible to determine the
static position of an absolute flow relative to its containing block at
inline-size assignment time, because that static position could depend
on a float that cannot be placed until block-size assignment!

This patch changes block layout to use the same code path for static
positioning of regular flows and static positioning of absolute flows
where applicable. This both simplifies the code and improves its
efficiency, since it allows the `hypothetical_position` field and
`static_block_offsets` data structure to be removed. Moreover, it
improves correctness in the above case (which the new reftest checks).
This allows the sidebar in Facebook Timeline to be positioned properly.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: bdcf606f4802e5b1ab3ee251b45ee1e81800359a
2015-04-14 18:14:11 -05:00
James Gilbertson
33745aad78 servo: Merge #5553 - Use iterators for iterating through CSS rules (from luniv:css-rule-iterators); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 22e570a06e92bbc449eb01058e243443b536f467
2015-04-10 19:17:49 -05:00
Patrick Walton
e270e9fa0f servo: Merge #5623 - layout: Lay out nested inline elements with different vertical-align values properly in simple cases (from pcwalton:nested-inline-vertical-align); r=glennw
This allows things like `<sup><span>Foo</span></sup>` to work and
improves Wikipedia.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: d7b6961104b517a22e01c192d4bb6a7ad5934ce8
2015-04-09 17:20:23 -05:00
Simon Sapin
457ec2ede7 servo: Merge #5574 - Move unit tests to their own crates, cut time by 96% (from servo:unit-tests); r=jack
On my laptop, running `./mach test-unit` goes from about 11 minutes to 22 seconds, when run after `./mach build`.

Fix #5291.

Source-Repo: https://github.com/servo/servo
Source-Revision: 017d1053617f6769d7f355e4a97d52ae67e53d1c
2015-04-07 21:16:49 -05:00
Ms2ger
573f978c92 servo: Merge #5531 - Stop using int and uint in style (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 92b6a0b8e006fbf03a7ef9b4ea7d458328b2fbb8
2015-04-06 09:09:52 -05:00
Josh Matthews
90d006ea26 servo: Merge #5477 - Warning patrol (from jdm:warnfix); r=kmcallister
Source-Repo: https://github.com/servo/servo
Source-Revision: 3294778b371799f6594ba6e39986685c001b017c
2015-04-01 17:30:41 -06:00
Patrick Walton
f855998d89 servo: Merge #5278 - gfx: Perform more aggressive caching in FontContext::get_layout_font_group_for_style() (from pcwalton:font-group-caching); r=glennw
There are several optimizations here:

* We make font families atoms, to allow for quicker comparisons.

* We precalculate an FNV hash of the relevant fields of the font style
  structure.

* When obtaining a platform font group, we first check pointer equality
  for the font style. If there's no match, we go to the FNV hash. Only
  if both caches miss do we construct and cache a font group. Note that
  individual fonts are *also* cached; thus there are two layers of
  caching here.

15% improvement in total layout thread time for Facebook Timeline.

r? @glennw (since you last worked on `get_layout_font_group_for_style()` IIRC)

Source-Repo: https://github.com/servo/servo
Source-Revision: ba0d28e0023fce2003d64b9caf97fcdbeb7cdb28
2015-04-01 10:00:52 -06:00
Patrick Walton
b4a63e5dbd servo: Merge #5400 - layout: Implement CSS transitions per CSS-TRANSITIONS § 2 (from pcwalton:transitions-redux); r=glennw
Transition events are not yet supported, and the only animatable
properties are `top`, `right`, `bottom`, and `left`. However, all other
features of transitions are supported. There are no automated tests at
present because I'm not sure how best to test it, but three manual tests
are included.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: ebdf1d494b6c986e6dfcb7d8fd3f0ffa126523ed
2015-03-31 10:39:56 -06:00
Ms2ger
0e9f5150d2 servo: Merge #5324 - Remove allow(missing_copy_implementations) attributes (from Ms2ger:missing_copy_implementations); r=jdm
This is now the default.

Source-Repo: https://github.com/servo/servo
Source-Revision: b1a35f549baad871a3691ae485af2efecd2d73f7
2015-03-23 08:45:50 -06:00
Ms2ger
761d1d93b7 servo: Merge #5303 - Update some code that's feature-gated under core (from Ms2ger:core); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43f3f6c897916aea75773f74060ec84a338834d0
2015-03-21 12:57:46 -06:00
Simon Sapin
5cb6c4ea43 servo: Merge #5262 - Fix some post-rustup warnings (from servo:fix-warnings); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: 124a78fb2e4d324a7d0ed54da1cca17839d406b7
2015-03-18 15:21:49 -06:00
Ms2ger
f4ea3a3dd0 servo: Merge #5256 - Upgrade rustc to d3c49d2140fc65e8bb7d7cf25bfe74dda6ce5ecf/rustc-1.0.0-de (from servo:rustup_20150311); r=jdm
...v.

Relies on:
* https://github.com/servo/rust-geom/pull/72
* https://github.com/servo/rust-glx/pull/10
* https://github.com/servo/gleam/pull/15
* https://github.com/servo/rust-mozjs/pull/137
* https://github.com/servo/rust-core-text/pull/35
* https://github.com/servo/rust-io-surface/pull/28

Source-Repo: https://github.com/servo/servo
Source-Revision: 99cf9dbfc107bacb84dfe5afa9539a0ede3beac2
2015-03-18 11:25:00 -06:00
Patrick Walton
7ac5751923 servo: Merge #5134 - layout: Implement 2D CSS transforms per CSS-TRANSFORMS § 5, 6, 7, and 8 (from pcwalton:transforms); r=SimonSapin
r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 203240c1d82b780ce49261d8b47e6cbe6af50950
2015-03-17 13:39:51 -06:00
Patrick Walton
33d4762cb0 servo: Merge #4417 - layout: Implement border-spacing per CSS 2.1 § 17.6.1 and the legacy cellspacing attribute per HTML5 § 14.3.9 (from pcwalton:border-spacing); r=larsbergstrom
Table layout code has been refactored to push the spacing down to
rowgroups and rows; this will aid the implementation of
`border-collapse` as well.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e811229bae6b338fabcd7df602079730c942889
2015-03-12 13:03:49 -06:00
Patrick Walton
707a4d89ff servo: Merge #5160 - layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1 § 12.3-12.5 (from pcwalton:counters-redux); r=SimonSapin
Only simple alphabetic and numeric counter styles are supported. (This
is most of them though.)

Although this PR adds a sequential pass to layout, I verified that on
pages that contain a reasonable number of ordered lists (Reddit
`/r/rust`), the time spent in generated content resolution is dwarfed by
the time spent in the parallelizable parts of layout. So I don't expect
this to negatively affect our parallelism expect perhaps in pathological
cases.

Reconstructed from #5138 via raw diffing.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: fd1bb49a65dd998c8ef9890a1576aaf62ddfdba1
2015-03-09 23:24:47 -06:00
James Gilbertson
179b3f3f55 servo: Merge #5154 - Implement 'vw', 'vw', 'vmin', 'vmax' CSS length units (from luniv:viewpoint-percent-lengths); r=SimonSapin
Spec: http://dev.w3.org/csswg/css-values-3/#viewport-relative-lengths
Source-Repo: https://github.com/servo/servo
Source-Revision: a557b51c28aaba398fd85f86af909ec623e2350f
2015-03-05 18:55:02 -07:00
Ms2ger
7d2ff51b51 servo: Merge #5155 - Remove an unused import from properties.rs (from Ms2ger:unused-import); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: caf5663e0981f36a621dde1dd51be2bd0a15dd24
2015-03-05 08:27:50 -07:00
Simon Sapin
e9e4453a9a servo: Revert "layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1"
This reverts commit 30fd28d1077fbb3f47140f6ab1252c0d24f44d23.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4c1d778ced267eeef790d4166e361d9348b933d3
2015-03-03 21:16:24 +01:00
Simon Sapin
6eff74292e servo: Revert "Refactor content property parsing."
This reverts commit 50800940dc5c8cf424d5786c447f7ff1d0432a97.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7a218b3f08c95b5c1a14ef1bbf09658d61b8d342
2015-03-03 21:16:03 +01:00