Commit Graph

72 Commits

Author SHA1 Message Date
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
Patrick Walton
ff81f6ae4e servo: Merge #9522 - layout: Separate out overflow-for-scrolling from overflow-for-paint (from pcwalton:two-overflows); r=mbrubeck
Closes #9484.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: fb3fe3d784c24cdfd8040af0282e5c2182ee2051
2016-02-05 10:28:50 +05:00
Simon Sapin
12550c8084 servo: Merge #9170 - Add CSS Multicolumn support with block fragmentation (from SimonSapin:multicol2); r=mbrubeck
![a](https://cloud.githubusercontent.com/assets/291359/12147538/bfb198ac-b499-11e5-9936-c54c93d0b1ed.png)

Includes/supersedes #8763.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e1f0495a922c5dddbc120f17ba5c933973537ed
2016-01-30 00:19:14 +05:00
Martin Robinson
723ab42c9b servo: Merge #8632 - Improve readability of flow tree dump (from mrobinson:flow-tree-dump); r=pcwalton
Use the PrintTree utility to improve the readability of flow tree
dumps. Blocks and fragments are now split over two dump levels, because
otherwise they are impenetrable. Also start printing the restyle damage of
fragments.

Source-Repo: https://github.com/servo/servo
Source-Revision: a2330f494316926dca9f64431d8357a093143d7d
2015-11-24 07:19:07 +05: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
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
Manish Goregaokar
46699136ac servo: Merge #7536 - More clippy fixes (from Manishearth:clippyfix); r=Ms2ger
Elided almost all the lifetimes and removed needless returns. Mostly done by sed + manual fixes.

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: c2c2646d37614ece5869af861993c3d619f6e003
2015-09-04 07:59:04 -06:00
Michael Howell
403d3705f4 servo: Merge #7474 - Inline constraint resolver for absolutely positioned tables (from notriddle:master); r=pcwalton
Fixes #7425.

Source-Repo: https://github.com/servo/servo
Source-Revision: dee6283483a79b034565a6f9ad979f87c2765f78
2015-08-31 20:35:06 -06:00
Johann Tuffe
25ce9ab4be servo: Merge #7265 - Add alphabetical order check for use statements (from tafia:tidy-use); r=Ms2ger
close #7112

Source-Repo: https://github.com/servo/servo
Source-Revision: a5fbb2f2a6fa79755f975feff2435abb6a5dd0e9
2015-08-20 07:43:56 -06:00
Corey Farwell
caebc586e7 servo: Merge #7178 - flow::Flow should follow *_mut naming conventions (from frewsxcv:flow-api-mut); r=nox
Fixes #7148

Source-Repo: https://github.com/servo/servo
Source-Revision: 014608f60c45574e6a347f39a96aa33b8eab02e1
2015-08-18 07:31:57 -06:00
João Oliveira
5bbd3b623e servo: Merge #7225 - Replace uses of for foo in bar.iter() and for foo in bar.iter_mut() (from jxs:master); r=nox
closes #7197

Source-Repo: https://github.com/servo/servo
Source-Revision: a1b3f477aa541fda4d1b6ccb02c3e56143f4d217
2015-08-15 03:03:21 -06:00
Patrick Walton
72ef64a4af servo: Merge #6977 - layout: Make sure anonymous table flows are statically positioned (from pcwalton:containing-block-link-crash); r=mbrubeck
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.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 1ddef2997abf51716835017225b282f8a9077cce
2015-08-06 22:11:04 -06:00
Patrick Walton
9109eb2e7e servo: Merge #6947 - layout: Don't use the block container inline size as the initial computed table inline size (from pcwalton:table-center); r=glennw
Makes google.com fully centered.

r? @glennw
cc @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 220557008318350b444ba1917a3b07e03d30bec5
2015-08-04 11:36:09 -06:00
Glenn Watson
c51526ac99 servo: Merge #6784 - Implement offsetParent/Top/Left/Width/Height (from glennw:offset-ext); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: d66c59a15213dec17f38af0653e9e7e1bf579a95
2015-08-03 18:39:43 -06:00
Glenn Watson
fba452c49e servo: Merge #6865 - Fix panic when html element has display: table (from glennw:root-fixes); r=pcwalton
Ref #6643

Source-Repo: https://github.com/servo/servo
Source-Revision: 8419b15a3475fc54012976fbfab2139f631f9d93
2015-07-31 02:10:40 -06:00
ecoal95
87b4c78bcf servo: Merge #6423 - Use euclid from crates.io (from emilio:euclid); r=glennw
Sorry for not doing it yesterday, I couldn't.

cc @metajack @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ebb95ccd8e034007eacb447a054919ef4af2bf7
2015-06-18 20:50:22 -06:00
Patrick Walton
cf0b11ec43 servo: Merge #6053 - compositing: Implement display ports and avoid creating display lists for items outside it (from pcwalton:displayports); r=glennw
This improves Servo's performance on large pages.

Please double-check the logic when it comes to nested layers—I'm sure I've messed up some of the geometry calculations :)

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 0880e54f987bac7c34c934ef6ee36f46475b06e3
2015-05-19 19:40:36 -05:00
Matt Brubeck
0f44da4fd5 servo: Merge #6081 - Fix layout of RTL tables in LTR flow (from mbrubeck:table-wrapper-rtl); r=pcwalton
Fixes #6006. r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 3934831da3f481e24f923e73fa9df3a0faec194e
2015-05-15 22:46:35 -05:00
Patrick Walton
133aaea08f servo: Merge #5911 - layout: Allow inline elements to be containing blocks for absolutely-positioned elements (from pcwalton:absolute-inline-containing-blocks); r=mbrubeck
r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: c0ee952a2a7054dcc7e97990a625c281322dd526
2015-05-13 14:27:21 -05:00
Matt Brubeck
c8a701876e servo: Merge #5997 - Fix direction of columns in mixed LTR/RTL tables (from mbrubeck:table-direction); r=pcwalton
Table columns should be layed out according to the 'direction' property of the
table flow, regardless of the 'direction' property of any table-row,
table-rowgroup, etc. flows.

This fixes a number of the `direction-applies-to-*` tests in the CSS2.1 test
suite.

This also simplifies `propagate_column_inline_sizes_to_child` by separating
the code used for table cells from the code for non-cell flows.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 844ac2915eab6573c43e7648cfa94cc2d97fa901
2015-05-11 07:50: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
Ms2ger
607915e1d8 servo: Merge #5916 - Prepare for the rustup (from servo:prepare-rustup); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 2f0b805fad2419518f0d80e90cf322fbd507a916
2015-05-01 14:44:19 -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
Matt Brubeck
f33f2db9ec servo: Merge #5885 - Ignore border-spacing for tables with zero cells (from mbrubeck:empty-table); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: b5beebbc6280f5ff6397b6a9154b705d42d000e7
2015-04-28 13:53:59 -05:00
Patrick Walton
5afd7ee1ff servo: Merge #5831 - layout: Make margin: auto work properly with tables (from pcwalton:amazon-table-sizing); r=mbrubeck
r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 32b9c0962b7e42ac6d298f5959f1e48d4cc99c5a
2015-04-28 11:44:39 -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
Ms2ger
c7955e722b servo: Merge #5847 - Avoid as_slice() / at_mut_slice() (from Ms2ger:slice); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 1389be37823fccf4108f4e79d0a3a793f0bbe93e
2015-04-26 05:30:28 -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
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
Patrick Walton
afca24ff6f servo: Merge #5584 - layout: Remove the bogus assign_block_size_for_inorder_child_if_necessary logic from table wrapper flows (from pcwalton:fix-a-float-redux); r=glennw
As far as I can tell, this is a cut-and-paste of old buggy code from
block flows. Delegating to the correct block flow code fixes the sidebar
float placement on Guardians of the Galaxy.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: f4da0f0e94259e12adeb193fd9ecf6813457b883
2015-04-08 03:57:36 -05:00
Manish Goregaokar
5e87044185 servo: Merge #5296 - Replace unsafe_blocks by unsafe_code (from servo:unsafe_code); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 29a36adbe7d87fb38ba9bef3a718c6c823fb5977
2015-03-21 05:12:45 -06:00
Matt Brubeck
45863dd25d servo: Merge #5233 - Fixes for positioning of RTL blocks (from mbrubeck:rtl-position); r=SimonSapin
This fixes a bug in finding the top left corner of an RTL block in physical coordinates.  (The old code used the `start` point of the `position` rect, which is not always the top left.)

It also fixes the setting of `position.start.i` in certain mixed LTR/RTL cases.

There is still a bug related to `position.size` for RTL blocks with margins.  See the FIXME comments for details.

r? @pcwalton or @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: b255b49e2e2246ff8bf7f8751088bfe0a0ee41a2
2015-03-17 12:33:53 -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
Dan Fox
f81c6d46cc servo: Merge #5135 - Fix 5120 rename layout util (from iamdanfox:fix-5120-rename-layout-util); r=jdm
A simple rename/refactor (https://github.com/servo/servo/issues/5120)

My first servo contribution!

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fc37dfaa76c9265e6d2145fe5ef2fba5f6bd013
2015-03-05 11:09:58 -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
b8fa8e87d7 servo: Merge #5067 - layout: Implement ordered lists, CSS counters, and quotes per CSS 2.1 § 12.3-12.5 (from servo:counters); 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.

Moved from #4544, because Critic.

Fixes #4544.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5cd6316addc1acf145ed3220719387ef6ef08d2f
2015-03-03 10:42:52 -07:00
Patrick Walton
31e5810d70 servo: Merge #4994 - layout: Add an option to visualize parallel layout (from pcwalton:layout-tinting); r=pcwalton
r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: d26345f868e4261760ce204bdc383941e8f14621
2015-02-20 23:06:48 -07:00
Simon Sapin
8fbd363d52 servo: Merge #4893 - Upgrade to rustc ba2f13ef0 2015-02-04 (from servo:rustup_2015-01-31); r=Ms2ger,glennw
Ready for review.

Final link step on android fails, but we know how to fix it and will add it to this branch soon.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2cc08f289ab909de44fa09a07b2c43b70ce379b9
2015-02-11 17:24:45 -07:00
Simon Sapin
ba695b5444 servo: Merge #4757 - Bring CSS parse error reporting back (from servo:newnewnewcss); r=mbrubeck
(Still off by default. Enable with `RUST_LOG=style`.)

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 172aed535be3c34775824dac64ad2b91fc379ad5
2015-01-30 15:27:53 -07:00
Josh Matthews
b11f7d94dc servo: Merge #4719 - Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev (from servo:rustup_20150109); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3f9012864a2cd927cf17a8e11dfa6922add1b7df
2015-01-27 18:15:50 -07:00
Matthew Rasmus
58a0d9aad6 servo: Merge #4598 - table_wrapper.rs: Fix for percentage widths (from mttr:table_percentage); r=pcwalton
Fixes #4421

Source-Repo: https://github.com/servo/servo
Source-Revision: 62d1761d2a93368893d4c1cb242b511b3ceda48f
2015-01-13 13:24:48 -07:00
Ms2ger
b3c7f9d2ca servo: Merge #4554 - Update rustc to revision 2cfb5acb5a2751c759627377e602bac4f88f2d19 (from servo:rustup_20141221); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1d7148c79f9124779a910fd5291c5fa0543b2dae
2015-01-08 08:00:57 -07:00
Patrick Walton
fe1e6fa761 servo: Merge #4460 - layout: Paint stacking contexts' overflow areas properly (from pcwalton:stacking-context-overflow); r=glennw
This was making `box-shadow` not show up in many cases, in particular,
but the effects were not limited to that.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 499d17f564d699e5e290e8a3859f64e7536827a7
2015-01-04 18:51:48 -07:00
Glenn Watson
636d338cf6 servo: Merge #4405 - Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d (from servo:rustup_20141124); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fbf42c951b2f53d91e2f32f8035484a07ea83493
2014-12-17 18:45:49 -07:00
Patrick Walton
2a3b044e37 servo: Merge #4289 - style: Implement basic column spans, quirks mode, and the legacy bgcolor and border attributes (from pcwalton:hacker-news); r=SimonSapin
This patch provides some of the groundwork for column spans greater than
1. It implements the column-span CSS property as well as the
corresponding colspan attribute; although the former is not
well-specified outside of CSS multi-column layout, INTRINSIC refers to
it. Although width is distributed to spanning columns, they do not yet
contribute minimum and preferred widths; this will be implemented in a
follow-up.

The parsing for the legacy bgcolor and border attributes is
implemented according to the WHATWG HTML specification.

Additionally, this patch cleans up some miscellaneous formatting issues,
refactors layout/css somewhat to eliminate needless levels of
indirection, and cleans up the handling of table rowgroups.

New Hacker News screenshot: http://i.imgur.com/hnl2a7E.png

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e31e5f98747e4b42dafcc4b076fac46aeb09310
2014-12-15 19:33:46 -07:00
Patrick Walton
6fb62182d5 servo: Merge #4328 - layout: Implement text-indent per CSS 2.1 § 16.1 (from pcwalton:text-indent); r=SimonSapin
I had to use a somewhat unconventional method of computing text
indentation (propagating from blocks down to inlines) because of the way
containing blocks are handled in Servo.

(As a side note, neither Gecko nor WebKit correctly handles percentages
in `text-align`, at least incrementally -- i.e. when the percentages are
relative to the viewport and the viewport is resized.)

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: be6612193786ef22810fd66b3ce244a7e66cbcf4
2014-12-12 15:57:46 -07:00