Move the definition of ServoThreadSafeLayoutNode::iframe_pipeline_id to script.

This commit is contained in:
Ms2ger 2016-06-07 11:39:28 +02:00
parent 5859109197
commit 858ea2eb9a
2 changed files with 11 additions and 7 deletions

View file

@ -47,7 +47,6 @@ 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::HTMLCanvasData; use script::dom::htmlcanvaselement::HTMLCanvasData;
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};
use script::dom::text::Text; use script::dom::text::Text;
@ -1156,12 +1155,8 @@ impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> {
} }
fn iframe_pipeline_id(&self) -> PipelineId { fn iframe_pipeline_id(&self) -> PipelineId {
use script::dom::htmliframeelement::HTMLIFrameElementLayoutMethods; let this = unsafe { self.get_jsmanaged() };
unsafe { this.iframe_pipeline_id()
let iframe_element = self.get_jsmanaged().downcast::<HTMLIFrameElement>()
.expect("not an iframe element!");
iframe_element.pipeline_id().unwrap()
}
} }
fn get_colspan(&self) -> u32 { fn get_colspan(&self) -> u32 {

View file

@ -41,6 +41,7 @@ use dom::htmlbodyelement::HTMLBodyElement;
use dom::htmlcanvaselement::{LayoutHTMLCanvasElementHelpers, HTMLCanvasData}; use dom::htmlcanvaselement::{LayoutHTMLCanvasElementHelpers, HTMLCanvasData};
use dom::htmlcollection::HTMLCollection; use dom::htmlcollection::HTMLCollection;
use dom::htmlelement::HTMLElement; use dom::htmlelement::HTMLElement;
use dom::htmliframeelement::{HTMLIFrameElement, HTMLIFrameElementLayoutMethods};
use dom::htmlimageelement::{HTMLImageElement, LayoutHTMLImageElementHelpers}; 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};
@ -58,6 +59,7 @@ use html5ever::tree_builder::QuirksMode;
use js::jsapi::{JSContext, JSObject, JSRuntime}; use js::jsapi::{JSContext, JSObject, JSRuntime};
use layout_interface::Msg; use layout_interface::Msg;
use libc::{self, c_void, uintptr_t}; use libc::{self, c_void, uintptr_t};
use msg::constellation_msg::PipelineId;
use parse::html::parse_html_fragment; use parse::html::parse_html_fragment;
use ref_slice::ref_slice; use ref_slice::ref_slice;
use script_traits::UntrustedNodeAddress; use script_traits::UntrustedNodeAddress;
@ -967,6 +969,7 @@ pub trait LayoutNodeHelpers {
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>; fn canvas_data(&self) -> Option<HTMLCanvasData>;
fn iframe_pipeline_id(&self) -> PipelineId;
} }
impl LayoutNodeHelpers for LayoutJS<Node> { impl LayoutNodeHelpers for LayoutJS<Node> {
@ -1101,6 +1104,12 @@ impl LayoutNodeHelpers for LayoutJS<Node> {
self.downcast() self.downcast()
.map(|canvas| canvas.data()) .map(|canvas| canvas.data())
} }
fn iframe_pipeline_id(&self) -> PipelineId {
let iframe_element = self.downcast::<HTMLIFrameElement>()
.expect("not an iframe element!");
iframe_element.pipeline_id().unwrap()
}
} }