Commit Graph

466 Commits

Author SHA1 Message Date
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
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
b7d7badd9e servo: Merge #6014 - layout: Support block-direction margins for inline-blocks (from pcwalton:inline-block-block-direction-margins); r=glennw
Improves linux.com.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 79363a427bc416c1249822da1c7b4d2156fd81de
2015-05-11 19:54:39 -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
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
Josh Matthews
20819f2f37 servo: Merge #5804 - Add simple document load tracking infrastructure (from jdm:docloader); r=Ms2ger
This implements a simple load-tracking system and tracks stylesheet loads as an example of how it fits together. This is a simplified and rebased version of #3714; I do not believe that the main thrust of hsivonen's comments (related to tracking navigation in browsing contexts) affect this part of the work.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 2baa69595e2d57213c34b7e168b60885948fa85b
2015-05-11 14:35:33 -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
Ms2ger
1534c40155 servo: Merge #6004 - Replace TElement::get_link() by specific methods (from Ms2ger:get_link); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: be8539af885b5d668222bbbdd677922eb75be65f
2015-05-11 06:46:17 -05:00
Patrick Walton
ff41765ce5 servo: Merge #5994 - layout: Support vertical-align for inline-blocks (from pcwalton:vertical-align-inline-block); r=glennw
Improves Twitter.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: c76d73d1244089e1db8c3e11b341c9ce4b6621d7
2015-05-10 16:23:10 -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
55fb4b1f93 servo: Merge #5990 - layout: Take the width attribute of <img> into account when computing the intrinsic widths of the associated fragment (from pcwalton:img-width-attribute-intrinsic-width); r=glennw
Fixes sites that use spacer gifs for table layout, such as the comments
page on Hacker News.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 49b73c0bfe50366e767525f9f90c5aa348f68f18
2015-05-08 15:45:52 -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
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
Guro Bokum
8800f4e7e5 servo: Merge #5753 - Start using on_refresh_driver_tick #5681 (from JIoJIaJIu:timeline); r=jdm
RequestAnimationFrame
[Task](https://github.com/servo/servo/issues/5681)

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e59e77c416dbe35e8c30ca1c21c9088ed17a079
2015-05-06 00:50:13 -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
Ms2ger
17b04ab97a servo: Merge #5952 - Various cleanup (from Ms2ger:cleanup); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: e779e8905ba530eddf6777dfb7565131cfcd1830
2015-05-05 14:26:37 -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
Patrick Walton
fdfc800fa4 servo: Merge #5919 - layout: Fix a couple of issues relating to intrinsic widths of inline blocks (from pcwalton:inline-block-intrinsic-widths); r=mbrubeck
* Stop double-counting border and padding for inline-block fragments.
  (Test case: `inline_block_border_intrinsic_size_a.html`.)

* Take clearance into account when determining intrinsic widths of
  blocks containing floats.

Improves the Amazon headers.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b87085c1880c60aa3be5b3ec4572a0d93fd5537
2015-05-04 13:37:24 -05:00
Patrick Walton
981a75537c servo: Merge #5918 - layout: Use the border box, not the margin box, for placement of block formatting contexts (from pcwalton:block-formatting-context-float-placement); r=mbrubeck
Improves Amazon.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: a346f95e6861e33244307783b6de35892178e8ad
2015-05-01 18:01:03 -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
Glenn Watson
ae03dda6e8 servo: Merge #5913 - Various fixes to getClientBoundingRect() (from glennw:bounding-rect); r=pcwalton
* Fix queries involving stacking contexts
 * The code was double accumulating stacking context origins.
* Handle queries of inline elements.
 * The node addresses being compared were incorrect (CharacterData vs. Span)
* Handle ScriptQuery reflows correctly.
 * The layout task was skipping the compute absolute positions traversal, so failed before window.onload.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5f6a740190e1e5912d84162c92c6b79365df165a
2015-05-01 13:15:23 -05:00
Nicholas Nethercote
afeab10374 servo: Merge #5912 - Add a profile_traits crate to reduce compile times (from nnethercote:profile_traits); r=Manishearth
A rebuild after touching components/profile/mem.rs now takes 48 seconds (and
only rebuilds `profile` and `servo`) which is much lower than it used to be.
In comparison, a rebuild after touching components/profile_traits/mem.rs takes
294 seconds and rebuilds many more crates.

This change also removes some unnecessary crate dependencies in `net` and
`net_traits`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 77f653da2c4120ea7ac1a946d97fc70059d513d4
2015-04-30 20:02:33 -05:00
Prabhjyot Singh Sodhi
c0097a3fe1 servo: Merge #5895 - Uniformise the various Msg types [#5882] (from psdh:uniformiseMsgTypes); r=jdm
Fixes #5882

Source-Repo: https://github.com/servo/servo
Source-Revision: 19a4a263645a643d3a3f79b41b816fe8b8727265
2015-04-29 15:51:39 -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
Jinwoo Song
305d6f9cf0 servo: Merge #5879 - Make NodeTypeId include CharacterData variant (from Jinwoo-Song:character_data); r=jdm
NodeTypeId is supposed to reflect the WebIDL inheritance hierarchy.
All of Text/ProcessingInstruction/Comment inherit from CharacterData,
which inherits from Node. There should be a CharacterDataTypeId value
that differentiates between those, instead.

r? @jdm
cc @yichoi

Source-Repo: https://github.com/servo/servo
Source-Revision: 5b0c6c9d31973aabdb820f16237e1a7c2a6524ad
2015-04-29 02:35:26 -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
Patrick Walton
dcd35d1cd3 servo: Merge #5887 - layout: Don't panic in border collapse when a row has fewer cells than its previous sibling (from pcwalton:border-collapse-missing-cells); r=mbrubeck
This was seen in Twitter and the Google SERPs (sometimes).

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: b6fc83cf2b4b426548bb9d10e9493f2b111bd617
2015-04-28 15:32:31 -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
Patrick Walton
3a112a8148 servo: Merge #5694 - layout: Generate anonymous table objects as necessary per CSS 2.1 § 17.2.1 (from pcwalton:anonymous-table-objects); r=mbrubeck
Improves Facebook Timeline.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 2fd5ecf3d7b93addb42d42d46e440451043a2f43
2015-04-28 07:13:53 -05:00
Patrick Walton
26091e84af servo: Merge #5878 - layout: Make the style-specified width affect minimum width (from pcwalton:intrinsic-style-specified-width); r=mbrubeck
Improves the front page of Google.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: adec683333895a5112d3d8295fa01a6b06ff38ad
2015-04-28 05:02:32 -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
Anthony Ramine
02e9fd35d0 servo: Merge #5852 - Remove unsafe transmute functions in JS and LayoutJS (from nox:rm-unsafe-transmute); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 56a7981c9c9c6df30fbb3add3d8d0085916fe313
2015-04-26 14:40:31 -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
Patrick Walton
05c9571a2e servo: Merge #5816 - layout: Don't strip trailing newlines from fragments, since we use their presence to determine the line flush mode (from pcwalton:more-jumpiness); r=mbrubeck
Fixes the "jumpiness" seen on the Google home page, Wikipedia, and many
other places.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 211ee668fae7f619ac7e09abd776a6f45fc40052
2015-04-24 15:17:07 -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
Adenilson Cavalcanti
05807b79e3 servo: Merge #5782 - Fix inline filtered elements (from Adenilson:fixInlineFiltered01); r=pcwalton
It will create a StackingContext for inline elements that may need it, I'm looking for feedback on this.

Not for commit, as there are some tests failing.

Source-Repo: https://github.com/servo/servo
Source-Revision: e66f761cbad9aeee852abb7129037f9848fde1af
2015-04-23 14:38:05 -05:00
Patrick Walton
b9bbb666ab servo: Merge #5805 - layout: Take the white-space property into account when computing intrinsic sizes of inline flows (from pcwalton:whitespace-effect-on-minimum-inline-sizes); r=glennw
Improves Amazon.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 68f03c9dbbc42765ebb4ce6bef959fb23438ac75
2015-04-22 20:23:17 -05:00
Glenn Watson
1511f427f8 servo: Merge #5767 - Refactored image cache task - details below (from glennw:image-cache); r=larsbergstrom,jdm
* Simpler image cache API for clients to use.
 * Significantly fewer threads.
   * One thread for image cache task (multiplexes commands, decoder threads and async resource requests).
   * 4 threads for decoder worker tasks.
 * Removed ReflowEvent hacks in script and layout tasks.
   * Image elements pass a Trusted<T> to image cache, which is used to dirty nodes via script task. Previous use of Untrusted addresses was unsafe.
   * Image requests such as background-image on layout / paint threads trigger repaint only rather than full reflow.
 * Add reflow batching for when multiple images load quickly.
   * Reduces the number of paints loading wikipedia from ~95 to ~35.
 * Reasonably simple to add proper prefetch support in a follow up PR.
 * Async loaded images always construct Image fragments now, instead of generic.
   * Image fragments support the image not being present.
 * Simpler implementation of synchronous image loading for reftests.
 * Removed image holder.
 * image.onload support.
 * image NaturalWidth and NaturalHeight support.
 * Updated WPT expectations.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac0645c2363b5a6ea3930b0857b3a27f1b6d033f
2015-04-22 19:16:46 -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
Adenilson Cavalcanti
bdad802a79 servo: Merge #5787 - Using helper color function (less verbose and clearer to understand) (from Adenilson:colorWhite01); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: f9a50c9be0ea8d941c0065ff23758fd460cc5eaa
2015-04-22 17:04:41 -05:00
Diego Marcos
00f99e2944 servo: Merge #5652 - Kicking off a WebGL implementation (from dmarcos:webgl); r=jdm
@jdm @ecoal95 I'm working on making VR happen in the Browser and I want to bring to Servo the [webVR APIs](https://github.com/MozVR/webvr-spec/blob/master/webvr.idl) we already have in Gecko. Before anything happens we need a working implementation of WebGL (and also the [fullscreen API](https://fullscreen.spec.whatwg.org/)). My implementation is very basic and probably naive (I just recently started to contribute to Servo). My patch is just a starting point:

- It only implements ```clearColor``` and ```clear``` methods of the [WebGL spec](https://www.khronos.org/registry/webgl/specs/latest/).
- It uses the readback strategy that ```canvasRenderingContext2D``` is using (The webgl task paints stuff independently on it's own buffer and the compositor task request the pixels back to the webgl task when it needs them) I'm sure there are much better ways to handle this. Latency and FPS are critical in VR so we have to figure out the fastest way to push pixels to the screen. I've read something about layerizing the canvas but I'm still not sure what that even means :)
- There's an included test you can try ```./mach run tests/ref/webgl-context/clearcolor.html```

@ecoal95 I know you'll be working on this for the next three months. With a foundation in place we will be able to make quick progress in parallel. This is exciting!

Source-Repo: https://github.com/servo/servo
Source-Revision: e4b620ea54c94e03095e4108bce94ec750416bba
2015-04-20 19:29:02 -05:00
Adenilson Cavalcanti
842f157ca3 servo: Merge #5759 - Skip computing fragment position and return early if visibility property is not set (from Adenilson:visibleReturn01); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 23945f2ea865710751e9c822b367598eddd86e1f
2015-04-20 15:01:44 -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
Patrick Walton
7607504ce7 servo: Merge #5706 - layout: Clip the immediate fragments of block flows that establish stacking contexts properly (from pcwalton:absolute-clipping-of-own-contents); r=glennw
r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: f7bfea58798a07d993ba7bc7d9c76f62be19ea4f
2015-04-15 21:04:59 -05:00