Remove unsound Root::deref() calls in HTML elements.

This commit is contained in:
Ms2ger 2015-01-01 18:36:37 +01:00
parent 6032a2f8af
commit d09d245ee1
5 changed files with 8 additions and 3 deletions

View file

@ -112,6 +112,7 @@ impl<'a> HTMLIFrameElementHelpers for JSRef<'a, HTMLIFrameElement> {
// Subpage Id // Subpage Id
let window = window_from_node(self).root(); let window = window_from_node(self).root();
let window = window.r();
let page = window.page(); let page = window.page();
let subpage_id = page.get_next_subpage_id(); let subpage_id = page.get_next_subpage_id();

View file

@ -46,6 +46,7 @@ impl<'a> PrivateHTMLImageElementHelpers for JSRef<'a, HTMLImageElement> {
let node: JSRef<Node> = NodeCast::from_ref(self); let node: JSRef<Node> = NodeCast::from_ref(self);
let document = node.owner_doc().root(); let document = node.owner_doc().root();
let window = document.r().window().root(); let window = document.r().window().root();
let window = window.r();
let image_cache = window.image_cache_task(); let image_cache = window.image_cache_task();
match value { match value {
None => { None => {

View file

@ -127,7 +127,8 @@ trait PrivateHTMLLinkElementHelpers {
impl<'a> PrivateHTMLLinkElementHelpers for JSRef<'a, HTMLLinkElement> { impl<'a> PrivateHTMLLinkElementHelpers for JSRef<'a, HTMLLinkElement> {
fn handle_stylesheet_url(self, href: &str) { fn handle_stylesheet_url(self, href: &str) {
let window = window_from_node(self).root(); let window = window_from_node(self).root();
match UrlParser::new().base_url(&window.r().page().get_url()).parse(href) { let window = window.r();
match UrlParser::new().base_url(&window.page().get_url()).parse(href) {
Ok(url) => { Ok(url) => {
let LayoutChan(ref layout_chan) = window.page().layout_chan; let LayoutChan(ref layout_chan) = window.page().layout_chan;
layout_chan.send(Msg::LoadStylesheet(url)); layout_chan.send(Msg::LoadStylesheet(url));

View file

@ -170,6 +170,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
// TODO: Add support for the `defer` and `async` attributes. (For now, we fetch all // TODO: Add support for the `defer` and `async` attributes. (For now, we fetch all
// scripts synchronously and execute them immediately.) // scripts synchronously and execute them immediately.)
let window = window_from_node(self).root(); let window = window_from_node(self).root();
let window = window.r();
let page = window.page(); let page = window.page();
let base_url = page.get_url(); let base_url = page.get_url();
@ -207,9 +208,9 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> {
None => (text, base_url) None => (text, base_url)
}; };
window.r().evaluate_script_with_result(source.as_slice(), url.serialize().as_slice()); window.evaluate_script_with_result(source.as_slice(), url.serialize().as_slice());
let event = Event::new(GlobalRef::Window(window.r()), let event = Event::new(GlobalRef::Window(window),
"load".into_string(), "load".into_string(),
EventBubbles::DoesNotBubble, EventBubbles::DoesNotBubble,
EventCancelable::NotCancelable).root(); EventCancelable::NotCancelable).root();

View file

@ -51,6 +51,7 @@ impl<'a> StyleElementHelpers for JSRef<'a, HTMLStyleElement> {
assert!(node.is_in_doc()); assert!(node.is_in_doc());
let win = window_from_node(node).root(); let win = window_from_node(node).root();
let win = win.r();
let url = win.page().get_url(); let url = win.page().get_url();
let data = node.GetTextContent().expect("Element.textContent must be a string"); let data = node.GetTextContent().expect("Element.textContent must be a string");