Commit Graph

182 Commits

Author SHA1 Message Date
Ms2ger
b7afa848f3 servo: Merge #6794 - Remove StyledNode (from Ms2ger:StyledNode); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b447651e4e5309c057f2cf2af58b3aa733bb4c4
2015-07-28 17:26:42 -06:00
Ms2ger
82c0410b0a servo: Merge #6498 - Remove Deref and DerefMut implementations from WeakFlowRef (from Ms2ger:weak-deref); r=metajack
By definition of a weak pointer, these implementations cannot be safe.

Source-Repo: https://github.com/servo/servo
Source-Revision: 82be491fa318f742720dc0a31f6c1b24beb57a3d
2015-06-27 10:27:03 -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
Corey Farwell
06b50698fa servo: Merge #6349 - rust-geom API changes (from frewsxcv:geom-api-changes); r=pcwalton
Shouldn't be merged until these have merged:

https://github.com/servo/rust-geom/pull/81

https://github.com/ecoal95/rust-offscreen-rendering-context/pull/13

https://github.com/servo/rust-layers/pull/178

~~I'll also need to update the Cargo lock files once they merge~~

Source-Repo: https://github.com/servo/servo
Source-Revision: cfcd8589d06935f83b903f76477ea03e4d4652d0
2015-06-13 13:52:07 -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
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
Patrick Walton
13b0183e7b servo: Merge #5991 - layout: Store overflow for flows impacted by floats (from pcwalton:float-overflow-area); r=glennw
Makes qz.com visible.

In order to work around a compiler bug involving Sized, this patch moves
`store_overflow` to be a virtual method.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a13cae064c4418923fe35bb7e07c71f5bfd851e
2015-05-11 16:08:46 -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
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
Patrick Walton
c295421a28 servo: Merge #5889 - layout: Remove absolute_static_i_offset and fixed_static_i_offset (from pcwalton:remove-absolute-static-i-offset); r=glennw
They haven't been used for hypothetical box calculation in quite some
time.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 0a4db7ae0f581a959863bd5159766795c6caf8d8
2015-04-28 18:30:38 -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
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
d21a740830 servo: Merge #5801 - Stop using the deprecated range function (from Ms2ger:range); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 43e664cda1dd562935fe5e4fdd92e5abcf6fb8f9
2015-04-22 18:24:21 -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
Ms2ger
636126329a servo: Merge #5486 - Stop using int/uint in layout (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: d999fb9db0d572f63165fa8aa2e24023903b6332
2015-04-02 08:06:41 -06:00
Patrick Walton
129f56bffe servo: Merge #5429 - layout: Stop rebuilding all inline-block flows unconditionally, and bubble intrinsic inline sizes as necessary when doing incremental reflow (from pcwalton:inline-block-incremental-reflow); r=mbrubeck
r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: dd3a58b92427bfd6e33903042272b372b49e9193
2015-04-01 12:03:45 -06:00
Ms2ger
196299eae1 servo: Merge #5437 - Remove some int/uints (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d0d8514565d898123411ece56bfb09e578dbe1c
2015-03-29 03:49:01 -06:00
Ms2ger
b244a0a2c4 servo: Merge #5416 - Remove some int/uints (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 674e52afa1012cb342629dab4d3abae975a16fe9
2015-03-28 13:58:02 -06: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
Ms2ger
bfd31316e6 servo: Merge #5288 - Fix various build warnings (from Ms2ger:warnings); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 0663cd632517c9a9c86db47456c5a4da637045ed
2015-03-20 11:00:54 -06:00
Jack Moffitt
ed752d9109 servo: Merge #5228 - Fix memory leak in flow tree by adding weak refs (from metajack:memory-debug); r=pcwalton
Cycles were being created in the flow tree since absolutely positioned
descendants had pointers to their containing blocks. This adds
WeakFlowRef (based on Weak<T>) and makes these backpointers weak
references. This also harmonizes our custom Arc<T>, FlowRef, to be
consistent with the upstream implementation.

Fixes #4915.

Source-Repo: https://github.com/servo/servo
Source-Revision: f5ddbcf19fcd477dee61d6c03434ef7cfca188bf
2015-03-16 13:16:03 -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
Matt Brubeck
73d14319ca servo: Merge #5143 - Layout fixes for RTL child flows in LTR parents (from mbrubeck:rtl); r=pcwalton
...and vice-versa.  This is not a complete fix for all mixed-direction layout cases, but it fixes enough problems to make some simple test cases pass, like tha attached reftest.

There are FIXME comments for many of the remaining issues.  In particular, this does not yet handle RTL layout of fixed/absolute elements, nor does it completely fix the overconstrained_block reftest.

r? @SimonSapin or @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 2df4dd9e098671fdbe2951f6669473e7737d6ed3
2015-03-09 15:54:51 -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
Glenn Watson
ab3c7aea66 servo: Merge #5125 - Remove compositor layers when iframes are removed from doc or display:none (from glennw:remove-iframe-layers); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: e19fbc686cd10d59c9e02593f0b6ab68aabe02fc
2015-03-03 15:12:45 -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
Adenilson Cavalcanti
2d82bed6be servo: Merge #4995 - Actually print the contents of Flow Tree into console (from Adenilson:printFlowTree01); r=jdm
When executing servo with proper flags (i.e. --debug dump-flow-tree), it should print the flow tree. We had the code, but it was commented.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2eb71bda83c175ec4af9aca4e22b74ef7fea9097
2015-02-20 20:12:55 -07:00
Ms2ger
03f803ab84 servo: Merge #4947 - Use rustc-serialize rather than the built-in deprecated serialize (from Ms2ger:serialize); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: afb152a8569953f730df564be2745c5a6302bf6f
2015-02-17 07:30:50 -07:00
Ms2ger
378bcbf61f servo: Merge #4902 - Fix some warnings (from servo:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fab80925818e53bfb92ffa2684a6834bb9f70f29
2015-02-12 11:06:50 -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
Ms2ger
f3a69a15a3 servo: Merge #4886 - Import msg as msg rather than servo_msg (from Ms2ger:servo_msg); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: 29d3b872de4abb693b75e71fc0b987c52b0fd1f6
2015-02-10 03:51:46 -07:00
Ms2ger
c0c68f4cfa servo: Merge #4869 - Various layout cleanup (from Ms2ger:layout-unsafe); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a47f176ffb059a7a3f29f94485859163cb1284b
2015-02-08 21:00:43 -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
Ms2ger
97751da42e servo: Merge #4708 - Prepare for the rust upgrade (from Ms2ger:rustup-prepare); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 55fbf1f2b6924c50cff6e4ddf359289654f4858a
2015-01-22 08:06:50 -07:00
Matt Brubeck
60b6cef09a servo: Merge #4619 - Remove unused Flow method (from mbrubeck:dead-top-margin); r=Ms2ger
Added in #1988 but never used. r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 8103bba19bca3b85f2d8afa435fbb650b15d704f
2015-01-12 16:12:46 -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
Patrick Walton
25ca4de050 servo: Merge #4459 - gfx: Clip the background properly when border-radius is used, and clean up some painting stuff (from pcwalton:border-radius-clipping); r=glennw
Together these improve a large number of sites: GitHub, Reddit, Wikipedia, etc.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 63a7742d834e9ed44421baa3ce218a5eabce58bf
2014-12-22 15:51:48 -07:00
Simon Sapin
5a3cd41bb2 servo: Merge #4425 - Fix some writing mode mismatch assertions errors (from SimonSapin:mixed-writing-modes); r=mbrubeck
The rendering is still wrong beause of #2795, but at least we get a rendering.

(This test change is just for readability, it should be equivalent to before.)

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 3cc87165a1279005fa2c12413f33487dee31df96
2014-12-18 15:31:28 -07:00
Simon Sapin
66d7332a20 servo: Merge #4420 - Fix warnings (from servo:fix-warnings); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: eea49ee1d986c306a8eec32b64be9b10cb2278fc
2014-12-18 04:42:50 -07:00
Patrick Walton
bd7ccaf413 servo: Merge #4400 - layout: Implement empty-cells per CSS 2.1 § 17.6.1.1 (from pcwalton:empty-cells); r=SimonSapin
r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 636641f90533c941a3580b5caee1ae1fef953841
2014-12-17 22:33:51 -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
Ms2ger
c38a900fd3 servo: Merge #4389 - Fix bogus transmute (from Ms2ger:transmute); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 508924771e8f0f60700931ebd88aebf8c8889e44
2014-12-16 08:54:51 -07:00
Patrick Walton
1ed77c8245 servo: Merge #4310 - layout: Implement basic lists and the CSS1 list properties (from pcwalton:lists); r=SimonSapin
The exact rendering is ill-spec'd. Some things are ugly (especially the
width and height of list style images) but they are infrequently used
and I believe this implementation matches the spec. Numeric lists are
not supported yet, since they will require a separate layout pass.

The implementation is a subclass of `BlockFlow`, on advice from Robert
O'Callahan.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 112ef5c484e821aa4869aeaf12a12146f2424fe0
2014-12-15 17:42:48 -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
Patrick Walton
1c40c6ac32 servo: Merge #4339 - layout: Make table layout idempotent (from pcwalton:refactor-tables); r=mbrubeck
By "idempotent" I mean that later passes do not stomp on data from
earlier passes, so that we can run the passes individually for
incremental reflow. The main change here was to stop overwriting the
"minimum inline-size" field of each column with the column's computed
inline-size.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 909dd0e80f5c6a9051da6e2f70d77186cc545b1a
2014-12-11 18:06:53 -07:00
Patrick Walton
a6709e3b25 servo: Merge #4299 - layout: Implement outline per CSS 2.1 § 18.4 (from pcwalton:outline); r=mbrubeck
`invert` is not yet supported.

Objects that get layers will not yet display outlines properly. This is
because our overflow calculation doesn't take styles into account and
because layers are always anchored to the top left of the border box.
Since fixing this is work that is not related to outline *per se* I'm
leaving that to a followup and making a note in the code.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: d31237f3439e5e5d4055b3a9e53eaeee4f3cdf2c
2014-12-11 16:45:56 -07:00