Move the definition of ServoThreadSafeLayoutNode::canvas_data to script.

This commit is contained in:
Ms2ger 2016-06-07 11:10:40 +02:00
parent ef3c6a7773
commit 5859109197
2 changed files with 10 additions and 5 deletions

View file

@ -46,7 +46,7 @@ use script::dom::bindings::js::LayoutJS;
use script::dom::characterdata::LayoutCharacterDataHelpers; use script::dom::characterdata::LayoutCharacterDataHelpers;
use script::dom::document::{Document, LayoutDocumentHelpers}; 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::HTMLCanvasData;
use script::dom::htmliframeelement::HTMLIFrameElement; use script::dom::htmliframeelement::HTMLIFrameElement;
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};
@ -1151,10 +1151,8 @@ impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> {
} }
fn canvas_data(&self) -> Option<HTMLCanvasData> { fn canvas_data(&self) -> Option<HTMLCanvasData> {
unsafe { let this = unsafe { self.get_jsmanaged() };
let canvas_element = self.get_jsmanaged().downcast(); this.canvas_data()
canvas_element.map(|canvas| canvas.data())
}
} }
fn iframe_pipeline_id(&self) -> PipelineId { fn iframe_pipeline_id(&self) -> PipelineId {

View file

@ -38,6 +38,7 @@ use dom::documenttype::DocumentType;
use dom::element::{Element, ElementCreator}; use dom::element::{Element, ElementCreator};
use dom::eventtarget::EventTarget; use dom::eventtarget::EventTarget;
use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlbodyelement::HTMLBodyElement;
use dom::htmlcanvaselement::{LayoutHTMLCanvasElementHelpers, HTMLCanvasData};
use dom::htmlcollection::HTMLCollection; use dom::htmlcollection::HTMLCollection;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
use dom::htmlimageelement::{HTMLImageElement, LayoutHTMLImageElementHelpers}; use dom::htmlimageelement::{HTMLImageElement, LayoutHTMLImageElementHelpers};
@ -965,6 +966,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>; fn image_url(&self) -> Option<Url>;
fn canvas_data(&self) -> Option<HTMLCanvasData>;
} }
impl LayoutNodeHelpers for LayoutJS<Node> { impl LayoutNodeHelpers for LayoutJS<Node> {
@ -1094,6 +1096,11 @@ impl LayoutNodeHelpers for LayoutJS<Node> {
.image_url() .image_url()
} }
} }
fn canvas_data(&self) -> Option<HTMLCanvasData> {
self.downcast()
.map(|canvas| canvas.data())
}
} }