aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* | Auto merge of #7935 - bholley:eventstate_element, r=noxbors-servo2015-10-191-158/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Move event state from Node to Element Just getting my feet wet with Rust here. Please feel free to nit the hell out of it stylistically and idiomatically. :-) <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7935) <!-- Reviewable:end -->
| * | Move what is now an |impl Element| block to element.rs.Bobby Holley2015-10-161-50/+1
| | | | | | | | | | | | This is a simple cut/paste.
| * | Move Event States to |Element|.Bobby Holley2015-10-161-118/+18
| |/ | | | | | | | | | | Conceptually they belong there, rather than on |Node|. Fixes #7934.
* / Implement HTMLTableRowElement insertCell and deleteCellCorey Farwell2015-10-171-1/+66
|/
* Fix remaining MutHeap methods not to expose JS<T>.Eli Friedman2015-10-151-1/+1
|
* Make get() and set() on MutNullableHeap use the correct types.Eli Friedman2015-10-151-22/+22
| | | | | | get() must always return a rooted value, because we have no way of ensuring the value won't be invalidated. set() takes an &T because it's convenient; there isn't any need to expose JS<T>.
* Update script to work with lint changesManish Goregaokar2015-10-161-0/+2
|
* Explicitly customise flags of new nodes where neededAnthony Ramine2015-10-151-22/+12
| | | | | | | Given codegen now generates the various TypeId enums, it seems pointless to still have to write their respective values in every DOM struct inheriting from Node just to set the initial IS_IN_DOC flag in Document and IN_ENABLED_STATE in form controls.
* Generate all Derived implementations in codegenAnthony Ramine2015-10-141-10/+1
|
* Generate the TypeId enums in codegenAnthony Ramine2015-10-141-20/+11
|
* Refactor away duplication of get_rooted functionalityPierre Chevalier2015-10-081-10/+10
| | | | | | | | | | | | | | Refactor .get().map(Root::from_rooted) and .get().map(|foo| foo.root()) to .get_rooted() on MutNullableHeap objects. First part done mechanically with the following comand: sed -i s/"get().map(Root::from_rooted)"/"get_rooted()"/g *.rs Second part done manually after finding them with git grep ".get().map(" Fixes 7929.
* Refactor Error enum usage to consistently be qualifiedAnthony Urena2015-10-061-35/+34
|
* Split Au type into separate crate, with minimal dependencies.Glenn Watson2015-10-011-1/+1
|
* script: Stop copying the document URL.Patrick Walton2015-09-241-1/+1
|
* sorted the extern crate, mod & use declarationsRavi Shankar2015-09-241-8/+7
|
* Auto merge of #7611 - nox:cache-element-id, r=frewsxcvbors-servo2015-09-201-17/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | Cache the `id` attribute on Element Thanks to @asabil for the original work, I only rebased it. Fixes #6359 and #7040. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7611) <!-- Reviewable:end -->
| * Fix Node::query_selector() and Node::query_selector_iter()Anthony Ramine2015-09-131-8/+5
| | | | | | | | These should not find the root of the tree to start matching.
| * Fix cloning of Element's attributesAnthony Ramine2015-09-131-9/+6
| | | | | | | | | | No virtual method was invoked when copies of attributes were appended to newly-cloned elements.
* | Fix reported test-tidy errors for unmerged import blocksBrandon Fairchild2015-09-191-9/+8
|/ | | | This merges import blocks that were reported by tidy as unmerged.
* Introduce [Abstract] to mark non-leaf interfacesAnthony Ramine2015-09-131-16/+2
| | | | | | | Some interfaces like Node, CharacterData and HTMLTableCellElement are never instantiated directly, only their descendant interfaces are. Those are marked with [Abstract] to set their type_id to None instead of having dummy values in the TypeId enums.
* Move EventTargetTypeId/NodeTypeId to DOMClassMichael Wu2015-09-121-25/+48
|
* Implement adopting stepsAnthony Ramine2015-09-081-14/+9
| | | | | https://dom.spec.whatwg.org/#concept-node-adopt https://github.com/whatwg/dom/pull/66
* 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
| | |