Commit graph

64 commits

Author SHA1 Message Date
Bruno de Oliveira Abinader
def07162d0 servo: Merge #4038 - Implement HTMLElement.dataset (from brunoabinader:dataset); r=Ms2ger
Spec: https://html.spec.whatwg.org/multipage/dom.html#dom-dataset

Closes #2974.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1f74e54bb2d0b16866aeaa7e4d00f801560afe7b
2014-12-20 08:06:44 -07:00
Josh Matthews
fa63e17acb servo: Merge #4342 - Implement basic HTMLElement.style support (from jdm:cssom); r=jdm,metajack
This does not implement any notion of CSSStyleDeclaration objects that do not have an owning element; there's no actual CSS object model in play here. This does support setting and getting properties of the style attribute for HTMLElement, and tries to implement the ambiguous CSS value serialization spec.

Source-Repo: https://github.com/servo/servo
Source-Revision: 824788649cd338c044d9396166af5b0f378d6685
2014-12-18 11:54:52 -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
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
Matthew Rasmus
a9eadca568 servo: Merge #4380 - Makes layout respect <textarea> rows and cols attributes (from mttr:textarea_rows_and_cols); r=jdm
...with a bit of a caveat: sizing has the same problem as seen in #4378, and it is _significantly_ more noticeable when using `rows`.

Fixes #4291

Source-Repo: https://github.com/servo/servo
Source-Revision: fcaa45fb675bdf3fede3b50a9d212adda1dc2b4f
2014-12-16 12:09:50 -07:00
thiagopnts
02dc0e1e27 servo: Merge #4374 - Add auxiliary method to EventTargetHelpers for events without target (from thiagopnts:dispatch-event); r=Ms2ger
servo/pull/4369 with the right commit.

Source-Repo: https://github.com/servo/servo
Source-Revision: 746b262ff4e23db11586f74ef1a03e98cb12bb52
2014-12-16 06:36:47 -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
Patrick Walton
ee36da2b11 servo: Merge #3844 - script: Improve dirty propagation and fix script-layout synchronization (from pcwalton:script-layout-synchronization); r=jdm
This fixes race conditions whereby layout and script could be running
simultaneously.

r? @jdm
cc @cgaebel

Source-Repo: https://github.com/servo/servo
Source-Revision: 5f2684d2f81046abd7548fb22d996d1e506a104a
2014-12-15 15:31:21 -07:00
Chris Manchester
801f0adcea servo: Merge #4189 - Return early and decline analysis when linting within unsafe functions; fixes #3658 (from chmanchester:rootlint); r=jdm
I think this matches the intent of the issue, I'm a rust/servo novice; any suggestions for improvements are welcome. Thanks!

Source-Repo: https://github.com/servo/servo
Source-Revision: 2615be9bab984c8356bc053f90452d6f9fdaa241
2014-12-11 15:57:58 -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
Ms2ger
08aaf009b2 servo: Merge #4263 - Use or_init where appropriate (from Ms2ger:or_init); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: c68e2af0a756280a687511614e44652906c0d7a1
2014-12-06 08:01:06 -07:00
Manish Goregaokar
895099501f servo: Merge #4002 - Implement framework for element activation (fixes #3999) (from Manishearth:activation); r=jdm
Still need to impl `Activatable` on all activatable elements. I'll probably push those changes to this PR, however they can be made separately as well.

Source-Repo: https://github.com/servo/servo
Source-Revision: 19c69b1625dda46d3c5501292e7e2d0328e400b4
2014-12-06 03:55:04 -07:00
Ms2ger
b07144a5b9 servo: Merge #4264 - Clarify the panic in get_uint_attribute (from Ms2ger:panic); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 507fdbeb6d7c7d2e37adf8313dc3970289dbb900
2014-12-06 02:37:04 -07:00
aakashjain
2bd749d2a8 servo: Merge #4149 - Fixes #4123 (from aakashjain:MovingElementGetters); r=Manishearth
Moved all getters from Element to ElementHelpers. Existing ElementHelpers getters `get_namespace` and `get_local_name` were replaced by `namespace` and `local_name`. Callers were updated accordingly. Also the getters are no longer inlined.
3 of the getters needed to be added to RawLayoutElementHelpers as well, to accomodate existing calls directly from Element objects.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9541dcdee271d83834af12c756932697ab0ef5dc
2014-11-29 04:42:41 -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
Manish Goregaokar
fdb73109be servo: Merge #4068 - Use atom! in place of Atom::from_slice where necessary (from Manishearth:atomify); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 60dfb65ab2278f8700bd698b2a9cc01e510e5b10
2014-11-23 22:00:40 -07:00
Rohan Prinja
d05c466f44 servo: Merge #4067 - implement Document#createAttribute (from ajnirp:document-create-attribute); r=Manishearth
fixes #4054

Source-Repo: https://github.com/servo/servo
Source-Revision: d215ff786756bc38042b7f41ed93c14efa3b8fca
2014-11-23 08:21:37 -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
Josh Matthews
4d3016e023 servo: Merge #3585 - Implement single-line text input (from jdm:input); r=gw
This attempts to implement a bunch of the DOM Level 3 Events spec by implementing the KeyboardEvent interface, the document focus context, and dispatching keyup/keydown/keypress events appropriately. There's also some support for multiline text input that's untested.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2ffa845cf463b14b19322d477a77ffd20efa89a9
2014-11-13 10:57:33 -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
Ms2ger
219d024c5d servo: Merge #3897 - Re-enable reflection-forms.html and make it not crash (from Ms2ger:enable-reflection); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: fba6cb9c429d5f27a1f7520bf2c35b58b0a8f250
2014-11-05 11:12:40 -07:00
Ms2ger
b34ddd1c74 servo: Merge #3896 - Defer to GetAttribute in HasAttribute (from Ms2ger:attr-crash); r=jdm
The semantics of has_attribute aren't anywhere close to the ones expected for
Element#hasAttribute, and it fails an assertion when passed non-lower-case
names.

Source-Repo: https://github.com/servo/servo
Source-Revision: b27ec2b2231313055232bf9a55343d581e6ead98
2014-11-05 10:36:38 -07:00
Bruno de Oliveira Abinader
4922b315b6 servo: Merge #3859 - Cleanup Element's AttributeHandlers (from brunoabinader:element-notify-content-changed); r=Ms2ger
Remove ```notify_attribute_{changed,removed}``` in favor of a unified ```notify_content_changed```. In the future, whether we decide to specialize ```document.content_changed()```, it'll be just a matter of adding a param.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ce185ff11e03c541587177d7e99c9d6bcf0eb82
2014-10-30 15:18:36 -06:00
Ms2ger
e34369f8d8 servo: Merge #3856 - Format Element#tagName correctly when there's a prefix (from Ms2ger:tagname); r=Manishearth
format!("{}", atom) yields strings like "Atom('span' type=Inline)", which is
not intended here.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7de9ed5fc7a3061676d9fd02dfc788e196c7123c
2014-10-30 12:27:35 -06:00
Ms2ger
1e684e8beb servo: Merge #3853 - Move build_element_from_tag out of the HTML parser (from Ms2ger:create); r=Manishearth
This function is not particular to the parser, so should live in the DOM.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c6859937354760f2d175c60bad1daa16bd2ed22
2014-10-30 11:06:36 -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
Ms2ger
aaaf47d3f6 servo: Merge #3780 - Cleanup Document (from Ms2ger:cleanup-document); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43b13e7548f16c0c2721120ebabd89e88ecaf17d
2014-10-23 11:36:40 -06:00
Bruno de Oliveira Abinader
3798390fdd servo: Merge #3757 - Usage of JSRef<Attr> in before_remove_attr & after_set_attr (from brunoabinader:content_changed); r=jdm
```JSRef<Attr>``` does not require allocating a ```DOMString``` for value, which are unused in most cases. It also provides more access to ```Attr``` data.

Source-Repo: https://github.com/servo/servo
Source-Revision: 590a93120a26ab6ea787831d7ba08c47423148bc
2014-10-22 09:33:37 -06:00
Keegan McAllister
fb40898c55 servo: Merge #3670 - Use html5ever for HTML parsing (from kmcallister:h5e-take2); r=jdm
r? @Ms2ger, @jdm

The parser is now a JS-managed object and we use hooks in html5ever to trace its internal state.  This should be memory-safe even if arbitrary JavaScript can run during a parse.  Please let me know if you think of a reason it wouldn't be!

I think the likely outcome of a garbage collection during parsing is a dynamic `RefCell` borrow failure, but I'm going to look into that after this lands.  It should be safe to trace the parser while it's mutably borrowed, as long as it's not shared between threads, so we can probably switch to `UnsafeCell`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8d3b107568ab965b518b8003b702a5db993fa7d0

--HG--
rename : servo/tests/content/test_document_characterSet_long.html => servo/tests/content/test_document_characterSet_long.html.disabled
rename : servo/tests/content/test_document_characterSet_short.html => servo/tests/content/test_document_characterSet_short.html.disabled
2014-10-16 14:15:21 -06:00
Tetsuharu OHZEKI
37c2169c61 servo: Merge #3695 - Use DOMRefCell in the rest of dom structs (from saneyuki:cell); r=jdm
#3050

Source-Repo: https://github.com/servo/servo
Source-Revision: 1de2fb3721b8a189156f4a860009cca01d8b2fd9
2014-10-16 00:03:18 -06:00
Manish Goregaokar
4271b077f4 servo: Merge #3684 - Add #[dom_struct], inline autogenerated trace() methods (from Manishearth:dom_struct); r=jdm
This attribute implies #[jstraceable], #[privatize], and #[must_root].

Source-Repo: https://github.com/servo/servo
Source-Revision: 9af090006017747809f5f72a8870bd516b20f483
2014-10-15 23:24:20 -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
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
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
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
Tim Taubert
fc4bdae442 servo: Merge #3620 - Remove unnecessary deref()s (fixes #3586) (from ttaubert:issue/3586-remove-derefs); r=Manishearth
r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 510f8a817f8144dd5046886d4ca7c612f19a3d08
2014-10-09 07:12:37 -06:00
Manish Goregaokar
2dfaa0ee12 servo: Merge #3605 - Improve macro getters, add macro setters, implement attributes for <form> (from Manishearth:form-stuff); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 94731270df688f2df49fdec36ccf7eefd9ed021f
2014-10-08 03:42:34 -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
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
Josh Matthews
179c7b7dcc servo: Merge #3531 - Implement MutNullableJS for mutable, nullable member pointers to DOM objects (from Ms2ger:MutNullableJS); r=Ms2ger
Extracted from #3527.

Source-Repo: https://github.com/servo/servo
Source-Revision: bae5440689c67f425f94ec27bf0f61ff955dc290
2014-10-01 09:09:28 -06:00
Cameron Zwarich
8e1c96a87b servo: Merge #3540 - Convert TNode / TElement to use self parameters rather than &self (from zwarich:more-jsref); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 09e9abc047e03b81b8a4aa90d13efa184d0a732f
2014-09-30 22:36:28 -06:00
Cameron Zwarich
f911787c54 servo: Merge #3536 - Convert a method from &JSRef to JSRef (from zwarich:more-jsref); r=Manishearth
This also removes the unnecessary formation of a trait object.

Source-Repo: https://github.com/servo/servo
Source-Revision: 93e259227a969dbea1319d4d3ce92bc5706c6b06
2014-09-30 18:39:27 -06:00
Keegan McAllister
2e5e961694 servo: Merge #3530 - Use string-cache's Namespace type, backed by Atom (from kmcallister:namespace-atom); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 698b916c097ae0272a31a680cba7fc6dbd03ca3d
2014-09-30 02:42:23 -06:00
Simon Sapin
2a5f4c7376 servo: Merge #3487 - Upgrade Rust and enable style crate rustdoc (from servo:rustup-20140923); r=Ms2ger
The biggest language change is that enum variants now also reserve (for future use) a name in the type namespace, which must not collide with other types. Some things were renamed, and others qualified as `module::name`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7409685589c550ee7a9f94182f511acddab4c6fd
2014-09-29 10:45:27 -06:00
Cameron Zwarich
686b31d2f4 servo: Merge #3501 - Remove the 'static lifetime parameters from TElement methods (from zwarich:telement-lifetimes)
Reviewed-by: jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: c9c8d63727560ab88a8b739f5ac305b8a02410d2
2014-09-27 17:09:28 -06:00
Manish Goregaokar
298a76a187 servo: Merge #3468 - Replace our usage our Encodable with JSTraceable; r=jdm (from Manishearth:jstraceable)
Source-Repo: https://github.com/servo/servo
Source-Revision: 95a4731c0eec0cfb2fb70af534757bc7ca63e407
2014-09-24 20:56:41 +05:01
Ms2ger
eef201dde8 servo: Merge #3465 - Handle null strings in Namespace::new (from Ms2ger:ns)
Source-Repo: https://github.com/servo/servo
Source-Revision: c7a575e79338c84652cc0d0cb2f85b1c438819b2
2014-09-24 10:30:13 -04:00