mirror of
https://github.com/servo/servo.git
synced 2025-06-21 15:49:04 +01:00
Rename the node field of the DOM node hierarchy
Renamed the Node elements Fixes #924
This commit is contained in:
parent
2dbd065d91
commit
cfd726f7d6
9 changed files with 61 additions and 26 deletions
|
@ -39,6 +39,21 @@ macro_rules! generate_cacheable_wrapper_htmlelement(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
macro_rules! generate_cacheable_wrapper_node(
|
||||||
|
($name: path, $wrap: path) => (
|
||||||
|
impl CacheableWrapper for $name {
|
||||||
|
fn get_wrappercache(&mut self) -> &mut WrapperCache {
|
||||||
|
self.node.get_wrappercache()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
|
||||||
|
let mut unused = false;
|
||||||
|
$wrap(cx, scope, self, &mut unused)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
macro_rules! generate_binding_object(
|
macro_rules! generate_binding_object(
|
||||||
($name: path) => (
|
($name: path) => (
|
||||||
impl BindingObject for $name {
|
impl BindingObject for $name {
|
||||||
|
@ -59,6 +74,16 @@ macro_rules! generate_binding_object_htmlelement(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
macro_rules! generate_binding_object_node(
|
||||||
|
($name: path) => (
|
||||||
|
impl BindingObject for $name {
|
||||||
|
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
||||||
|
self.node.GetParentObject(cx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
macro_rules! generate_traceable(
|
macro_rules! generate_traceable(
|
||||||
($name: path) => (
|
($name: path) => (
|
||||||
impl Traceable for $name {
|
impl Traceable for $name {
|
||||||
|
@ -79,12 +104,22 @@ macro_rules! generate_traceable_htmlelement(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
macro_rules! generate_traceable_node(
|
||||||
|
($name: path) => (
|
||||||
|
impl Traceable for $name {
|
||||||
|
fn trace(&self, trc: *mut JSTracer) {
|
||||||
|
self.node.trace(trc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
generate_cacheable_wrapper!(Comment, CommentBinding::Wrap)
|
generate_cacheable_wrapper!(Comment, CommentBinding::Wrap)
|
||||||
generate_binding_object!(Comment)
|
generate_binding_object!(Comment)
|
||||||
generate_traceable!(Comment)
|
generate_traceable!(Comment)
|
||||||
generate_cacheable_wrapper!(DocumentType<ScriptView>, DocumentTypeBinding::Wrap)
|
generate_cacheable_wrapper_node!(DocumentType<ScriptView>, DocumentTypeBinding::Wrap)
|
||||||
generate_binding_object!(DocumentType<ScriptView>)
|
generate_binding_object_node!(DocumentType<ScriptView>)
|
||||||
generate_traceable!(DocumentType<ScriptView>)
|
generate_traceable_node!(DocumentType<ScriptView>)
|
||||||
generate_cacheable_wrapper!(Text, TextBinding::Wrap)
|
generate_cacheable_wrapper!(Text, TextBinding::Wrap)
|
||||||
generate_binding_object!(Text)
|
generate_binding_object!(Text)
|
||||||
generate_traceable!(Text)
|
generate_traceable!(Text)
|
||||||
|
@ -285,5 +320,5 @@ generate_binding_object_htmlelement!(HTMLVideoElement)
|
||||||
generate_traceable_htmlelement!(HTMLVideoElement)
|
generate_traceable_htmlelement!(HTMLVideoElement)
|
||||||
|
|
||||||
generate_traceable!(HTMLElement)
|
generate_traceable!(HTMLElement)
|
||||||
generate_traceable!(Element)
|
generate_traceable_node!(Element)
|
||||||
generate_traceable!(CharacterData)
|
generate_traceable_node!(CharacterData)
|
||||||
|
|
|
@ -10,14 +10,14 @@ use dom::node::{Node, NodeTypeId, ScriptView};
|
||||||
use js::jsapi::{JSObject, JSContext};
|
use js::jsapi::{JSObject, JSContext};
|
||||||
|
|
||||||
pub struct CharacterData {
|
pub struct CharacterData {
|
||||||
element: Node<ScriptView>,
|
node: Node<ScriptView>,
|
||||||
data: ~str
|
data: ~str
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterData {
|
impl CharacterData {
|
||||||
pub fn new(id: NodeTypeId, data: ~str) -> CharacterData {
|
pub fn new(id: NodeTypeId, data: ~str) -> CharacterData {
|
||||||
CharacterData {
|
CharacterData {
|
||||||
element: Node::new(id),
|
node: Node::new(id),
|
||||||
data: data
|
data: data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ impl CharacterData {
|
||||||
|
|
||||||
impl CacheableWrapper for CharacterData {
|
impl CacheableWrapper for CharacterData {
|
||||||
fn get_wrappercache(&mut self) -> &mut WrapperCache {
|
fn get_wrappercache(&mut self) -> &mut WrapperCache {
|
||||||
self.element.get_wrappercache()
|
self.node.get_wrappercache()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
|
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
|
||||||
|
@ -69,6 +69,6 @@ impl CacheableWrapper for CharacterData {
|
||||||
|
|
||||||
impl BindingObject for CharacterData {
|
impl BindingObject for CharacterData {
|
||||||
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
||||||
self.element.GetParentObject(cx)
|
self.node.GetParentObject(cx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ use dom::node::{ScriptView, Node, DoctypeNodeTypeId};
|
||||||
|
|
||||||
/// The `DOCTYPE` tag.
|
/// The `DOCTYPE` tag.
|
||||||
pub struct DocumentType<View> {
|
pub struct DocumentType<View> {
|
||||||
element: Node<View>,
|
node: Node<View>,
|
||||||
name: ~str,
|
name: ~str,
|
||||||
public_id: Option<~str>,
|
public_id: Option<~str>,
|
||||||
system_id: Option<~str>,
|
system_id: Option<~str>,
|
||||||
|
@ -22,7 +22,7 @@ impl DocumentType<ScriptView> {
|
||||||
force_quirks: bool)
|
force_quirks: bool)
|
||||||
-> DocumentType<ScriptView> {
|
-> DocumentType<ScriptView> {
|
||||||
DocumentType {
|
DocumentType {
|
||||||
element: Node::new(DoctypeNodeTypeId),
|
node: Node::new(DoctypeNodeTypeId),
|
||||||
name: name,
|
name: name,
|
||||||
public_id: public_id,
|
public_id: public_id,
|
||||||
system_id: system_id,
|
system_id: system_id,
|
||||||
|
|
|
@ -22,7 +22,7 @@ use std::str::eq_slice;
|
||||||
use std::ascii::StrAsciiExt;
|
use std::ascii::StrAsciiExt;
|
||||||
|
|
||||||
pub struct Element {
|
pub struct Element {
|
||||||
element: Node<ScriptView>,
|
node: Node<ScriptView>,
|
||||||
tag_name: ~str, // TODO: This should be an atom, not a ~str.
|
tag_name: ~str, // TODO: This should be an atom, not a ~str.
|
||||||
attrs: ~[Attr],
|
attrs: ~[Attr],
|
||||||
style_attribute: Option<Stylesheet>,
|
style_attribute: Option<Stylesheet>,
|
||||||
|
@ -30,7 +30,7 @@ pub struct Element {
|
||||||
|
|
||||||
impl CacheableWrapper for Element {
|
impl CacheableWrapper for Element {
|
||||||
fn get_wrappercache(&mut self) -> &mut WrapperCache {
|
fn get_wrappercache(&mut self) -> &mut WrapperCache {
|
||||||
self.element.get_wrappercache()
|
self.node.get_wrappercache()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
|
fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
|
||||||
|
@ -40,7 +40,7 @@ impl CacheableWrapper for Element {
|
||||||
|
|
||||||
impl BindingObject for Element {
|
impl BindingObject for Element {
|
||||||
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper> {
|
||||||
self.element.GetParentObject(cx)
|
self.node.GetParentObject(cx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ pub enum ElementTypeId {
|
||||||
impl<'self> Element {
|
impl<'self> Element {
|
||||||
pub fn new(type_id: ElementTypeId, tag_name: ~str) -> Element {
|
pub fn new(type_id: ElementTypeId, tag_name: ~str) -> Element {
|
||||||
Element {
|
Element {
|
||||||
element: Node::new(ElementNodeTypeId(type_id)),
|
node: Node::new(ElementNodeTypeId(type_id)),
|
||||||
tag_name: tag_name,
|
tag_name: tag_name,
|
||||||
attrs: ~[],
|
attrs: ~[],
|
||||||
style_attribute: None,
|
style_attribute: None,
|
||||||
|
@ -180,14 +180,14 @@ impl<'self> Element {
|
||||||
_ => ()
|
_ => ()
|
||||||
}
|
}
|
||||||
|
|
||||||
match self.element.owner_doc {
|
match self.node.owner_doc {
|
||||||
Some(owner) => do owner.with_base |owner| { owner.content_changed() },
|
Some(owner) => do owner.with_base |owner| { owner.content_changed() },
|
||||||
None => {}
|
None => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
||||||
let doc = self.element.owner_doc.unwrap();
|
let doc = self.node.owner_doc.unwrap();
|
||||||
let win = doc.with_base(|doc| doc.window.unwrap());
|
let win = doc.with_base(|doc| doc.window.unwrap());
|
||||||
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
||||||
let cache = win.get_wrappercache();
|
let cache = win.get_wrappercache();
|
||||||
|
@ -276,7 +276,7 @@ impl Element {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn GetClientRects(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRectList {
|
pub fn GetClientRects(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRectList {
|
||||||
let (rects, cx, scope) = match self.element.owner_doc {
|
let (rects, cx, scope) = match self.node.owner_doc {
|
||||||
Some(doc) => {
|
Some(doc) => {
|
||||||
match doc.with_base(|doc| doc.window) {
|
match doc.with_base(|doc| doc.window) {
|
||||||
Some(win) => {
|
Some(win) => {
|
||||||
|
@ -318,7 +318,7 @@ impl Element {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn GetBoundingClientRect(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRect {
|
pub fn GetBoundingClientRect(&self, abstract_self: AbstractNode<ScriptView>) -> @mut ClientRect {
|
||||||
match self.element.owner_doc {
|
match self.node.owner_doc {
|
||||||
Some(doc) => {
|
Some(doc) => {
|
||||||
match doc.with_base(|doc| doc.window) {
|
match doc.with_base(|doc| doc.window) {
|
||||||
Some(win) => {
|
Some(win) => {
|
||||||
|
|
|
@ -14,7 +14,7 @@ pub struct HTMLDataListElement {
|
||||||
|
|
||||||
impl HTMLDataListElement {
|
impl HTMLDataListElement {
|
||||||
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
||||||
let doc = self.htmlelement.element.element.owner_doc.unwrap();
|
let doc = self.htmlelement.element.node.owner_doc.unwrap();
|
||||||
let win = doc.with_base(|doc| doc.window.unwrap());
|
let win = doc.with_base(|doc| doc.window.unwrap());
|
||||||
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
||||||
let cache = win.get_wrappercache();
|
let cache = win.get_wrappercache();
|
||||||
|
|
|
@ -40,7 +40,7 @@ impl HTMLFieldSetElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
||||||
let doc = self.htmlelement.element.element.owner_doc.unwrap();
|
let doc = self.htmlelement.element.node.owner_doc.unwrap();
|
||||||
let win = doc.with_base(|doc| doc.window.unwrap());
|
let win = doc.with_base(|doc| doc.window.unwrap());
|
||||||
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
||||||
let cache = win.get_wrappercache();
|
let cache = win.get_wrappercache();
|
||||||
|
|
|
@ -16,7 +16,7 @@ pub struct HTMLFormElement {
|
||||||
|
|
||||||
impl HTMLFormElement {
|
impl HTMLFormElement {
|
||||||
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
||||||
let doc = self.htmlelement.element.element.owner_doc.unwrap();
|
let doc = self.htmlelement.element.node.owner_doc.unwrap();
|
||||||
let win = doc.with_base(|doc| doc.window.unwrap());
|
let win = doc.with_base(|doc| doc.window.unwrap());
|
||||||
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
||||||
let cache = win.get_wrappercache();
|
let cache = win.get_wrappercache();
|
||||||
|
|
|
@ -42,7 +42,7 @@ impl HTMLImageElement {
|
||||||
pub fn AfterSetAttr(&mut self, name: &DOMString, _value: &DOMString) {
|
pub fn AfterSetAttr(&mut self, name: &DOMString, _value: &DOMString) {
|
||||||
let name = null_str_as_empty(name);
|
let name = null_str_as_empty(name);
|
||||||
if "src" == name {
|
if "src" == name {
|
||||||
let doc = self.htmlelement.element.element.owner_doc;
|
let doc = self.htmlelement.element.node.owner_doc;
|
||||||
for doc in doc.iter() {
|
for doc in doc.iter() {
|
||||||
do doc.with_base |doc| {
|
do doc.with_base |doc| {
|
||||||
for window in doc.window.iter() {
|
for window in doc.window.iter() {
|
||||||
|
@ -101,7 +101,7 @@ impl HTMLImageElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Width(&self, abstract_self: AbstractNode<ScriptView>) -> u32 {
|
pub fn Width(&self, abstract_self: AbstractNode<ScriptView>) -> u32 {
|
||||||
let node = &self.htmlelement.element.element;
|
let node = &self.htmlelement.element.node;
|
||||||
match node.owner_doc {
|
match node.owner_doc {
|
||||||
Some(doc) => {
|
Some(doc) => {
|
||||||
match doc.with_base(|doc| doc.window) {
|
match doc.with_base(|doc| doc.window) {
|
||||||
|
@ -138,7 +138,7 @@ impl HTMLImageElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn Height(&self, abstract_self: AbstractNode<ScriptView>) -> u32 {
|
pub fn Height(&self, abstract_self: AbstractNode<ScriptView>) -> u32 {
|
||||||
let node = &self.htmlelement.element.element;
|
let node = &self.htmlelement.element.node;
|
||||||
match node.owner_doc {
|
match node.owner_doc {
|
||||||
Some(doc) => {
|
Some(doc) => {
|
||||||
match doc.with_base(|doc| doc.window) {
|
match doc.with_base(|doc| doc.window) {
|
||||||
|
|
|
@ -21,7 +21,7 @@ impl HTMLMapElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
fn get_scope_and_cx(&self) -> (*JSObject, *JSContext) {
|
||||||
let doc = self.htmlelement.element.element.owner_doc.unwrap();
|
let doc = self.htmlelement.element.node.owner_doc.unwrap();
|
||||||
let win = doc.with_base(|doc| doc.window.unwrap());
|
let win = doc.with_base(|doc| doc.window.unwrap());
|
||||||
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
let cx = win.page.js_info.get_ref().js_compartment.cx.ptr;
|
||||||
let cache = win.get_wrappercache();
|
let cache = win.get_wrappercache();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue