Move the definition of ServoThreadSafeLayoutNode::image_url to script.

This commit is contained in:
Ms2ger 2016-06-07 10:57:20 +02:00
parent 093b7b7710
commit ef3c6a7773
2 changed files with 14 additions and 6 deletions

View file

@ -48,7 +48,6 @@ use script::dom::document::{Document, LayoutDocumentHelpers};
use script::dom::element::{Element, LayoutElementHelpers, RawLayoutElementHelpers}; use script::dom::element::{Element, LayoutElementHelpers, RawLayoutElementHelpers};
use script::dom::htmlcanvaselement::{LayoutHTMLCanvasElementHelpers, HTMLCanvasData}; use script::dom::htmlcanvaselement::{LayoutHTMLCanvasElementHelpers, HTMLCanvasData};
use script::dom::htmliframeelement::HTMLIFrameElement; use script::dom::htmliframeelement::HTMLIFrameElement;
use script::dom::htmlimageelement::LayoutHTMLImageElementHelpers;
use script::dom::node::{CAN_BE_FRAGMENTED, HAS_CHANGED, HAS_DIRTY_DESCENDANTS, IS_DIRTY}; use script::dom::node::{CAN_BE_FRAGMENTED, HAS_CHANGED, HAS_DIRTY_DESCENDANTS, IS_DIRTY};
use script::dom::node::{LayoutNodeHelpers, Node, OpaqueStyleAndLayoutData}; use script::dom::node::{LayoutNodeHelpers, Node, OpaqueStyleAndLayoutData};
use script::dom::text::Text; use script::dom::text::Text;
@ -1147,11 +1146,8 @@ impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> {
} }
fn image_url(&self) -> Option<Url> { fn image_url(&self) -> Option<Url> {
unsafe { let this = unsafe { self.get_jsmanaged() };
self.get_jsmanaged().downcast() this.image_url()
.expect("not an image!")
.image_url()
}
} }
fn canvas_data(&self) -> Option<HTMLCanvasData> { fn canvas_data(&self) -> Option<HTMLCanvasData> {

View file

@ -40,6 +40,7 @@ use dom::eventtarget::EventTarget;
use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlbodyelement::HTMLBodyElement;
use dom::htmlcollection::HTMLCollection; use dom::htmlcollection::HTMLCollection;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
use dom::htmlimageelement::{HTMLImageElement, LayoutHTMLImageElementHelpers};
use dom::htmlinputelement::{HTMLInputElement, LayoutHTMLInputElementHelpers}; use dom::htmlinputelement::{HTMLInputElement, LayoutHTMLInputElementHelpers};
use dom::htmltextareaelement::{HTMLTextAreaElement, LayoutHTMLTextAreaElementHelpers}; use dom::htmltextareaelement::{HTMLTextAreaElement, LayoutHTMLTextAreaElementHelpers};
use dom::nodelist::NodeList; use dom::nodelist::NodeList;
@ -71,6 +72,7 @@ use std::mem;
use std::ops::Range; use std::ops::Range;
use string_cache::{Atom, Namespace, QualName}; use string_cache::{Atom, Namespace, QualName};
use style::selector_impl::ServoSelectorImpl; use style::selector_impl::ServoSelectorImpl;
use url::Url;
use util::thread_state; use util::thread_state;
use uuid::Uuid; use uuid::Uuid;
@ -962,6 +964,7 @@ pub trait LayoutNodeHelpers {
fn text_content(&self) -> String; fn text_content(&self) -> String;
fn selection(&self) -> Option<Range<usize>>; fn selection(&self) -> Option<Range<usize>>;
fn image_url(&self) -> Option<Url>;
} }
impl LayoutNodeHelpers for LayoutJS<Node> { impl LayoutNodeHelpers for LayoutJS<Node> {
@ -1082,6 +1085,15 @@ impl LayoutNodeHelpers for LayoutJS<Node> {
None None
} }
#[allow(unsafe_code)]
fn image_url(&self) -> Option<Url> {
unsafe {
self.downcast::<HTMLImageElement>()
.expect("not an image!")
.image_url()
}
}
} }