diff options
author | Tim Taubert <tim@timtaubert.de> | 2014-10-12 18:53:31 +0200 |
---|---|---|
committer | Tim Taubert <tim@timtaubert.de> | 2014-10-13 11:13:12 +0200 |
commit | 9a52bb8310eb9d479a5211b0048bb682da0ac123 (patch) | |
tree | 63d43b597057dd5d17e3bf57b7b351d8c1aa525e /components | |
parent | acd98a73a4ea1aad96705c49ab960d9c87a38a28 (diff) | |
download | servo-9a52bb8310eb9d479a5211b0048bb682da0ac123.tar.gz servo-9a52bb8310eb9d479a5211b0048bb682da0ac123.zip |
Privatize InheritTypes
Diffstat (limited to 'components')
80 files changed, 252 insertions, 101 deletions
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index 7cde321f058..f7b14cff10c 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -116,8 +116,8 @@ pub trait TLayoutNode { fail!("not an iframe element!") } let iframe_element: JS<HTMLIFrameElement> = self.get_jsmanaged().transmute_copy(); - let size = (*iframe_element.unsafe_get()).size.get().unwrap(); - (size.pipeline_id, size.subpage_id) + let size = (*iframe_element.unsafe_get()).size().unwrap(); + (*size.pipeline_id(), *size.subpage_id()) } } @@ -189,7 +189,7 @@ impl<'ln> TLayoutNode for LayoutNode<'ln> { unsafe { if self.get().is_text() { let text: JS<Text> = self.get_jsmanaged().transmute_copy(); - (*text.unsafe_get()).characterdata.data.borrow().clone() + (*text.unsafe_get()).characterdata().data().clone() } else if self.get().is_htmlinputelement() { let input: JS<HTMLInputElement> = self.get_jsmanaged().transmute_copy(); input.get_value_for_layout() @@ -765,7 +765,7 @@ impl<'ln> ThreadSafeLayoutNode<'ln> { Some(TextNodeTypeId) => { unsafe { let text: JS<Text> = self.get_jsmanaged().transmute_copy(); - if !is_whitespace((*text.unsafe_get()).characterdata.data.borrow().as_slice()) { + if !is_whitespace((*text.unsafe_get()).characterdata().data().as_slice()) { return false } diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 9f80ca0dd5c..7cf193baf0c 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5452,7 +5452,7 @@ class GlobalGenRoots(): protoDescriptor = config.getDescriptor(protoName) delegate = string.Template('''impl ${selfName} for ${baseName} { fn ${fname}(&self) -> bool { - self.${parentName}.${fname}() + self.${parentName}().${fname}() } } ''').substitute({'fname': 'is_' + name.lower(), diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 277295daef9..c9ad75f9a22 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -14,13 +14,14 @@ use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::node::{CommentNodeTypeId, Node, NodeTypeId, TextNodeTypeId, ProcessingInstructionNodeTypeId, NodeHelpers}; use servo_util::str::DOMString; -use std::cell::RefCell; +use std::cell::{Ref, RefCell}; #[jstraceable] #[must_root] +#[privatize] pub struct CharacterData { - pub node: Node, - pub data: RefCell<DOMString>, + node: Node, + data: RefCell<DOMString>, } impl CharacterDataDerived for EventTarget { @@ -41,6 +42,21 @@ impl CharacterData { data: RefCell::new(data), } } + + #[inline] + pub fn node<'a>(&'a self) -> &'a Node { + &self.node + } + + #[inline] + pub fn data(&self) -> Ref<DOMString> { + self.data.borrow() + } + + #[inline] + pub fn set_data(&self, data: DOMString) { + *self.data.borrow_mut() = data; + } } impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 99dde0e9f0c..7e698a9ec6a 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -641,7 +641,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { for child in title_elem.children() { if child.is_text() { let text: JSRef<Text> = TextCast::to_ref(child).unwrap(); - title.push_str(text.characterdata.data.borrow().as_slice()); + title.push_str(text.characterdata().data().as_slice()); } } }); diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index ef5ec630670..82b54229201 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -166,6 +166,11 @@ impl Element { Node::reflect_node(box Element::new_inherited(ElementTypeId_, local_name, namespace, prefix, document), document, ElementBinding::Wrap) } + + #[inline] + pub fn node<'a>(&'a self) -> &'a Node { + &self.node + } } pub trait RawLayoutElementHelpers { diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 74ab2976456..f82027a93fa 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -23,8 +23,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLAnchorElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLAnchorElementDerived for EventTarget { diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs index b40bc50bc67..5572b126634 100644 --- a/components/script/dom/htmlappletelement.rs +++ b/components/script/dom/htmlappletelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLAppletElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLAppletElementDerived for EventTarget { diff --git a/components/script/dom/htmlareaelement.rs b/components/script/dom/htmlareaelement.rs index 57c3fe883d4..49463f86b3f 100644 --- a/components/script/dom/htmlareaelement.rs +++ b/components/script/dom/htmlareaelement.rs @@ -16,8 +16,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLAreaElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLAreaElementDerived for EventTarget { diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs index 0d419c40338..b281c6e3db7 100644 --- a/components/script/dom/htmlaudioelement.rs +++ b/components/script/dom/htmlaudioelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLAudioElement { - pub htmlmediaelement: HTMLMediaElement + htmlmediaelement: HTMLMediaElement } impl HTMLAudioElementDerived for EventTarget { diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs index 1a9d0e833bd..6691c27e29c 100644 --- a/components/script/dom/htmlbaseelement.rs +++ b/components/script/dom/htmlbaseelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLBaseElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLBaseElementDerived for EventTarget { diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index a73e6ef40b6..a537ca52ba3 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -22,8 +22,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLBodyElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLBodyElementDerived for EventTarget { diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs index 4585c433ae2..e6cb0596bd5 100644 --- a/components/script/dom/htmlbrelement.rs +++ b/components/script/dom/htmlbrelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLBRElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLBRElementDerived for EventTarget { diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index f12035d148e..e0ae3afa30a 100644 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -22,8 +22,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLButtonElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLButtonElementDerived for EventTarget { diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index 3f7d11531bc..d77657ed2df 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -30,8 +30,9 @@ static DefaultHeight: u32 = 150; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLCanvasElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, context: MutNullableJS<CanvasRenderingContext2D>, width: Cell<u32>, height: Cell<u32>, diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs index aeafde6d06e..bae4916393b 100644 --- a/components/script/dom/htmldataelement.rs +++ b/components/script/dom/htmldataelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLDataElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLDataElementDerived for EventTarget { diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs index 9c57a7176ff..a61299b560b 100644 --- a/components/script/dom/htmldatalistelement.rs +++ b/components/script/dom/htmldatalistelement.rs @@ -18,8 +18,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLDataListElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLDataListElementDerived for EventTarget { diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs index b55bd539781..72553bf2a5e 100644 --- a/components/script/dom/htmldirectoryelement.rs +++ b/components/script/dom/htmldirectoryelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLDirectoryElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLDirectoryElementDerived for EventTarget { diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs index c164beec7d0..cbbcd90c222 100644 --- a/components/script/dom/htmldivelement.rs +++ b/components/script/dom/htmldivelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLDivElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLDivElementDerived for EventTarget { diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs index d107a277faf..983721ac429 100644 --- a/components/script/dom/htmldlistelement.rs +++ b/components/script/dom/htmldlistelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLDListElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLDListElementDerived for EventTarget { diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 65f6fb33c36..cc920a50c42 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -22,8 +22,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLElement { - pub element: Element + element: Element } impl HTMLElementDerived for EventTarget { @@ -48,6 +49,11 @@ impl HTMLElement { let element = HTMLElement::new_inherited(HTMLElementTypeId, localName, prefix, document); Node::reflect_node(box element, document, HTMLElementBinding::Wrap) } + + #[inline] + pub fn element<'a>(&'a self) -> &'a Element { + &self.element + } } trait PrivateHTMLElementHelpers { diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs index 587a0d375f3..1860a3027f2 100644 --- a/components/script/dom/htmlembedelement.rs +++ b/components/script/dom/htmlembedelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLEmbedElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLEmbedElementDerived for EventTarget { diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index db043564710..6e59a2456e1 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -23,8 +23,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLFieldSetElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLFieldSetElementDerived for EventTarget { diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs index 0feede649a4..bd4cf31b33c 100644 --- a/components/script/dom/htmlfontelement.rs +++ b/components/script/dom/htmlfontelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLFontElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLFontElementDerived for EventTarget { diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 03bd593cb64..55a8ecf0190 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -31,8 +31,9 @@ use url::form_urlencoded::serialize; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLFormElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLFormElementDerived for EventTarget { diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs index 62febac5b7f..0f517ef7615 100644 --- a/components/script/dom/htmlframeelement.rs +++ b/components/script/dom/htmlframeelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLFrameElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLFrameElementDerived for EventTarget { diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs index a2599a734d6..70ac2eb58e7 100644 --- a/components/script/dom/htmlframesetelement.rs +++ b/components/script/dom/htmlframesetelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLFrameSetElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLFrameSetElementDerived for EventTarget { diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs index c972400c0d6..b1031def2c6 100644 --- a/components/script/dom/htmlheadelement.rs +++ b/components/script/dom/htmlheadelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLHeadElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLHeadElementDerived for EventTarget { diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs index ace784a96a9..51df3db00c3 100644 --- a/components/script/dom/htmlheadingelement.rs +++ b/components/script/dom/htmlheadingelement.rs @@ -25,9 +25,10 @@ pub enum HeadingLevel { #[jstraceable] #[must_root] +#[privatize] pub struct HTMLHeadingElement { - pub htmlelement: HTMLElement, - pub level: HeadingLevel, + htmlelement: HTMLElement, + level: HeadingLevel, } impl HTMLHeadingElementDerived for EventTarget { diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs index 8167c5854f7..e132835f499 100644 --- a/components/script/dom/htmlhrelement.rs +++ b/components/script/dom/htmlhrelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLHRElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLHRElementDerived for EventTarget { diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs index 279eb740709..bacc8d39650 100644 --- a/components/script/dom/htmlhtmlelement.rs +++ b/components/script/dom/htmlhtmlelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLHtmlElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLHtmlElementDerived for EventTarget { diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 94353173333..68ca275682f 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -41,10 +41,11 @@ enum SandboxAllowance { #[jstraceable] #[must_root] +#[privatize] pub struct HTMLIFrameElement { - pub htmlelement: HTMLElement, - pub size: Cell<Option<IFrameSize>>, - pub sandbox: Cell<Option<u8>>, + htmlelement: HTMLElement, + size: Cell<Option<IFrameSize>>, + sandbox: Cell<Option<u8>>, } impl HTMLIFrameElementDerived for EventTarget { @@ -54,9 +55,22 @@ impl HTMLIFrameElementDerived for EventTarget { } #[jstraceable] +#[privatize] pub struct IFrameSize { - pub pipeline_id: PipelineId, - pub subpage_id: SubpageId, + pipeline_id: PipelineId, + subpage_id: SubpageId, +} + +impl IFrameSize { + #[inline] + pub fn pipeline_id<'a>(&'a self) -> &'a PipelineId { + &self.pipeline_id + } + + #[inline] + pub fn subpage_id<'a>(&'a self) -> &'a SubpageId { + &self.subpage_id + } } pub trait HTMLIFrameElementHelpers { @@ -126,6 +140,11 @@ impl HTMLIFrameElement { let element = HTMLIFrameElement::new_inherited(localName, prefix, document); Node::reflect_node(box element, document, HTMLIFrameElementBinding::Wrap) } + + #[inline] + pub fn size(&self) -> Option<IFrameSize> { + self.size.get() + } } impl<'a> HTMLIFrameElementMethods for JSRef<'a, HTMLIFrameElement> { diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 299cb4923ca..5d7ffeb3c22 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -26,8 +26,9 @@ use std::cell::RefCell; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLImageElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, image: RefCell<Option<Url>>, } diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index ab9818d99f0..1e95e718d49 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -45,8 +45,9 @@ enum InputType { #[jstraceable] #[must_root] +#[privatize] pub struct HTMLInputElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, input_type: Cell<InputType>, checked: Cell<bool>, uncommitted_value: RefCell<Option<String>>, diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs index 7ff84e0075a..2b4b9aa2da9 100644 --- a/components/script/dom/htmllabelelement.rs +++ b/components/script/dom/htmllabelelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLLabelElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLLabelElementDerived for EventTarget { diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs index 86bf81ca7ec..f5e53167934 100644 --- a/components/script/dom/htmllegendelement.rs +++ b/components/script/dom/htmllegendelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLLegendElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLLegendElementDerived for EventTarget { diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs index 948430d3eda..6300d028235 100644 --- a/components/script/dom/htmllielement.rs +++ b/components/script/dom/htmllielement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLLIElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLLIElementDerived for EventTarget { diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 41810b51f26..eaaa72d86f3 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -23,8 +23,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLLinkElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLLinkElementDerived for EventTarget { diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs index 585102c2af9..99a2593801a 100644 --- a/components/script/dom/htmlmapelement.rs +++ b/components/script/dom/htmlmapelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLMapElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLMapElementDerived for EventTarget { diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index ef841c31a35..4141d7df79c 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -14,8 +14,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLMediaElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLMediaElementDerived for EventTarget { @@ -34,6 +35,11 @@ impl HTMLMediaElement { htmlelement: HTMLElement::new_inherited(type_id, tag_name, prefix, document) } } + + #[inline] + pub fn htmlelement<'a>(&'a self) -> &'a HTMLElement { + &self.htmlelement + } } impl Reflectable for HTMLMediaElement { diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index 34873293440..7f01d7c0ef4 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLMetaElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLMetaElementDerived for EventTarget { diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs index 1648cde9751..045d6fb513c 100644 --- a/components/script/dom/htmlmeterelement.rs +++ b/components/script/dom/htmlmeterelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLMeterElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLMeterElementDerived for EventTarget { diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs index 35ebb61e6ad..a71ee89c168 100644 --- a/components/script/dom/htmlmodelement.rs +++ b/components/script/dom/htmlmodelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLModElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLModElementDerived for EventTarget { diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index 1d39c3a07f5..bc61e468045 100644 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -27,8 +27,9 @@ use url::Url; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLObjectElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLObjectElementDerived for EventTarget { diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs index ae36ce0d628..58f73fed5d6 100644 --- a/components/script/dom/htmlolistelement.rs +++ b/components/script/dom/htmlolistelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLOListElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLOListElementDerived for EventTarget { diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs index 9e0cade682d..e94ea81f9b4 100644 --- a/components/script/dom/htmloptgroupelement.rs +++ b/components/script/dom/htmloptgroupelement.rs @@ -20,8 +20,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLOptGroupElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLOptGroupElementDerived for EventTarget { diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index ecd8b2d498b..8c1c5b0989e 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -24,8 +24,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLOptionElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLOptionElementDerived for EventTarget { diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs index 1442980de26..ec5622c59ac 100644 --- a/components/script/dom/htmloutputelement.rs +++ b/components/script/dom/htmloutputelement.rs @@ -17,8 +17,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLOutputElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLOutputElementDerived for EventTarget { diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs index 6b91ba18afc..4a0976c2ff1 100644 --- a/components/script/dom/htmlparagraphelement.rs +++ b/components/script/dom/htmlparagraphelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLParagraphElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLParagraphElementDerived for EventTarget { diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs index 2b664425e85..f729242b879 100644 --- a/components/script/dom/htmlparamelement.rs +++ b/components/script/dom/htmlparamelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLParamElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLParamElementDerived for EventTarget { diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs index 9ec13769e78..22bd185804c 100644 --- a/components/script/dom/htmlpreelement.rs +++ b/components/script/dom/htmlpreelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLPreElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLPreElementDerived for EventTarget { diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs index c9506716562..879e86cb6fa 100644 --- a/components/script/dom/htmlprogresselement.rs +++ b/components/script/dom/htmlprogresselement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLProgressElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLProgressElementDerived for EventTarget { diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs index 532554254c2..ed5b8f818ce 100644 --- a/components/script/dom/htmlquoteelement.rs +++ b/components/script/dom/htmlquoteelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLQuoteElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLQuoteElementDerived for EventTarget { diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 3c200b9f324..0168bc8ad98 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -20,8 +20,9 @@ use servo_util::str::{DOMString, HTML_SPACE_CHARACTERS, StaticStringVec}; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLScriptElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLScriptElementDerived for EventTarget { diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 8c86318c38c..01c9e1c2348 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -23,8 +23,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLSelectElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLSelectElementDerived for EventTarget { diff --git a/components/script/dom/htmlserializer.rs b/components/script/dom/htmlserializer.rs index f8b57996375..1dd648a6514 100644 --- a/components/script/dom/htmlserializer.rs +++ b/components/script/dom/htmlserializer.rs @@ -69,7 +69,7 @@ pub fn serialize(iterator: &mut NodeIterator) -> String { fn serialize_comment(comment: JSRef<Comment>, html: &mut String) { html.push_str("<!--"); - html.push_str(comment.characterdata.data.borrow().as_slice()); + html.push_str(comment.characterdata.data().as_slice()); html.push_str("-->"); } @@ -82,11 +82,11 @@ fn serialize_text(text: JSRef<Text>, html: &mut String) { "style" | "script" | "xmp" | "iframe" | "noembed" | "noframes" | "plaintext" | "noscript" if elem.namespace == ns!(HTML) - => html.push_str(text.characterdata.data.borrow().as_slice()), - _ => escape(text.characterdata.data.borrow().as_slice(), false, html) + => html.push_str(text.characterdata().data().as_slice()), + _ => escape(text.characterdata().data().as_slice(), false, html) } } - _ => escape(text.characterdata.data.borrow().as_slice(), false, html) + _ => escape(text.characterdata().data().as_slice(), false, html) } } @@ -95,7 +95,7 @@ fn serialize_processing_instruction(processing_instruction: JSRef<ProcessingInst html.push_str("<?"); html.push_str(processing_instruction.target.as_slice()); html.push_char(' '); - html.push_str(processing_instruction.characterdata.data.borrow().as_slice()); + html.push_str(processing_instruction.characterdata.data().as_slice()); html.push_str("?>"); } @@ -120,7 +120,7 @@ fn serialize_elem(elem: JSRef<Element>, open_elements: &mut Vec<String>, html: & match node.first_child().map(|child| child.root()) { Some(ref child) if child.is_text() => { let text: JSRef<CharacterData> = CharacterDataCast::to_ref(**child).unwrap(); - if text.data.borrow().len() > 0 && text.data.borrow().as_slice().char_at(0) == '\n' { + if text.data().len() > 0 && text.data().as_slice().char_at(0) == '\n' { html.push_char('\x0A'); } }, diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs index 07d971c0dff..587262ebf3f 100644 --- a/components/script/dom/htmlsourceelement.rs +++ b/components/script/dom/htmlsourceelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLSourceElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLSourceElementDerived for EventTarget { diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs index a3a55d5b00a..2dea84ed3c6 100644 --- a/components/script/dom/htmlspanelement.rs +++ b/components/script/dom/htmlspanelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLSpanElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLSpanElementDerived for EventTarget { diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index b0c190b7aeb..cf0a19243b4 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -19,8 +19,9 @@ use style::Stylesheet; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLStyleElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLStyleElementDerived for EventTarget { diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs index 68a0feab854..01f7d3a5731 100644 --- a/components/script/dom/htmltablecaptionelement.rs +++ b/components/script/dom/htmltablecaptionelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableCaptionElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLTableCaptionElementDerived for EventTarget { diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs index f4fc2002fa9..97d85976614 100644 --- a/components/script/dom/htmltablecellelement.rs +++ b/components/script/dom/htmltablecellelement.rs @@ -14,8 +14,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableCellElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTableCellElementDerived for EventTarget { @@ -34,6 +35,11 @@ impl HTMLTableCellElement { htmlelement: HTMLElement::new_inherited(type_id, tag_name, prefix, document) } } + + #[inline] + pub fn htmlelement<'a>(&'a self) -> &'a HTMLElement { + &self.htmlelement + } } impl Reflectable for HTMLTableCellElement { diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs index 88bc8b7beb5..9954bc1b09b 100644 --- a/components/script/dom/htmltablecolelement.rs +++ b/components/script/dom/htmltablecolelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableColElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTableColElementDerived for EventTarget { diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs index 83569b1e08c..f4024581a49 100644 --- a/components/script/dom/htmltabledatacellelement.rs +++ b/components/script/dom/htmltabledatacellelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableDataCellElement { - pub htmltablecellelement: HTMLTableCellElement, + htmltablecellelement: HTMLTableCellElement, } impl HTMLTableDataCellElementDerived for EventTarget { diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index 1d9b4eff9d0..8faa3c573ad 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -19,8 +19,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTableElementDerived for EventTarget { diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs index 056c7b9d789..65db1e2c500 100644 --- a/components/script/dom/htmltableheadercellelement.rs +++ b/components/script/dom/htmltableheadercellelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableHeaderCellElement { - pub htmltablecellelement: HTMLTableCellElement, + htmltablecellelement: HTMLTableCellElement, } impl HTMLTableHeaderCellElementDerived for EventTarget { diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs index 51fb63bd7e8..3552147fd96 100644 --- a/components/script/dom/htmltablerowelement.rs +++ b/components/script/dom/htmltablerowelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableRowElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTableRowElementDerived for EventTarget { diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs index 7b3eb02ebc1..a4d9f3ad91b 100644 --- a/components/script/dom/htmltablesectionelement.rs +++ b/components/script/dom/htmltablesectionelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTableSectionElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTableSectionElementDerived for EventTarget { diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs index 523b8b8bae0..dcb4812c5dc 100644 --- a/components/script/dom/htmltemplateelement.rs +++ b/components/script/dom/htmltemplateelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTemplateElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTemplateElementDerived for EventTarget { diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index d109a26c524..19a59a899e4 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -20,8 +20,9 @@ use string_cache::Atom; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTextAreaElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTextAreaElementDerived for EventTarget { diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs index 5d71321b88b..be8dafbcfef 100644 --- a/components/script/dom/htmltimeelement.rs +++ b/components/script/dom/htmltimeelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTimeElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLTimeElementDerived for EventTarget { diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index 1004d1c7473..22b3a731002 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -18,8 +18,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTitleElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTitleElementDerived for EventTarget { @@ -50,7 +51,7 @@ impl<'a> HTMLTitleElementMethods for JSRef<'a, HTMLTitleElement> { for child in node.children() { let text: Option<JSRef<Text>> = TextCast::to_ref(child); match text { - Some(text) => content.push_str(text.characterdata.data.borrow().as_slice()), + Some(text) => content.push_str(text.characterdata().data().as_slice()), None => (), } } diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs index a1c5c428d74..d73007310a6 100644 --- a/components/script/dom/htmltrackelement.rs +++ b/components/script/dom/htmltrackelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLTrackElement { - pub htmlelement: HTMLElement, + htmlelement: HTMLElement, } impl HTMLTrackElementDerived for EventTarget { diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs index ffeb8affa11..b23b979c05c 100644 --- a/components/script/dom/htmlulistelement.rs +++ b/components/script/dom/htmlulistelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLUListElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLUListElementDerived for EventTarget { diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs index f39329c8e1f..15329bd453f 100644 --- a/components/script/dom/htmlunknownelement.rs +++ b/components/script/dom/htmlunknownelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLUnknownElement { - pub htmlelement: HTMLElement + htmlelement: HTMLElement } impl HTMLUnknownElementDerived for EventTarget { diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs index ecbabaa906b..c7626fc1987 100644 --- a/components/script/dom/htmlvideoelement.rs +++ b/components/script/dom/htmlvideoelement.rs @@ -15,8 +15,9 @@ use servo_util::str::DOMString; #[jstraceable] #[must_root] +#[privatize] pub struct HTMLVideoElement { - pub htmlmediaelement: HTMLMediaElement + htmlmediaelement: HTMLMediaElement } impl HTMLVideoElementDerived for EventTarget { diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 9ef523ba9e9..98f39bf4888 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1144,6 +1144,11 @@ impl Node { } } + #[inline] + pub fn eventtarget<'a>(&'a self) -> &'a EventTarget { + &self.eventtarget + } + // http://dom.spec.whatwg.org/#concept-node-adopt pub fn adopt(node: JSRef<Node>, document: JSRef<Document>) { // Step 1. @@ -1464,7 +1469,7 @@ impl Node { }, CommentNodeTypeId => { let comment: JSRef<Comment> = CommentCast::to_ref(node).unwrap(); - let comment = Comment::new(comment.characterdata.data.borrow().clone(), *document); + let comment = Comment::new(comment.characterdata.data().clone(), *document); NodeCast::from_temporary(comment) }, DocumentNodeTypeId => { @@ -1486,13 +1491,13 @@ impl Node { }, TextNodeTypeId => { let text: JSRef<Text> = TextCast::to_ref(node).unwrap(); - let text = Text::new(text.characterdata.data.borrow().clone(), *document); + let text = Text::new(text.characterdata().data().clone(), *document); NodeCast::from_temporary(text) }, ProcessingInstructionNodeTypeId => { let pi: JSRef<ProcessingInstruction> = ProcessingInstructionCast::to_ref(node).unwrap(); let pi = ProcessingInstruction::new(pi.target.clone(), - pi.characterdata.data.borrow().clone(), *document); + pi.characterdata.data().clone(), *document); NodeCast::from_temporary(pi) }, }.root(); @@ -1569,7 +1574,7 @@ impl Node { for node in iterator { let text: Option<JSRef<Text>> = TextCast::to_ref(node); match text { - Some(text) => content.push_str(text.characterdata.data.borrow().as_slice()), + Some(text) => content.push_str(text.characterdata().data().as_slice()), None => (), } } @@ -1759,7 +1764,7 @@ impl<'a> NodeMethods for JSRef<'a, Node> { self.wait_until_safe_to_modify_dom(); let characterdata: JSRef<CharacterData> = CharacterDataCast::to_ref(self).unwrap(); - *characterdata.data.borrow_mut() = value; + characterdata.set_data(value); // Notify the document that the content of this node is different let document = self.owner_doc().root(); @@ -1970,12 +1975,12 @@ impl<'a> NodeMethods for JSRef<'a, Node> { let pi: JSRef<ProcessingInstruction> = ProcessingInstructionCast::to_ref(node).unwrap(); let other_pi: JSRef<ProcessingInstruction> = ProcessingInstructionCast::to_ref(other).unwrap(); (pi.target == other_pi.target) && - (*pi.characterdata.data.borrow() == *other_pi.characterdata.data.borrow()) + (*pi.characterdata.data() == *other_pi.characterdata.data()) } fn is_equal_characterdata(node: JSRef<Node>, other: JSRef<Node>) -> bool { let characterdata: JSRef<CharacterData> = CharacterDataCast::to_ref(node).unwrap(); let other_characterdata: JSRef<CharacterData> = CharacterDataCast::to_ref(other).unwrap(); - *characterdata.data.borrow() == *other_characterdata.data.borrow() + *characterdata.data() == *other_characterdata.data() } fn is_equal_element_attrs(node: JSRef<Node>, other: JSRef<Node>) -> bool { let element: JSRef<Element> = ElementCast::to_ref(node).unwrap(); diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index b073f8ec298..7e251fd0b99 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -18,8 +18,9 @@ use servo_util::str::DOMString; /// An HTML text node. #[jstraceable] #[must_root] +#[privatize] pub struct Text { - pub characterdata: CharacterData, + characterdata: CharacterData, } impl TextDerived for EventTarget { @@ -44,6 +45,11 @@ impl Text { let document = global.as_window().Document().root(); Ok(Text::new(text, *document)) } + + #[inline] + pub fn characterdata<'a>(&'a self) -> &'a CharacterData { + &self.characterdata + } } impl Reflectable for Text { diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs index 18fe2dc3585..126ae4d6432 100644 --- a/components/script/dom/uievent.rs +++ b/components/script/dom/uievent.rs @@ -21,8 +21,9 @@ use std::default::Default; #[jstraceable] #[must_root] +#[privatize] pub struct UIEvent { - pub event: Event, + event: Event, view: MutNullableJS<Window>, detail: Cell<i32> } @@ -67,6 +68,11 @@ impl UIEvent { init.view.root_ref(), init.detail); Ok(event) } + + #[inline] + pub fn event<'a>(&'a self) -> &'a Event { + &self.event + } } impl<'a> UIEventMethods for JSRef<'a, UIEvent> { diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 355fb3f2cc3..a545cf05fbe 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -32,8 +32,9 @@ pub enum WorkerGlobalScopeId { #[jstraceable] #[must_root] +#[privatize] pub struct WorkerGlobalScope { - pub eventtarget: EventTarget, + eventtarget: EventTarget, worker_url: Url, js_context: Rc<Cx>, resource_task: ResourceTask, @@ -61,6 +62,11 @@ impl WorkerGlobalScope { } } + #[inline] + pub fn eventtarget<'a>(&'a self) -> &'a EventTarget { + &self.eventtarget + } + pub fn get_cx(&self) -> *mut JSContext { self.js_context.ptr } diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs index 9345c676a89..1b0954daf32 100644 --- a/components/script/dom/xmlhttprequesteventtarget.rs +++ b/components/script/dom/xmlhttprequesteventtarget.rs @@ -13,8 +13,9 @@ use dom::xmlhttprequest::XMLHttpRequestId; #[jstraceable] #[must_root] +#[privatize] pub struct XMLHttpRequestEventTarget { - pub eventtarget: EventTarget, + eventtarget: EventTarget, } impl XMLHttpRequestEventTarget { @@ -23,6 +24,11 @@ impl XMLHttpRequestEventTarget { eventtarget: EventTarget::new_inherited(XMLHttpRequestTargetTypeId(type_id)) } } + + #[inline] + pub fn eventtarget<'a>(&'a self) -> &'a EventTarget { + &self.eventtarget + } } impl XMLHttpRequestEventTargetDerived for EventTarget { fn is_xmlhttprequesteventtarget(&self) -> bool { diff --git a/components/script/html/hubbub_html_parser.rs b/components/script/html/hubbub_html_parser.rs index 4b943a4409a..27f37984517 100644 --- a/components/script/html/hubbub_html_parser.rs +++ b/components/script/html/hubbub_html_parser.rs @@ -503,7 +503,7 @@ pub fn parse_html(page: &Page, for child in scriptnode.children() { debug!("child = {:?}", child); let text: JSRef<Text> = TextCast::to_ref(child).unwrap(); - data.push_str(text.characterdata.data.borrow().as_slice()); + data.push_str(text.characterdata().data().as_slice()); } debug!("script data = {:?}", data); |