Pass &JS<Window> to some constructors.

This commit is contained in:
Ms2ger 2014-03-04 14:10:33 +01:00
parent b6138580d3
commit 6291aac170
11 changed files with 29 additions and 24 deletions

View file

@ -43,22 +43,22 @@ impl Attr {
} }
} }
pub fn new(window: &Window, local_name: DOMString, value: DOMString) -> JS<Attr> { pub fn new(window: &JS<Window>, local_name: DOMString, value: DOMString) -> JS<Attr> {
let name = local_name.clone(); let name = local_name.clone();
Attr::new_helper(window, local_name, value, name, Null, None) Attr::new_helper(window, local_name, value, name, Null, None)
} }
pub fn new_ns(window: &Window, local_name: DOMString, value: DOMString, pub fn new_ns(window: &JS<Window>, local_name: DOMString, value: DOMString,
name: DOMString, namespace: Namespace, name: DOMString, namespace: Namespace,
prefix: Option<DOMString>) -> JS<Attr> { prefix: Option<DOMString>) -> JS<Attr> {
Attr::new_helper(window, local_name, value, name, namespace, prefix) Attr::new_helper(window, local_name, value, name, namespace, prefix)
} }
fn new_helper(window: &Window, local_name: DOMString, value: DOMString, fn new_helper(window: &JS<Window>, local_name: DOMString, value: DOMString,
name: DOMString, namespace: Namespace, name: DOMString, namespace: Namespace,
prefix: Option<DOMString>) -> JS<Attr> { prefix: Option<DOMString>) -> JS<Attr> {
let attr = Attr::new_inherited(local_name, value, name, namespace, prefix); let attr = Attr::new_inherited(local_name, value, name, namespace, prefix);
reflect_dom_object(~attr, window, AttrBinding::Wrap) reflect_dom_object(~attr, window.get(), AttrBinding::Wrap)
} }
pub fn set_value(&mut self, value: DOMString) { pub fn set_value(&mut self, value: DOMString) {

View file

@ -85,6 +85,11 @@ DOMInterfaces = {
'ValidityState': {}, 'ValidityState': {},
'Window': { 'Window': {
'createGlobal': True, 'createGlobal': True,
'needsAbstract': [
'console',
'location',
'navigator',
],
}, },
'WindowProxy': {}, 'WindowProxy': {},

View file

@ -20,8 +20,8 @@ impl Console {
} }
} }
pub fn new(window: &Window) -> JS<Console> { pub fn new(window: &JS<Window>) -> JS<Console> {
reflect_dom_object(~Console::new_inherited(), window, ConsoleBinding::Wrap) reflect_dom_object(~Console::new_inherited(), window.get(), ConsoleBinding::Wrap)
} }
pub fn Log(&self, message: DOMString) { pub fn Log(&self, message: DOMString) {

View file

@ -48,8 +48,8 @@ impl DOMException {
} }
} }
pub fn new(window: &Window, code: DOMErrorName) -> JS<DOMException> { pub fn new(window: &JS<Window>, code: DOMErrorName) -> JS<DOMException> {
reflect_dom_object(~DOMException::new_inherited(code), window, DOMExceptionBinding::Wrap) reflect_dom_object(~DOMException::new_inherited(code), window.get(), DOMExceptionBinding::Wrap)
} }
} }

View file

@ -220,7 +220,7 @@ impl Element {
None => { None => {
let doc = self.node.owner_doc(); let doc = self.node.owner_doc();
let doc = doc.get(); let doc = doc.get();
let new_attr = Attr::new_ns(doc.window.get(), local_name.clone(), value.clone(), let new_attr = Attr::new_ns(&doc.window, local_name.clone(), value.clone(),
name.clone(), namespace.clone(), name.clone(), namespace.clone(),
prefix); prefix);
self.attrs.push(new_attr); self.attrs.push(new_attr);

View file

@ -41,9 +41,9 @@ impl Location {
} }
} }
pub fn new(window: &Window, page: Rc<Page>) -> JS<Location> { pub fn new(window: &JS<Window>, page: Rc<Page>) -> JS<Location> {
reflect_dom_object(~Location::new_inherited(page), reflect_dom_object(~Location::new_inherited(page),
window, window.get(),
LocationBinding::Wrap) LocationBinding::Wrap)
} }

View file

@ -21,9 +21,9 @@ impl Navigator {
} }
} }
pub fn new(window: &Window) -> JS<Navigator> { pub fn new(window: &JS<Window>) -> JS<Navigator> {
reflect_dom_object(~Navigator::new_inherited(), reflect_dom_object(~Navigator::new_inherited(),
window, window.get(),
NavigatorBinding::Wrap) NavigatorBinding::Wrap)
} }

View file

@ -31,18 +31,18 @@ impl NodeList {
} }
} }
pub fn new(window: JS<Window>, pub fn new(window: &JS<Window>,
list_type: NodeListType) -> JS<NodeList> { list_type: NodeListType) -> JS<NodeList> {
reflect_dom_object(~NodeList::new_inherited(window.clone(), list_type), reflect_dom_object(~NodeList::new_inherited(window.clone(), list_type),
window.get(), NodeListBinding::Wrap) window.get(), NodeListBinding::Wrap)
} }
pub fn new_simple_list(window: &JS<Window>, elements: ~[JS<Node>]) -> JS<NodeList> { pub fn new_simple_list(window: &JS<Window>, elements: ~[JS<Node>]) -> JS<NodeList> {
NodeList::new(window.clone(), Simple(elements)) NodeList::new(window, Simple(elements))
} }
pub fn new_child_list(window: &JS<Window>, node: &JS<Node>) -> JS<NodeList> { pub fn new_child_list(window: &JS<Window>, node: &JS<Node>) -> JS<NodeList> {
NodeList::new(window.clone(), Children(node.clone())) NodeList::new(window, Children(node.clone()))
} }
pub fn Length(&self) -> u32 { pub fn Length(&self) -> u32 {

View file

@ -175,23 +175,23 @@ impl Window {
None None
} }
pub fn Location(&mut self) -> JS<Location> { pub fn Location(&mut self, abstract_self: &JS<Window>) -> JS<Location> {
if self.location.is_none() { if self.location.is_none() {
self.location = Some(Location::new(self, self.extra.page.clone())); self.location = Some(Location::new(abstract_self, self.extra.page.clone()));
} }
self.location.get_ref().clone() self.location.get_ref().clone()
} }
pub fn Console(&mut self) -> JS<Console> { pub fn Console(&mut self, abstract_self: &JS<Window>) -> JS<Console> {
if self.console.is_none() { if self.console.is_none() {
self.console = Some(Console::new(self)); self.console = Some(Console::new(abstract_self));
} }
self.console.get_ref().clone() self.console.get_ref().clone()
} }
pub fn Navigator(&mut self) -> JS<Navigator> { pub fn Navigator(&mut self, abstract_self: &JS<Window>) -> JS<Navigator> {
if self.navigator.is_none() { if self.navigator.is_none() {
self.navigator = Some(Navigator::new(self)); self.navigator = Some(Navigator::new(abstract_self));
} }
self.navigator.get_ref().clone() self.navigator.get_ref().clone()
} }

View file

@ -13,7 +13,7 @@ pub struct WindowProxy {
} }
impl WindowProxy { impl WindowProxy {
pub fn new(owner: JS<Window>) -> JS<WindowProxy> { pub fn new(owner: &JS<Window>) -> JS<WindowProxy> {
let proxy = ~WindowProxy { let proxy = ~WindowProxy {
reflector_: Reflector::new() reflector_: Reflector::new()
}; };

View file

@ -984,7 +984,7 @@ impl ScriptTask {
Some(ref frame) => { Some(ref frame) => {
// http://dev.w3.org/csswg/cssom-view/#resizing-viewports // http://dev.w3.org/csswg/cssom-view/#resizing-viewports
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#event-type-resize // https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#event-type-resize
let window_proxy: JS<WindowProxy> = WindowProxy::new(frame.window.clone()); let window_proxy: JS<WindowProxy> = WindowProxy::new(&frame.window);
let mut uievent = UIEvent::new(&frame.window); let mut uievent = UIEvent::new(&frame.window);
uievent.get_mut().InitUIEvent(~"resize", false, false, Some(window_proxy), 0i32); uievent.get_mut().InitUIEvent(~"resize", false, false, Some(window_proxy), 0i32);
let event: &mut JS<Event> = &mut EventCast::from(&uievent); let event: &mut JS<Event> = &mut EventCast::from(&uievent);