Commit graph

64 commits

Author SHA1 Message Date
Dan Fox
f6711c6464 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
9d0586a22d 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
73082d1626 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
Simon Sapin
40036d9f8a servo: Merge #5010 - Move selector matching to an external library, for use outside Servo (from SimonSapin:external-selectors); r=larsberg
The new library is https://github.com/servo/rust-selectors. It’s not quite ready for other users (the API needs work), but this is a first step.

https://github.com/servo/rust-selectors/pull/2 should also be reviewed.

Fixes #3669.

Source-Repo: https://github.com/servo/servo
Source-Revision: 91abf5557b1a324d6568ce08cfb92cdffca10e41
2015-02-23 08:39:47 -07:00
Ms2ger
37b5782606 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
f6f1990ef0 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
Tetsuharu OHZEKI
39edf77177 servo: Merge #4613 - Stop using JS<T> in layout (from saneyuki:layoutjs); r=jdm
#4571

Source-Repo: https://github.com/servo/servo
Source-Revision: 462940fc2a2ba76794f37d9a6ac5af8da454aa66
2015-01-31 16:24:48 -07:00
Simon Sapin
f19ec826ce 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

--HG--
rename : servo/components/style/properties/mod.rs.mako => servo/components/style/properties.mako.rs
2015-01-30 15:27:53 -07:00
Patrick Walton
06265455a5 servo: Merge #4592 - layout: Implement text-overflow: ellipsis per CSS-UI-3 § 6.2 (from pcwalton:text-overflow); r=mbrubeck
Only the one-value syntax is supported for now.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: c8e68fa45c43856f7ffbdde25b6e68571ad288bf
2015-01-28 17:24:50 -07:00
Josh Matthews
78741af324 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
9b3f8fdb5e servo: Merge #4713 - Return *const T from JS::unsafe_get() (fixes #4712) (from Ms2ger:unsafe_get-const); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ff8cbff81016c157373c1675f3eee69dd70ae544
2015-01-24 08:48:48 -07:00
Josh Matthews
28dff52c4a servo: Merge #4710 - Make UntrustedNodeAddress a newtype (from servo:untrusted); r=Manishearth
This will allow us to make it Send after the Rust upgrade.

Source-Repo: https://github.com/servo/servo
Source-Revision: d9c2bfae8764d9f7813a6b6e9267102625e3d7b8
2015-01-24 04:57:48 -07:00
Ms2ger
190438fa42 servo: Merge #4682 - Move to to_owned rather than into_string (from servo:to_owned); r=jdm
into_string has been removed from Rust.

Source-Repo: https://github.com/servo/servo
Source-Revision: 94ebc7c32d5ce58ada3f9d8ffdb60cc025eb5997
2015-01-20 07:54:46 -07:00
Ashish Sharma
d371ffb2d5 servo: Merge #4615 - remove unused function with_layout_node #4572 (from kartaa:master); r=jdm
Update wrapper.rs for Issue #4572 in servo/servo.

Source-Repo: https://github.com/servo/servo
Source-Revision: b020a015d91a0e67f1a526927b91bb07da0f5140
2015-01-12 08:24:47 -07:00
Martin Robinson
4adf711525 servo: Merge #4314 - More work on iframes updated via script (from mrobinson:iframes-2); r=jdm
iframes added or loaded via script are not reflected visibly in the content of a page. The next step in making this happen is to have compositor layers accurately reflect newly recreated or loaded iframes. This change allows iframes to appear, but there are still some further changes necessary to make the output correct and reliable.

Source-Repo: https://github.com/servo/servo
Source-Revision: 16c2025a4e30121baebde348e3c3f0e6ed197667
2015-01-09 17:51:44 -07:00
Edit Balint
8eb66707e6 servo: Merge #4137 - CanvasRenderTask connected to Layout (from ebalint:canvas); r=jdm
Content of the canvas is drawn, tests/html/test_canvas.html now works.

Source-Repo: https://github.com/servo/servo
Source-Revision: da400a7a453eacf6f3089cc07e5dc61f385a0909
2015-01-09 12:06:47 -07:00
Ms2ger
e5578c14fd 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
Megha Gupta
aa260a7580 servo: Merge #4495 - Add HTMLElementTypeId enum (fixes #3625) (from MeghaGupta:typeid); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 2e17cae5d080db72d5f89733d19e0304857cfd34
2015-01-04 12:12:48 -07:00
Ms2ger
62056757ed servo: Merge #4535 - Stop using some obsolete features (from servo:pre-rustup_20141221); r=jdm
This prepares for the rust upgrade currently being conducted.

Source-Repo: https://github.com/servo/servo
Source-Revision: e8fac3681b690adb0796b2a807ac95bd9c13597a
2015-01-03 14:39:46 -07:00
Manish Goregaokar
905ce805f5 servo: Merge #4485 - Replace most to_string calls by into_string calls (from servo:into_string); r=Ms2ger
`str::to_string()` goes through a `Formatter`, `str::into_string()` is a direct copy and is apparently 5× faster.

This is a rebase of the boring and bitrot-prone parts of #4366.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9857ea26cb9ee262654bee97322dbbf373486bff
2014-12-27 06:51:44 -07:00
Tetsuharu OHZEKI
34f83f1a6e servo: Merge #4424 - style: Remove glob imports added in #4405 (from saneyuki:glob_style); r=SimonSapin
#4406

Source-Repo: https://github.com/servo/servo
Source-Revision: 1f342638c46d6b43bca4cfbd405aceedc0465a85
2014-12-18 11:03:55 -07:00
Patrick Walton
2ba8079a6a 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
b185394a0f 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
Matthew Rasmus
4f922915fe servo: Merge #4133 - Implements basic form resetting (from mttr:form_resetting); r=jdm
We can reset `<input type=text>` fields! I wish I could've done something with checkboxes, but unfortunately, that's it for now.

In addition to that, this PR implements `HTMLInputAttribute.defaultValue`, updates wpt-test to expect passing tests as a result of that implementation, and fixes an index error crash with text inputs.

edit: also includes an html example where one may lazily watch form resets in action: ` tests/html/form_reset_handsfree.html`

Source-Repo: https://github.com/servo/servo
Source-Revision: 5951056973fc0e08e70224214740a274ca8ef20f
2014-12-16 15:03:49 -07:00
Patrick Walton
90a61bb1c7 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
Clark Gaebel
36ba47438d servo: Merge #4194 - Fixed #4170 - Incremental reflow wasn't being aggressive enough when nodes get reparented (from cgaebel:incremental-reflow-fix); r=pcwalton
When inserting a node that was already dirtied, the dirtying logic
would short circuit: "This node is already dirty? Great! Then its
parents must be HAS_DIRTY_DESCENDANTS, too! Let's skip that step."

This isn't appropriate when nodes move around the tree. In that case,
the node may be marked HAS_CHANGED, but ancestors may not yet have
the HAS_DIRTY_DESCENDANTS flag set.

This patch adds a `content_and_heritage_changed` hook in the document,
to deal with these cases appropriately.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5c506f7a98368020c7936517f1d8e243c9556937
2014-12-08 12:28:14 -07:00
Matthew Rasmus
0c6c8fc464 servo: Merge #4190 - Implements the :checked pseudo-class for inputs (from mttr:checked_pseudo_class); r=Manishearth
Relevant spec:
https://html.spec.whatwg.org/multipage/scripting.html#selector-checked

Also modifies HTMLInputElement::SetChecked to no longer modify its
checked content value, instead making use of its internal checkedness
state now that we can match `:checked` properly.

Source-Repo: https://github.com/servo/servo
Source-Revision: f18c18371d2bb5edde9d64e46b74bf01411afab3
2014-12-08 12:01:51 -07:00
Matthew Rasmus
a343b1461d servo: Merge #4152 - Implements multi line text input for TextArea (from mttr:textview); r=jdm
Fixes #3918

Can be tested in `tests/html/textarea.html`. Also implemented some content reflecting IDL attributes for HTMLTextAreaElement while I was in there.

There are some major problems with TextInput when Multiple is enabled that I haven't addressed here, but I'm prepared to open up a follow-up issue.

Source-Repo: https://github.com/servo/servo
Source-Revision: a369dcfa01f5ad7634469f3a3b652d7f650129a0
2014-12-05 16:25:07 -07:00
Tetsuharu OHZEKI
f34203dda8 servo: Merge #4130 - Make callers of ${Derived}::${base}() use casts instead (from saneyuki:cast); r=Manishearth
Fix #4124

This also introduce `BarCast::from_actual()` which is used for up-cast for dom's actual data types (non JS pointer values).

Source-Repo: https://github.com/servo/servo
Source-Revision: 82050d1e535681ea993e4290d02bcf4b9f4ee5a2
2014-11-28 09:24:44 -07:00
Ms2ger
2aa3272664 servo: Merge #3979 - Use {Cell,RefCell}::as_unsafe_cell (from Ms2ger:as_unsafe_cell); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d3b76c60d2d5bd61cf6b48d09d769df77af293d
2014-11-14 15:48:35 -07:00
Glenn Watson
22c4035692 servo: Merge #3948 - Rust upgrade to rustc hash b03a2755193cd756583bcf5831cf4545d75ecb8a (from servo:rustup-20141105_2); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: c5e1b0d32e17fad29799023c85e2e73ac89c3af7
2014-11-12 20:48:31 -07:00
Patrick Walton
c0e4f093a6 servo: Merge #3860 - layout: Make incremental reflow more fine-grained by introducing "reflow out-of-flow" and "reconstruct flow" damage bits (from pcwalton:reflow-out-of-flow); r=glennw
This is the last PR and most of the work for the maze solver and RoboHornet.

r? @glennw
cc @cgaebel

Source-Repo: https://github.com/servo/servo
Source-Revision: 035ff19e4a5995989c5fd34928af2a6690bb8062
2014-10-31 14:39:34 -06:00
Clark Gaebel
02d8a36841 servo: Merge #3828 - layout: Implement flow tree dumping with RUST_LOG=debug is on (from cgaebel:layout-node-dumping); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d8bd10abefe5cee9b60900911d41bb47323d248
2014-10-28 13:12:52 -06:00
Clark Gaebel
29430423a7 servo: Merge #3744 - More efficient preorder DOM traversals (from cgaebel:efficient-preorder-traversal); r=pcwalton
This also tackles some nearby FIXMEs. `traverse_preorder` is used in a LOT of
DOM functions..

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 2bc4ffe5cf331fb7bd246af34c5d12e4e03adda9
2014-10-21 13:09:38 -06:00
Patrick Walton
daafd66ee8 servo: Merge #3722 - Overhaul flow construction with several performance improvements (from pcwalton:flow-construction-overhaul); r=glennw
This is a grab bag of performance improvements that significantly improve style recalculation, layout, and painting on a few static pages.

Let me know if you'd like me to split this PR up.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 156ca98236a57ee52ff5b68741bc7783ba073612
2014-10-21 10:06:37 -06:00
Clark Gaebel
aaa4f1720f servo: Merge #3706 - Fix image_dynamic_remove reftest with incremental layout turned out (from cgaebel:fix-image-dynamic-remove); r=pcwalton
This also adds some extra debugging infrastructure which I found useful tracking
this bug down. A regression in the br reftests is also uncovered by this patch,
which I'll work on fixing next.

EDIT: nevermind. no regression, I just tested that before a rebase.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: b86344b697f814b982e52f4a72c26d58c915c37b
2014-10-17 12:15:23 -06:00
Tetsuharu OHZEKI
f29b2207ab servo: Merge #3574 - Introduce a custom DOMRefCell<T> (from saneyuki:cell); r=jdm
#3050

Source-Repo: https://github.com/servo/servo
Source-Revision: 7c1054e6ab97dd199dee371c3b6ca5d559070804
2014-10-14 23:12:24 -06:00
Kasey Carrothers
06445e1567 servo: Merge #3655 - Add a to_js method to the casting trait code in CodegenRust.py (from kaseyc:add_to_js_method); r=jdm
Replace the manual checks and calls to transmute_copy in /layout/wrapper.rs with calls to to_js/

Fixes #3616

Source-Repo: https://github.com/servo/servo
Source-Revision: f1c050531f3e3669275f1fc50d92724609eba59b
2014-10-14 22:00:28 -06:00
Clark Gaebel
3443a24780 servo: Merge #3640 - Try to reset flows which need reflow, since reflow isn't yet idempotent (from cgaebel:incremental-flow-construction); r=pcwalton
This also hides the not-yet-working parts of incremental reflow behind a runtime
flag. As I get the failing reftests passing, I'll send pull requests for them one
by one.

Source-Repo: https://github.com/servo/servo
Source-Revision: 56989b8dec4aa95a3b484d45f15b23f9b3daaf13
2014-10-14 16:51:30 -06:00
Patrick Walton
0aeca90f2d servo: Merge #3622 - layout: Introduce support for legacy presentational attributes to selector matching, and use it for <input size> and <td width> (from pcwalton:html4ever); r=jdm
This implements a general framework for legacy presentational attributes
to the DOM and style calculation, so that adding more of them later will
be straightforward.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0aeecfc41d5f0c637960fcddf87cc2db3e5efeea
2014-10-14 14:06:36 -06:00
Patrick Walton
7495bb838a servo: Merge #3623 - script: Use atom comparison in more places, especially for attributes (from pcwalton:use-atoms-2); r=jdm
75% improvement in style recalc for Guardians of the Galaxy.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8077edc0622b04aeb26d42ced86ea285c9cac0e7
2014-10-14 12:42:35 -06:00
Ms2ger
f434abe875 servo: Merge #3676 - Don't borrow CharacterData.data from layout (from Ms2ger:no-text-borrow); r=Manishearth
This should fix the most frequent intermittent wpt failure.

Source-Repo: https://github.com/servo/servo
Source-Revision: 083bf27b7536a8ae825ce87df4344f9e3cbc1a10
2014-10-14 03:36:36 -06:00
Tim Taubert
993d0f5a2e servo: Merge #3666 - Privatize DOM (fixes #3644) (from ttaubert:issue/3644-privatize-dom); r=Manishearth
This PR removes public fields from all (hope I didn't miss any) DOM structs. Should |Page| be privatized as well? This PR additionally introduces a #[privatize] lint to ensure nobody accidentally re-introduces a public field.

All changesets compile separately if applied in the same order. Hope that helps reviewing but I can of course squash them before merging.

Source-Repo: https://github.com/servo/servo
Source-Revision: f350879574194bb612eac88e21d0920e9827afa7
2014-10-13 22:00:37 -06:00
Patrick Walton
ec00d8be86 servo: Merge #3639 - Use Gecko's simpler Bloom filter instead of one based on hash (from pcwalton:rewrite-bloom-filter); r=zwarich
stretching.

This preserves the usage of the Bloom filter throughout style recalc,
but the implementation is rewritten. Provides a 15% improvement on
Guardians of the Galaxy.

Source-Repo: https://github.com/servo/servo
Source-Revision: e048f3f940e124d45b43a53a850177c45907822d
2014-10-10 20:27:39 -06:00
Clark Gaebel
b4bfd82e79 servo: Merge #3638 - Factors out DOM traversal, keeping the code in parallel free of traversal-specific logic (from cgaebel:parallel-dom-traversal)
Source-Repo: https://github.com/servo/servo
Source-Revision: be6cde93224c3ad266f5f98c4f4e670062146124
2014-10-10 19:08:49 -04:00
Clark Gaebel
e1fa32f008 servo: Merge #3590 - Incremental Style Recalc (from cgaebel:slow-incremental-reflow-rebase); r=pcwalton
This patch puts in the initial framework for incremental reflow. Nodes' styles
are no longer recalculated unless the node has changed.

I've been hacking on the general problem of incremental reflow for the past
couple weeks, and I've yet to get a full implementation that actually passes all
the reftests + wikipedia + cnn. Therefore, I'm going to try to land the different
parts of it one by one.

This patch only does incremental style recalc, without incremental flow
construction, inline-size bubbling, reflow, or display lists. Those will be coming
in that order as I finish them.

At least with this strategy, I can land a working version of incremental reflow,
even if not yet complete.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 85b277655f07db1cb99c4d3dee93804735ed0470
2014-10-09 11:21:32 -06:00
Patrick Walton
c3ef958820 servo: Merge #3600 - layout: Mark the styles of elements with pseudos as unshareable (from pcwalton:pseudo-unshareable); r=mbrubeck
Makes multiple `<br>` elements work, since those are implemented via
`before` pseudos.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 15b508ac10d0e98ba10474b6ab091017ae95804e
2014-10-09 00:06:32 -06:00
Tim Taubert
17eeb55b66 servo: Merge #3584 - Support [*|attr], attribute selectors in any namespace (fixes #1558) (from ttaubert:issue/1558-attr-ns-selectors); r=Manishearth
This implements basic support for attribute selectors with namespace prefixes. I would have added a more sophisticated test covering various selectors but it seems that we don't have an XML parser yet and thus no XHTML support?

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: f49c730720a51d14dacefe9815faf50216b36b91
2014-10-08 03:12:34 -06:00
Cameron Zwarich
f00ef3ffd5 servo: Merge #3592 - Remove trailing whitespace (from zwarich:trailing-whitespace); r=Manishearth
The Mach test runner doesn't actually make these failures yet, which is
tracked by #3482.

Source-Repo: https://github.com/servo/servo
Source-Revision: ae946a9b762d66f01f669ff526eff5c0eaaa3404
2014-10-07 04:57:29 -06:00
Manish Goregaokar
da1369f261 servo: Merge #3518 - Purge Traceable and Untraceable from Servo (from Manishearth:trace-cleanup); r=jdm
Now that we use `JSTraceable` (defined in `script`), we can create arbitrary implementations on non-`script` types (eg `Url` or `RequestHeaderCollection`) where in the past we had to rely on `Traceable` and `Untraceable` to achieve cross-crate impls of `Encodable`.

This removes the two completely. They can be reintroduced if required, though the `untraceable!` macro should suffice.

Fixes #3469

Source-Repo: https://github.com/servo/servo
Source-Revision: b34df7c343579f200d2e67e21fc566842a4e4a91
2014-10-06 10:15:33 -06:00