diff options
author | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2018-08-27 16:47:08 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2018-10-08 16:12:00 +0200 |
commit | da5d1d462ffa47a13ea880e345edb8db7a8a353c (patch) | |
tree | ca7344980b34ef443a938218810cb227186a1a11 /components/script/dom/node.rs | |
parent | 74a9edfed329fe6927a977b2ebd1a40e741a92de (diff) | |
download | servo-da5d1d462ffa47a13ea880e345edb8db7a8a353c.tar.gz servo-da5d1d462ffa47a13ea880e345edb8db7a8a353c.zip |
dom: add media_data() method to LayoutDom implementation
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 8fa494767f6..0c48d3d2df3 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -43,6 +43,7 @@ use dom::htmliframeelement::{HTMLIFrameElement, HTMLIFrameElementLayoutMethods}; use dom::htmlimageelement::{HTMLImageElement, LayoutHTMLImageElementHelpers}; use dom::htmlinputelement::{HTMLInputElement, LayoutHTMLInputElementHelpers}; use dom::htmllinkelement::HTMLLinkElement; +use dom::htmlmediaelement::{HTMLMediaElement, LayoutHTMLMediaElementHelpers}; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlstyleelement::HTMLStyleElement; use dom::htmltextareaelement::{HTMLTextAreaElement, LayoutHTMLTextAreaElementHelpers}; @@ -62,9 +63,11 @@ use libc::{self, c_void, uintptr_t}; use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use msg::constellation_msg::{BrowsingContextId, PipelineId}; use ref_slice::ref_slice; -use script_layout_interface::{HTMLCanvasData, OpaqueStyleAndLayoutData, SVGSVGData}; -use script_layout_interface::{LayoutElementType, LayoutNodeType, TrustedNodeAddress}; use script_layout_interface::message::Msg; +use script_layout_interface::{ + HTMLCanvasData, HTMLMediaData, LayoutElementType, LayoutNodeType, OpaqueStyleAndLayoutData, + SVGSVGData, TrustedNodeAddress, +}; use script_thread::ScriptThread; use script_traits::DocumentActivity; use script_traits::UntrustedNodeAddress; @@ -1086,6 +1089,7 @@ pub trait LayoutNodeHelpers { fn image_url(&self) -> Option<ServoUrl>; fn image_density(&self) -> Option<f64>; fn canvas_data(&self) -> Option<HTMLCanvasData>; + fn media_data(&self) -> Option<HTMLMediaData>; fn svg_data(&self) -> Option<SVGSVGData>; fn iframe_browsing_context_id(&self) -> Option<BrowsingContextId>; fn iframe_pipeline_id(&self) -> Option<PipelineId>; @@ -1245,6 +1249,11 @@ impl LayoutNodeHelpers for LayoutDom<Node> { .map(|canvas| canvas.data()) } + fn media_data(&self) -> Option<HTMLMediaData> { + self.downcast::<HTMLMediaElement>() + .map(|media| media.data()) + } + fn svg_data(&self) -> Option<SVGSVGData> { self.downcast::<SVGSVGElement>().map(|svg| svg.data()) } @@ -2911,6 +2920,9 @@ impl Into<LayoutElementType> for ElementTypeId { ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLImageElement) => { LayoutElementType::HTMLImageElement }, + ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLMediaElement(_)) => { + LayoutElementType::HTMLMediaElement + }, ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLInputElement) => { LayoutElementType::HTMLInputElement }, |