aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/macros.rs')
-rw-r--r--components/script/dom/macros.rs129
1 files changed, 0 insertions, 129 deletions
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs
index c64902d8f94..a566fee4fb6 100644
--- a/components/script/dom/macros.rs
+++ b/components/script/dom/macros.rs
@@ -632,132 +632,3 @@ macro_rules! handle_potential_webgl_error {
handle_potential_webgl_error!($context, $call, ());
};
}
-
-macro_rules! impl_document_or_shadow_root_helpers(
- () => (
- /// <https://html.spec.whatwg.org/multipage/#concept-document-bc>
- #[inline]
- pub fn browsing_context(&self) -> Option<DomRoot<WindowProxy>> {
- if self.has_browsing_context {
- self.window.undiscarded_window_proxy()
- } else {
- None
- }
- }
-
- pub fn nodes_from_point(
- &self,
- client_point: &Point2D<f32>,
- reflow_goal: NodesFromPointQueryType,
- ) -> Vec<UntrustedNodeAddress> {
- if !self
- .window
- .layout_reflow(QueryMsg::NodesFromPointQuery(*client_point, reflow_goal))
- {
- return vec![];
- };
-
- self.window.layout().nodes_from_point_response()
- }
- );
-);
-
-macro_rules! impl_document_or_shadow_root_methods(
- ($struct:ident) => (
- #[allow(unsafe_code)]
- // https://drafts.csswg.org/cssom-view/#dom-document-elementfrompoint
- fn ElementFromPoint(&self, x: Finite<f64>, y: Finite<f64>) -> Option<DomRoot<Element>> {
- let x = *x as f32;
- let y = *y as f32;
- let point = &Point2D::new(x, y);
- let viewport = self.window.window_size().initial_viewport;
-
- if self.browsing_context().is_none() {
- return None;
- }
-
- if x < 0.0 || y < 0.0 || x > viewport.width || y > viewport.height {
- return None;
- }
-
- match self
- .nodes_from_point(point, NodesFromPointQueryType::Topmost)
- .first()
- {
- Some(address) => {
- let js_runtime = unsafe { JS_GetRuntime(self.window.get_cx()) };
- let node = unsafe { node::from_untrusted_node_address(js_runtime, *address) };
- let parent_node = node.GetParentNode().unwrap();
- let element_ref = node
- .downcast::<Element>()
- .unwrap_or_else(|| parent_node.downcast::<Element>().unwrap());
-
- Some(DomRoot::from_ref(element_ref))
- },
- None => self.GetDocumentElement(),
- }
- }
-
- #[allow(unsafe_code)]
- // https://drafts.csswg.org/cssom-view/#dom-document-elementsfrompoint
- fn ElementsFromPoint(&self, x: Finite<f64>, y: Finite<f64>) -> Vec<DomRoot<Element>> {
- let x = *x as f32;
- let y = *y as f32;
- let point = &Point2D::new(x, y);
- let viewport = self.window.window_size().initial_viewport;
-
- if self.browsing_context().is_none() {
- return vec![];
- }
-
- // Step 2
- if x < 0.0 || y < 0.0 || x > viewport.width || y > viewport.height {
- return vec![];
- }
-
- let js_runtime = unsafe { JS_GetRuntime(self.window.get_cx()) };
-
- // Step 1 and Step 3
- let nodes = self.nodes_from_point(point, NodesFromPointQueryType::All);
- let mut elements: Vec<DomRoot<Element>> = nodes
- .iter()
- .flat_map(|&untrusted_node_address| {
- let node = unsafe {
- node::from_untrusted_node_address(js_runtime, untrusted_node_address)
- };
- DomRoot::downcast::<Element>(node)
- })
- .collect();
-
- // Step 4
- if let Some(root_element) = self.GetDocumentElement() {
- if elements.last() != Some(&root_element) {
- elements.push(root_element);
- }
- }
-
- // Step 5
- elements
- }
-
- // https://html.spec.whatwg.org/multipage/#dom-document-activeelement
- fn GetActiveElement(&self) -> Option<DomRoot<Element>> {
- // TODO: Step 2.
-
- match self.get_focused_element() {
- Some(element) => Some(element), // Step 3. and 4.
- None => match self.GetBody() {
- // Step 5.
- Some(body) => Some(DomRoot::upcast(body)),
- None => self.GetDocumentElement(),
- },
- }
- }
-
- // https://drafts.csswg.org/cssom/#dom-document-stylesheets
- fn StyleSheets(&self) -> DomRoot<StyleSheetList> {
- self.stylesheet_list
- .or_init(|| StyleSheetList::new(&self.window, DocumentOrShadowRoot::$struct(Dom::from_ref(self))))
- }
- );
-);