aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
Commit message (Collapse)AuthorAgeFilesLines
* Implement FromIterator<Root<A>> for RootedVec<JS<A>> (fixes #5117)Anthony Ramine2015-08-311-2/+1
|
* Make the traits for the IDL interfaces take &selfAnthony Ramine2015-08-271-29/+29
|
* Remove AttributeHandlersAnthony Ramine2015-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | On components/script/*.rs: # Remove imports. /^ *use dom::element::\{.*AttributeHandlers/ { s/\{AttributeHandlers, /\{/ s/, AttributeHandlers//g s/\{([a-zA-Z]+)\}/\1/ /\{\}/d s/::self;$/;/ } /^ *use dom::element::\{?AttributeHandlers\}?;$/d # Remove AttributeHandlers. /^pub trait AttributeHandlers \{$/,/^\}$/D # Patch AttributeHandlers methods. /^impl<'a> AttributeHandlers for &'a Element \{/,/^\}$/ { s/^impl<'a> AttributeHandlers for &'a Element \{/impl Element {/ /^ *fn /s/\(self([,)])/\(\&self\1/ /^ *fn.*\(&self/s/fn/pub fn/ } The few error cases were then fixed by hand.
* Remove helper traitsAnthony Ramine2015-08-271-200/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that JSRef<T> is gone, there is no need to have helper traits. On components/script/*.rs: # Remove imports. /^ *use dom::[a-z]+::\{.*Helpers/ { s/\{(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers, /\{/ s/, (Raw[^L]|[^L][^a])[a-zA-Z]+Helpers([,}])/\2/g s/\{([a-zA-Z]+)\}/\1/ /\{\}/d s/::self;$/;/ } /^ *use dom::[a-z]+::\{?(Raw[^L]|[^L][^a])[a-zA-Z]+Helpers\}?;$/d On components/script/dom/*.rs: # Ignore layout things. /^(pub )?(impl|trait).*Layout.* \{/,/^}$/ { P; D; } # Delete helpers traits. /^(pub )?trait ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? \{$/,/^\}$/D # Patch private helpers. /^impl.*Private.*Helpers/,/^\}$/ { s/^impl<'a> Private([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for &'a ([^ ]+) \{$/impl \3 {/ /^ *(unsafe )?fn .*\(self.*[<&]'a/ { s/&'a /\&/g s/<'a, /</g } /^ *(unsafe )?fn /s/\(self([,)])/\(\&self\1/ } # Patch public helpers. /^impl.*Helpers/,/^\}$/ { s/^impl(<'a>)? ([^L][^ ]|L[^a])[^ ]+Helpers(<'a>)? for (&'a )?([^ ]+) \{$/impl \5 {/ /^ *(unsafe )?fn .*\(self.*[<&]'a/ { s/&'a /\&/g s/<'a, /</g } /^ *(unsafe )?fn .*\(&?self[,)]/s/(unsafe )?fn/pub &/ /^ *pub (unsafe )?fn /s/\(self([,)])/\(\&self\1/ } The few error cases were then fixed by hand.
* make dom_struct derive HeapSizeOf,João Oliveira2015-08-271-1/+0
| | | | closes #7357
* Auto merge of #7397 - Manishearth:doublepointer-meet-fire, r=noxbors-servo2015-08-261-2/+2
|\ | | | | | | | | | | | | | | | | | | Remove doublepointer in VirtualMethods, and from_borrowed_ref <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7397) <!-- Reviewable:end -->
| * Remove doublepointer in VirtualMethods, and from_borrowed_refManish Goregaokar2015-08-271-2/+2
| | | | | | | | | | | | | | | | | | Most of the heavy lifting done by: ``` $ ls *rs | xargs gawk -i inplace '/let .*: &&.*from_borrowed_ref/{sub("&&", "\\&");sub("_borrowed_","_");} {print $0}' $ ls *rs | xargs gawk -i inplace "/impl.*VirtualMethods/{in_vm=1; sub(/<'a>/,\"\");sub(/&'a /,\"\")} /^}\$/{in_vm=0;} in_vm{\$0=gensub(/\\*self([^.])/,\"self\\\1\",\"g\"); sub(/from_borrowed_ref/,\"from_ref\")} {print}" ```
* | Auto merge of #7334 - servo:active, r=SimonSapinbors-servo2015-08-241-0/+24
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | Parse :active pseudo-class selector. This is #7258 with a spec link added in doc-comment. The pseudo-class is never matched, but this can still help with stylesheets like `a:hover, a:active { color: something }` where failing to parse one pseudo-class makes the entire selector list invalid. I filed #7333 about actually making it match. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7334) <!-- Reviewable:end -->
| * Add spec link for the IN_ACTIVE_STATE flag.Simon Sapin2015-08-241-1/+3
| |
| * script: Update `rust-selectors` to get `:active` support.Patrick Walton2015-08-171-0/+22
| | | | | | | | | | | | | | | | I couldn't find the place in the spec where the precise behavior of `:active` is described, so I don't set it. However, all the machinery to keep track of its status is in place. Improves YouTube.
* | sort all usesJohann Tuffe2015-08-201-10/+10
| |
* | Cleanup NodeIterator, Range, ServoHTMLParser, TextEncoder, URLHelper, URL, ↵Manish Goregaokar2015-08-181-7/+2
| | | | | | | | VirtualMethods
* | Cleanup node.rsManish Goregaokar2015-08-181-20/+14
| |
* | Replace uses of `for foo in bar.iter()`,João Oliveira2015-08-181-1/+1
|/ | | | | and `for foo in bar.iter_mut(), and for foo in bar.into_iter() (continuation of #7197)
* Fix existing syntactics nits.Josh Matthews2015-08-161-5/+5
|
* replace .len() == 0 with is_empty()João Oliveira2015-08-141-1/+1
| | | | closes #7198
* Measure heap memory usage for more types. Fixes #6951Bogdan Cuza2015-08-131-3/+3
|
* Auto merge of #6778 - nox:childnodes, r=jdmbors-servo2015-08-101-16/+45
|\ | | | | | | | | | | | | | | | | | | Optimise Node.childNodes <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6778) <!-- Reviewable:end -->
| * Optimise Node.childNodesAnthony Ramine2015-08-091-1/+4
| | | | | | | | | | We use the virtual method children_changed() to propagate changes in the children list to the NodeList tied to Node.childNodes.
| * Cache the number of children of each nodeAnthony Ramine2015-07-311-15/+41
| |
* | Start reporting memory usage for Window and all nodes in all DOM trees for ↵Josh Matthews2015-08-031-1/+8
|/ | | | frame treese in script tasks.
* Auto merge of #6800 - frewsxcv:childnode-before-childnode-after, r=Ms2gerbors-servo2015-07-301-30/+59
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement ChildNode::before & ChildNode::after Continued from #6536 The current implementations of `ChildNode::before` and `ChildNode::after` do not match the WHATWG spec. This commit updates the implementations to match the spec. Our current implementation of `ChildNode::after` passes all the WPT tests. So I made sure to add a regression test that failed with the current implementation. There are a few other unit tests I added to exhaust other corner cases I encountered. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6800) <!-- Reviewable:end -->
| * Implement ChildNode::before & ChildNode::afterCorey Farwell2015-07-291-30/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | Continued from #6536 The current implementations of `ChildNode::before` and `ChildNode::after` do not match the WHATWG spec. This commit updates the implementations to match the spec. Our current implementation of `ChildNode::after` passes all the WPT tests. So I made sure to add a regression test that failed with the current implementation. There are a few other unit tests I added to exhaust other corner cases I encountered.
* | Auto merge of #6783 - dzbarsky:replacechild, r=Ms2gerbors-servo2015-07-301-67/+61
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up Node::ReplaceChild <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6783) <!-- Reviewable:end -->
| * | Clean up Node::ReplaceChildDavid Zbarsky2015-07-291-67/+61
| | |
* | | Dispose layout data for every node removed from the treeNick Thompson2015-07-281-1/+2
| |/ |/|
* | Auto merge of #6662 - tschneidereit:client-geometry, r=glennw,pcwatsonbors-servo2015-07-271-0/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement Element.client{Top,Left,Width,Height} This isn't done, but contains a working implementation of at least `clientTop`. Feedback would be much appreciated: it's probably far from ideal. Implementing `clientLeft` is straight-forward, I think, but `clientWidth` and `clientHeight` require accessing the `border_box` - and I don't know how that works, yet. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6662) <!-- Reviewable:end -->
| * | Implement client{Top, Left, Height, Width} element propertiesTill Schneidereit2015-07-191-0/+5
| | |
* | | Auto merge of #6760 - dzbarsky:comment-fix, r=jdmbors-servo2015-07-261-3/+2
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | Remove outdated comment about cloning elements The comment points to the "implement element prefix" issue, but we clone the element's prefix when we construct the element right above. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6760) <!-- Reviewable:end -->
| * | Remove outdated comment about cloning elementsDavid Zbarsky2015-07-251-3/+2
| |/
* | Auto merge of #6660 - nox:children-changed, r=jdmbors-servo2015-07-251-154/+168
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce VirtualMethods::children_changed() This virtual method mimics the behaviour of mutation observers and make it more viable than the older child_inserted(), which didn't cover removed nodes and was called as many times as there were inserted nodes. A few other shortcomings where remove_child() was called directly instead of Node::remove() were also fixed while at it. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6660) <!-- Reviewable:end -->
| * | Introduce VirtualMethods::children_changed()Anthony Ramine2015-07-251-154/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | This virtual method mimics the behaviour of mutation observers and make it more viable than the older child_inserted(), which didn't cover removed nodes and was called as many times as there were inserted nodes. A few other shortcomings where remove_child() was called directly instead of Node::remove() were also fixed while at it.
* | | Auto merge of #6715 - Ms2ger:layoutelement, r=jdmbors-servo2015-07-231-26/+21
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | Implement more methods on LayoutJS. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6715) <!-- Reviewable:end -->
| * | Move the flag getters to LayoutNodeHelpers.Ms2ger2015-07-231-21/+21
| | |
| * | Remove unused RawLayoutNodeHelpers::type_id_for_layout.Ms2ger2015-07-231-5/+0
| | |
* | | Update rust-selectorsSimon Sapin2015-07-231-52/+8
|/ / | | | | | | Update for https://github.com/servo/rust-selectors/pull/37
* | Optimize `Node.normalize()`.Michael Howell2015-07-221-2/+1
| | | | | | | | | | | | Do not copy the discarded node's text data, borrow it. Closes #6658.
* | Auto merge of #6688 - Manishearth:smarter-root-lint, r=jdmbors-servo2015-07-221-14/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle type parameters in unused_must_root fixes #6651 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6688) <!-- Reviewable:end -->
| * | Address review comments; add docsManish Goregaokar2015-07-221-5/+5
| | |
| * | Fix rooting in scriptManish Goregaokar2015-07-221-14/+15
| |/
* / Upgrade rust-selectors, pass ':empty' testsCorey Farwell2015-07-221-2/+12
|/ | | | https://github.com/servo/rust-selectors/pull/36
* Auto merge of #6568 - dzbarsky:delete_range, r=jdmbors-servo2015-07-161-73/+79
|\ | | | | | | | | | | | | | | | | | | | | Implement Range#insertNode Gecko doesn't really follow the spec but it seems to throw a HierarchyRequest error when parent is null. Any ideas who I should talk to about fixing the spec to account for the null checks? <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6568) <!-- Reviewable:end -->
| * Implement Range#insertNodeDavid Zbarsky2015-07-161-73/+79
| |
* | Directly append children to output node in parse_html_fragmentMichael Wu2015-07-151-9/+3
|/
* Auto merge of #6617 - frewsxcv:fixme-ufcs, r=metajackbors-servo2015-07-141-7/+1
|\ | | | | | | | | | | | | | | | | | | Complete FIXMEs related to UFCS <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6617) <!-- Reviewable:end -->
| * Complete FIXMEs related to UFCSCorey Farwell2015-07-141-7/+1
| |
* | Test element prefix for element equalityDavid Zbarsky2015-07-111-1/+1
|/
* Test element prefix for element equalityDavid Zbarsky2015-07-101-8/+89
|
* Auto merge of #6559 - kball:IS1824-implement-Node.baseURI, r=Ms2gerbors-servo2015-07-061-4/+3
|\ | | | | | | | | | | | | | | | | | | Implement Node.baseURI Addresses Issue #1824. Implements Node.baseURI based on https://www.w3.org/Bugs/Public/show_bug.cgi?id=20976#c32 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6559) <!-- Reviewable:end -->
| * Implement Node.baseURIKevin Ball2015-07-051-4/+3
| |