aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/global.rs4
-rw-r--r--components/script/dom/bindings/js.rs8
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs15
-rw-r--r--components/script/dom/document.rs46
-rw-r--r--components/script/dom/domrectlist.rs2
-rw-r--r--components/script/dom/element.rs26
-rw-r--r--components/script/dom/filelist.rs2
-rw-r--r--components/script/dom/formdata.rs2
-rw-r--r--components/script/dom/htmlcanvaselement.rs4
-rw-r--r--components/script/dom/htmlcollection.rs2
-rw-r--r--components/script/dom/htmlelement.rs4
-rw-r--r--components/script/dom/htmlscriptelement.rs2
-rw-r--r--components/script/dom/namednodemap.rs4
-rw-r--r--components/script/dom/node.rs20
-rw-r--r--components/script/dom/nodeiterator.rs2
-rw-r--r--components/script/dom/nodelist.rs2
-rw-r--r--components/script/dom/performance.rs2
-rw-r--r--components/script/dom/servohtmlparser.rs2
-rw-r--r--components/script/dom/touchlist.rs2
-rw-r--r--components/script/dom/treewalker.rs2
-rw-r--r--components/script/dom/webglrenderingcontext.rs7
-rw-r--r--components/script/dom/xmlhttprequest.rs2
22 files changed, 76 insertions, 86 deletions
diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs
index a1a1c68c8c0..e91e94a0a4b 100644
--- a/components/script/dom/bindings/global.rs
+++ b/components/script/dom/bindings/global.rs
@@ -230,8 +230,8 @@ impl GlobalField {
/// Create a stack-bounded root for this reference.
pub fn root(&self) -> GlobalRoot {
match *self {
- GlobalField::Window(ref window) => GlobalRoot::Window(window.root()),
- GlobalField::Worker(ref worker) => GlobalRoot::Worker(worker.root()),
+ GlobalField::Window(ref window) => GlobalRoot::Window(Root::from_ref(window)),
+ GlobalField::Worker(ref worker) => GlobalRoot::Worker(Root::from_ref(worker)),
}
}
}
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index a6af7680a96..c78399189ab 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -73,10 +73,6 @@ impl<T> JS<T> {
}
impl<T: Reflectable> JS<T> {
- /// Root this JS-owned value to prevent its collection as garbage.
- pub fn root(&self) -> Root<T> {
- Root::new(self.ptr)
- }
/// Create a JS<T> from a Root<T>
/// XXX Not a great API. Should be a call on Root<T> instead
#[allow(unrooted_must_root)]
@@ -291,7 +287,7 @@ impl<T: Reflectable> MutHeap<JS<T>> {
pub fn get(&self) -> Root<T> {
debug_assert!(task_state::get().is_script());
unsafe {
- ptr::read(self.val.get()).root()
+ Root::from_ref(&*ptr::read(self.val.get()))
}
}
}
@@ -369,7 +365,7 @@ impl<T: Reflectable> MutNullableHeap<JS<T>> {
pub fn get(&self) -> Option<Root<T>> {
debug_assert!(task_state::get().is_script());
unsafe {
- ptr::read(self.ptr.get()).map(|o| o.root())
+ ptr::read(self.ptr.get()).map(|o| Root::from_ref(&*o))
}
}
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index aa7936f69f5..a42e98a1a03 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -148,7 +148,7 @@ impl CanvasRenderingContext2D {
}
fn mark_as_dirty(&self) {
- self.canvas.root().upcast::<Node>().dirty(NodeDamage::OtherNodeDamage);
+ self.canvas.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage);
}
fn update_transform(&self) {
@@ -290,7 +290,7 @@ impl CanvasRenderingContext2D {
let smoothing_enabled = self.state.borrow().image_smoothing_enabled;
// If the source and target canvas are the same
- let msg = if self.canvas.root().r() == canvas {
+ let msg = if &*self.canvas == canvas {
CanvasMsg::Canvas2d(Canvas2dMsg::DrawImageSelf(image_size, dest_rect, source_rect, smoothing_enabled))
} else { // Source and target canvases are different
let context = match canvas.get_or_init_2d_context() {
@@ -367,8 +367,7 @@ impl CanvasRenderingContext2D {
#[inline]
fn request_image_from_cache(&self, url: Url) -> ImageResponse {
- let canvas = self.canvas.root();
- let window = window_from_node(canvas.r());
+ let window = window_from_node(&*self.canvas);
canvas_utils::request_image_from_cache(window.r(), url)
}
@@ -422,7 +421,7 @@ impl LayoutCanvasRenderingContext2DHelpers for LayoutJS<CanvasRenderingContext2D
impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
// https://html.spec.whatwg.org/multipage/#dom-context-2d-canvas
fn Canvas(&self) -> Root<HTMLCanvasElement> {
- self.canvas.root()
+ Root::from_ref(&*self.canvas)
}
// https://html.spec.whatwg.org/multipage/#dom-context-2d-save
@@ -764,7 +763,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
StringOrCanvasGradientOrCanvasPattern::eString(result)
},
CanvasFillOrStrokeStyle::Gradient(ref gradient) => {
- StringOrCanvasGradientOrCanvasPattern::eCanvasGradient(gradient.root())
+ StringOrCanvasGradientOrCanvasPattern::eCanvasGradient(Root::from_ref(&*gradient))
},
}
}
@@ -804,7 +803,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
StringOrCanvasGradientOrCanvasPattern::eString(result)
},
CanvasFillOrStrokeStyle::Gradient(ref gradient) => {
- StringOrCanvasGradientOrCanvasPattern::eCanvasGradient(gradient.root())
+ StringOrCanvasGradientOrCanvasPattern::eCanvasGradient(Root::from_ref(&*gradient))
},
}
}
@@ -881,7 +880,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
let (sender, receiver) = ipc::channel::<Vec<u8>>().unwrap();
let dest_rect = Rect::new(Point2D::new(sx.to_i32().unwrap(), sy.to_i32().unwrap()),
Size2D::new(sw as i32, sh as i32));
- let canvas_size = self.canvas.root().r().get_size();
+ let canvas_size = self.canvas.get_size();
let canvas_size = Size2D::new(canvas_size.width as f64, canvas_size.height as f64);
self.ipc_renderer
.send(CanvasMsg::Canvas2d(Canvas2dMsg::GetImageData(dest_rect, canvas_size, sender)))
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 0a94f9f5504..4559bb0981c 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -391,8 +391,7 @@ impl Document {
None => false,
Some(elements) => {
let position = elements.iter()
- .map(|elem| elem.root())
- .position(|element| element.r() == to_unregister)
+ .position(|element| &**element == to_unregister)
.expect("This element should be in registered.");
elements.remove(position);
elements.is_empty()
@@ -428,7 +427,7 @@ impl Document {
let root = root.upcast::<Node>();
for node in root.traverse_preorder() {
if let Some(elem) = node.downcast() {
- if (*elements)[head].root().r() == elem {
+ if &*(*elements)[head] == elem {
head += 1;
}
if new_node == node.r() || head == elements.len() {
@@ -685,8 +684,7 @@ impl Document {
// under the mouse.
for target in prev_mouse_over_targets.iter() {
if !mouse_over_targets.contains(target) {
- let target = target.root();
- let target_ref = target.r();
+ let target_ref = &**target;
if target_ref.get_hover_state() {
target_ref.set_hover_state(false);
@@ -749,27 +747,27 @@ impl Document {
},
};
let target = el.upcast::<EventTarget>();
- let window = self.window.root();
+ let window = &*self.window;
let client_x = Finite::wrap(point.x as f64);
let client_y = Finite::wrap(point.y as f64);
let page_x = Finite::wrap(point.x as f64 + window.PageXOffset() as f64);
let page_y = Finite::wrap(point.y as f64 + window.PageYOffset() as f64);
- let touch = Touch::new(window.r(), identifier, target,
+ let touch = Touch::new(window, identifier, target,
client_x, client_y, // TODO: Get real screen coordinates?
client_x, client_y,
page_x, page_y);
let mut touches = RootedVec::new();
touches.push(JS::from_rooted(&touch));
- let touches = TouchList::new(window.r(), touches.r());
+ let touches = TouchList::new(window, touches.r());
- let event = TouchEvent::new(window.r(),
+ let event = TouchEvent::new(window,
event_name,
EventBubbles::Bubbles,
EventCancelable::Cancelable,
- Some(window.r()),
+ Some(window),
0i32,
&touches, &touches, &touches,
// FIXME: modifier keys
@@ -777,9 +775,9 @@ impl Document {
let event = event.upcast::<Event>();
let result = event.fire(target);
- window.r().reflow(ReflowGoal::ForDisplay,
- ReflowQueryType::NoQuery,
- ReflowReason::MouseEvent);
+ window.reflow(ReflowGoal::ForDisplay,
+ ReflowQueryType::NoQuery,
+ ReflowReason::MouseEvent);
result
}
@@ -1089,13 +1087,15 @@ impl Document {
}
let mut deferred_scripts = self.deferred_scripts.borrow_mut();
while !deferred_scripts.is_empty() {
- let script = deferred_scripts[0].root();
- // Part of substep 1.
- if !script.is_ready_to_be_executed() {
- return;
+ {
+ let script = &*deferred_scripts[0];
+ // Part of substep 1.
+ if !script.is_ready_to_be_executed() {
+ return;
+ }
+ // Substep 2.
+ script.execute();
}
- // Substep 2.
- script.execute();
// Substep 3.
deferred_scripts.remove(0);
// Substep 4 (implicit).
@@ -1110,7 +1110,7 @@ impl Document {
// Execute the first in-order asap-executed script if it's ready, repeat as required.
// Re-borrowing the list for each step because it can also be borrowed under execute.
while self.asap_in_order_scripts_list.borrow().len() > 0 {
- let script = self.asap_in_order_scripts_list.borrow()[0].root();
+ let script = Root::from_ref(&*self.asap_in_order_scripts_list.borrow()[0]);
if !script.r().is_ready_to_be_executed() {
break;
}
@@ -1121,7 +1121,7 @@ impl Document {
let mut idx = 0;
// Re-borrowing the set for each step because it can also be borrowed under execute.
while idx < self.asap_scripts_set.borrow().len() {
- let script = self.asap_scripts_set.borrow()[idx].root();
+ let script = Root::from_ref(&*self.asap_scripts_set.borrow()[idx]);
if !script.r().is_ready_to_be_executed() {
idx += 1;
continue;
@@ -1332,7 +1332,7 @@ impl Document {
}
pub fn get_element_by_id(&self, id: &Atom) -> Option<Root<Element>> {
- self.idmap.borrow().get(&id).map(|ref elements| (*elements)[0].root())
+ self.idmap.borrow().get(&id).map(|ref elements| Root::from_ref(&*(*elements)[0]))
}
pub fn record_element_state_change(&self, el: &Element, which: ElementState) {
@@ -1925,7 +1925,7 @@ impl DocumentMethods for Document {
// https://html.spec.whatwg.org/multipage/#dom-document-defaultview
fn DefaultView(&self) -> Root<Window> {
- self.window.root()
+ Root::from_ref(&*self.window)
}
// https://html.spec.whatwg.org/multipage/#dom-document-cookie
diff --git a/components/script/dom/domrectlist.rs b/components/script/dom/domrectlist.rs
index cd67dbc28c7..963d97df623 100644
--- a/components/script/dom/domrectlist.rs
+++ b/components/script/dom/domrectlist.rs
@@ -42,7 +42,7 @@ impl DOMRectListMethods for DOMRectList {
fn Item(&self, index: u32) -> Option<Root<DOMRect>> {
let rects = &self.rects;
if index < rects.len() as u32 {
- Some(rects[index as usize].root())
+ Some(Root::from_ref(&*rects[index as usize]))
} else {
None
}
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 46628935bb1..eaee0d241f0 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -874,16 +874,15 @@ impl Element {
}
pub fn get_attribute(&self, namespace: &Namespace, local_name: &Atom) -> Option<Root<Attr>> {
- self.attrs.borrow().iter().map(JS::root).find(|attr| {
+ self.attrs.borrow().iter().find(|attr| {
attr.local_name() == local_name && attr.namespace() == namespace
- })
+ }).map(|js| Root::from_ref(&**js))
}
// https://dom.spec.whatwg.org/#concept-element-attributes-get-by-name
pub fn get_attribute_by_name(&self, name: DOMString) -> Option<Root<Attr>> {
let name = &self.parsed_name(name);
- self.attrs.borrow().iter().map(JS::root)
- .find(|a| a.r().name() == name)
+ self.attrs.borrow().iter().find(|a| a.name() == name).map(|js| Root::from_ref(&**js))
}
pub fn set_attribute_from_parser(&self,
@@ -891,8 +890,8 @@ impl Element {
value: DOMString,
prefix: Option<Atom>) {
// Don't set if the attribute already exists, so we can handle add_attrs_if_missing
- if self.attrs.borrow().iter().map(JS::root)
- .any(|a| *a.r().local_name() == qname.local && *a.r().namespace() == qname.ns) {
+ if self.attrs.borrow().iter()
+ .any(|a| *a.local_name() == qname.local && *a.namespace() == qname.ns) {
return;
}
@@ -942,7 +941,8 @@ impl Element {
find: F)
where F: Fn(&Attr)
-> bool {
- let attr = self.attrs.borrow().iter().map(JS::root).find(|attr| find(&attr));
+ let attr = self.attrs.borrow().iter()
+ .find(|attr| find(&attr)).map(|js| Root::from_ref(&**js));
if let Some(attr) = attr {
attr.set_value(value, self);
} else {
@@ -973,10 +973,10 @@ impl Element {
fn remove_first_matching_attribute<F>(&self, find: F) -> Option<Root<Attr>>
where F: Fn(&Attr) -> bool
{
- let idx = self.attrs.borrow().iter().map(JS::root).position(|attr| find(&attr));
+ let idx = self.attrs.borrow().iter().position(|attr| find(&attr));
idx.map(|idx| {
- let attr = (*self.attrs.borrow())[idx].root();
+ let attr = Root::from_ref(&*(*self.attrs.borrow())[idx]);
self.attrs.borrow_mut().remove(idx);
attr.set_owner(None);
if attr.namespace() == &ns!("") {
@@ -1005,8 +1005,8 @@ impl Element {
pub fn has_attribute(&self, local_name: &Atom) -> bool {
assert!(local_name.bytes().all(|b| b.to_ascii_lowercase() == b));
- self.attrs.borrow().iter().map(JS::root).any(|attr| {
- attr.r().local_name() == local_name && attr.r().namespace() == &ns!("")
+ self.attrs.borrow().iter().any(|attr| {
+ attr.local_name() == local_name && attr.namespace() == &ns!("")
})
}
@@ -1695,8 +1695,8 @@ impl<'a> ::selectors::Element for Root<Element> {
})
},
NamespaceConstraint::Any => {
- self.attrs.borrow().iter().map(JS::root).any(|attr| {
- attr.local_name() == local_name && test(&attr.value())
+ self.attrs.borrow().iter().any(|attr| {
+ attr.local_name() == local_name && test(&attr.value())
})
}
}
diff --git a/components/script/dom/filelist.rs b/components/script/dom/filelist.rs
index d695ac8f43a..78a9ee30012 100644
--- a/components/script/dom/filelist.rs
+++ b/components/script/dom/filelist.rs
@@ -40,7 +40,7 @@ impl FileListMethods for FileList {
// https://w3c.github.io/FileAPI/#dfn-item
fn Item(&self, index: u32) -> Option<Root<File>> {
- Some(self.list[index as usize].root())
+ Some(Root::from_ref(&*(self.list[index as usize])))
}
// check-tidy: no specs after this line
diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs
index a51e058b864..5956aadd26c 100644
--- a/components/script/dom/formdata.rs
+++ b/components/script/dom/formdata.rs
@@ -90,7 +90,7 @@ impl FormDataMethods for FormData {
.get(&name)
.map(|entry| match entry[0] {
FormDatum::StringData(ref s) => eString(s.clone()),
- FormDatum::FileData(ref f) => eFile(f.root()),
+ FormDatum::FileData(ref f) => eFile(Root::from_ref(&*f)),
})
}
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index 47126ed3dd0..67894f36429 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -153,7 +153,7 @@ impl HTMLCanvasElement {
}
match *self.context.borrow().as_ref().unwrap() {
- CanvasContext::Context2d(ref context) => Some(context.root()),
+ CanvasContext::Context2d(ref context) => Some(Root::from_ref(&*context)),
_ => None,
}
}
@@ -182,7 +182,7 @@ impl HTMLCanvasElement {
}
if let Some(CanvasContext::WebGL(ref context)) = *self.context.borrow() {
- Some(context.root())
+ Some(Root::from_ref(&*context))
} else {
None
}
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index 4ddc0fef6dd..62335a33a6e 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -164,7 +164,7 @@ impl HTMLCollection {
pub fn elements_iter(&self) -> HTMLCollectionElementsIter {
let ref filter = self.collection.1;
- let root = self.collection.0.root();
+ let root = Root::from_ref(&*self.collection.0);
let mut node_iter = root.traverse_preorder();
let _ = node_iter.next(); // skip the root node
HTMLCollectionElementsIter {
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs
index bb52cbc2402..6ebf0106099 100644
--- a/components/script/dom/htmlelement.rs
+++ b/components/script/dom/htmlelement.rs
@@ -360,8 +360,8 @@ impl HTMLElement {
pub fn supported_prop_names_custom_attr(&self) -> Vec<DOMString> {
let element = self.upcast::<Element>();
- element.attrs().iter().map(JS::root).filter_map(|attr| {
- let raw_name = attr.r().local_name();
+ element.attrs().iter().filter_map(|attr| {
+ let raw_name = attr.local_name();
to_camel_case(&raw_name)
}).collect()
}
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 118c0648e77..4f1b0ca135a 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -364,7 +364,7 @@ impl HTMLScriptElement {
// Step 1.
let doc = document_from_node(self);
- if self.parser_inserted.get() && doc.r() != self.parser_document.root().r() {
+ if self.parser_inserted.get() && &*doc != &*self.parser_document {
return;
}
diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs
index 5c78de0ed51..fc344e78ccf 100644
--- a/components/script/dom/namednodemap.rs
+++ b/components/script/dom/namednodemap.rs
@@ -42,7 +42,7 @@ impl NamedNodeMapMethods for NamedNodeMap {
// https://dom.spec.whatwg.org/#dom-namednodemap-item
fn Item(&self, index: u32) -> Option<Root<Attr>> {
- self.owner.attrs().get(index as usize).map(JS::root)
+ self.owner.attrs().get(index as usize).map(|js| Root::from_ref(&**js))
}
// https://dom.spec.whatwg.org/#dom-namednodemap-getnameditem
@@ -87,7 +87,7 @@ impl NamedNodeMapMethods for NamedNodeMap {
// https://heycam.github.io/webidl/#dfn-supported-property-names
fn SupportedPropertyNames(&self) -> Vec<DOMString> {
- self.owner.attrs().iter().map(JS::root).map(|attr| {
+ self.owner.attrs().iter().map(|attr| {
(**attr.name()).to_owned()
}).collect()
}
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index c5a891d56db..a8dd8972ca0 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -1648,7 +1648,7 @@ impl Node {
let node_elem = node.downcast::<Element>().unwrap();
let copy_elem = copy.downcast::<Element>().unwrap();
- for attr in node_elem.attrs().iter().map(JS::root) {
+ for attr in node_elem.attrs().iter() {
copy_elem.push_new_attribute(attr.local_name().clone(),
attr.value().clone(),
attr.name().clone(),
@@ -1719,12 +1719,10 @@ impl Node {
let prefix_atom = prefix.as_ref().map(|s| Atom::from_slice(s));
// Step 2.
- let namespace_attr =
- element.attrs()
- .iter()
- .map(|attr| attr.root())
- .find(|attr| attr_defines_namespace(attr.r(),
- &prefix_atom));
+ let attrs = element.attrs();
+ let namespace_attr = attrs.iter().find(|attr| {
+ attr_defines_namespace(attr, &prefix_atom)
+ });
// Steps 2.1-2.
if let Some(attr) = namespace_attr {
@@ -2154,12 +2152,10 @@ impl NodeMethods for Node {
// FIXME(https://github.com/rust-lang/rust/issues/23338)
let attrs = element.attrs();
attrs.iter().all(|attr| {
- let attr = attr.root();
other_element.attrs().iter().any(|other_attr| {
- let other_attr = other_attr.root();
- (*attr.r().namespace() == *other_attr.r().namespace()) &&
- (attr.r().local_name() == other_attr.r().local_name()) &&
- (**attr.r().value() == **other_attr.r().value())
+ (*attr.namespace() == *other_attr.namespace()) &&
+ (attr.local_name() == other_attr.local_name()) &&
+ (**attr.value() == **other_attr.value())
})
})
}
diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs
index 27a99ec3b55..762d2233c6c 100644
--- a/components/script/dom/nodeiterator.rs
+++ b/components/script/dom/nodeiterator.rs
@@ -67,7 +67,7 @@ impl NodeIterator {
impl NodeIteratorMethods for NodeIterator {
// https://dom.spec.whatwg.org/#dom-nodeiterator-root
fn Root(&self) -> Root<Node> {
- self.root_node.root()
+ Root::from_ref(&*self.root_node)
}
// https://dom.spec.whatwg.org/#dom-nodeiterator-whattoshow
diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs
index 490df73bd56..68e3b7ee424 100644
--- a/components/script/dom/nodelist.rs
+++ b/components/script/dom/nodelist.rs
@@ -66,7 +66,7 @@ impl NodeListMethods for NodeList {
fn Item(&self, index: u32) -> Option<Root<Node>> {
match self.list_type {
NodeListType::Simple(ref elems) => {
- elems.get(index as usize).map(|node| node.root())
+ elems.get(index as usize).map(|node| Root::from_ref(&**node))
},
NodeListType::Children(ref list) => list.item(index),
}
diff --git a/components/script/dom/performance.rs b/components/script/dom/performance.rs
index b8b6c17ef09..591cb5472c4 100644
--- a/components/script/dom/performance.rs
+++ b/components/script/dom/performance.rs
@@ -46,7 +46,7 @@ impl Performance {
impl PerformanceMethods for Performance {
// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#performance-timing-attribute
fn Timing(&self) -> Root<PerformanceTiming> {
- self.timing.root()
+ Root::from_ref(&*self.timing)
}
// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime/Overview.html#dom-performance-now
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index 3a4a59ba3af..433c1085aef 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -45,7 +45,7 @@ impl Sink {
#[allow(unrooted_must_root)] // method is only run at parse time
pub fn get_or_create(&self, child: NodeOrText<JS<Node>>) -> Root<Node> {
match child {
- NodeOrText::AppendNode(n) => n.root(),
+ NodeOrText::AppendNode(n) => Root::from_ref(&*n),
NodeOrText::AppendText(t) => {
let text = Text::new(t.into(), &self.document);
Root::upcast(text)
diff --git a/components/script/dom/touchlist.rs b/components/script/dom/touchlist.rs
index 5806f945008..f964a1ff250 100644
--- a/components/script/dom/touchlist.rs
+++ b/components/script/dom/touchlist.rs
@@ -38,7 +38,7 @@ impl TouchListMethods for TouchList {
/// https://w3c.github.io/touch-events/#widl-TouchList-item-getter-Touch-unsigned-long-index
fn Item(&self, index: u32) -> Option<Root<Touch>> {
- self.touches.get(index as usize).map(JS::root)
+ self.touches.get(index as usize).map(|js| Root::from_ref(&**js))
}
/// https://w3c.github.io/touch-events/#widl-TouchList-item-getter-Touch-unsigned-long-index
diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs
index f19e8383ddf..2bd5cc706e7 100644
--- a/components/script/dom/treewalker.rs
+++ b/components/script/dom/treewalker.rs
@@ -65,7 +65,7 @@ impl TreeWalker {
impl TreeWalkerMethods for TreeWalker {
// https://dom.spec.whatwg.org/#dom-treewalker-root
fn Root(&self) -> Root<Node> {
- self.root_node.root()
+ Root::from_ref(&*self.root_node)
}
// https://dom.spec.whatwg.org/#dom-treewalker-whattoshow
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index aa92967cb1e..07ac00000a2 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -153,7 +153,7 @@ impl WebGLRenderingContext {
}
fn mark_as_dirty(&self) {
- self.canvas.root().upcast::<Node>().dirty(NodeDamage::OtherNodeDamage);
+ self.canvas.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage);
}
}
@@ -166,7 +166,7 @@ impl Drop for WebGLRenderingContext {
impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1
fn Canvas(&self) -> Root<HTMLCanvasElement> {
- self.canvas.root()
+ Root::from_ref(&*self.canvas)
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1
@@ -848,8 +848,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
None => return,
};
- let canvas = self.canvas.root();
- let window = window_from_node(canvas.r());
+ let window = window_from_node(&*self.canvas);
let img = match canvas_utils::request_image_from_cache(window.r(), img_url) {
ImageResponse::Loaded(img) => img,
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 39b86117b34..c5f8ef62556 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -465,7 +465,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
// https://xhr.spec.whatwg.org/#the-upload-attribute
fn Upload(&self) -> Root<XMLHttpRequestUpload> {
- self.upload.root()
+ Root::from_ref(&*self.upload)
}
// https://xhr.spec.whatwg.org/#the-send()-method