auto merge of #5440 : frewsxcv/servo/spec-links, r=jdm

This commit is contained in:
bors-servo 2015-03-28 19:01:03 -06:00
commit 4cf76d65ba
10 changed files with 36 additions and 0 deletions

View file

@ -17,6 +17,7 @@ pub enum NodeListType {
Children(JS<Node>) Children(JS<Node>)
} }
// https://dom.spec.whatwg.org/#interface-nodelist
#[dom_struct] #[dom_struct]
pub struct NodeList { pub struct NodeList {
reflector_: Reflector, reflector_: Reflector,
@ -47,6 +48,7 @@ impl NodeList {
} }
impl<'a> NodeListMethods for JSRef<'a, NodeList> { impl<'a> NodeListMethods for JSRef<'a, NodeList> {
// https://dom.spec.whatwg.org/#dom-nodelist-length
fn Length(self) -> u32 { fn Length(self) -> u32 {
match self.list_type { match self.list_type {
NodeListType::Simple(ref elems) => elems.len() as u32, NodeListType::Simple(ref elems) => elems.len() as u32,
@ -57,6 +59,7 @@ impl<'a> NodeListMethods for JSRef<'a, NodeList> {
} }
} }
// https://dom.spec.whatwg.org/#dom-nodelist-item
fn Item(self, index: u32) -> Option<Temporary<Node>> { fn Item(self, index: u32) -> Option<Temporary<Node>> {
match self.list_type { match self.list_type {
_ if index >= self.Length() => None, _ if index >= self.Length() => None,

View file

@ -64,14 +64,17 @@ impl TreeWalker {
} }
impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> { impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> {
// https://dom.spec.whatwg.org/#dom-treewalker-root
fn Root(self) -> Temporary<Node> { fn Root(self) -> Temporary<Node> {
Temporary::new(self.root_node) Temporary::new(self.root_node)
} }
// https://dom.spec.whatwg.org/#dom-treewalker-whattoshow
fn WhatToShow(self) -> u32 { fn WhatToShow(self) -> u32 {
self.what_to_show self.what_to_show
} }
// https://dom.spec.whatwg.org/#dom-treewalker-filter
fn GetFilter(self) -> Option<NodeFilter> { fn GetFilter(self) -> Option<NodeFilter> {
match self.filter { match self.filter {
Filter::None => None, Filter::None => None,
@ -80,38 +83,47 @@ impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> {
} }
} }
// https://dom.spec.whatwg.org/#dom-treewalker-currentnode
fn CurrentNode(self) -> Temporary<Node> { fn CurrentNode(self) -> Temporary<Node> {
Temporary::new(self.current_node.get()) Temporary::new(self.current_node.get())
} }
// https://dom.spec.whatwg.org/#dom-treewalker-currentnode
fn SetCurrentNode(self, node: JSRef<Node>) { fn SetCurrentNode(self, node: JSRef<Node>) {
self.current_node.set(JS::from_rooted(node)); self.current_node.set(JS::from_rooted(node));
} }
// https://dom.spec.whatwg.org/#dom-treewalker-parentnode
fn ParentNode(self) -> Fallible<Option<Temporary<Node>>> { fn ParentNode(self) -> Fallible<Option<Temporary<Node>>> {
self.parent_node() self.parent_node()
} }
// https://dom.spec.whatwg.org/#dom-treewalker-firstchild
fn FirstChild(self) -> Fallible<Option<Temporary<Node>>> { fn FirstChild(self) -> Fallible<Option<Temporary<Node>>> {
self.first_child() self.first_child()
} }
// https://dom.spec.whatwg.org/#dom-treewalker-lastchild
fn LastChild(self) -> Fallible<Option<Temporary<Node>>> { fn LastChild(self) -> Fallible<Option<Temporary<Node>>> {
self.last_child() self.last_child()
} }
// https://dom.spec.whatwg.org/#dom-treewalker-previoussibling
fn PreviousSibling(self) -> Fallible<Option<Temporary<Node>>> { fn PreviousSibling(self) -> Fallible<Option<Temporary<Node>>> {
self.prev_sibling() self.prev_sibling()
} }
// https://dom.spec.whatwg.org/#dom-treewalker-nextsibling
fn NextSibling(self) -> Fallible<Option<Temporary<Node>>> { fn NextSibling(self) -> Fallible<Option<Temporary<Node>>> {
self.next_sibling() self.next_sibling()
} }
// https://dom.spec.whatwg.org/#dom-treewalker-previousnode
fn PreviousNode(self) -> Fallible<Option<Temporary<Node>>> { fn PreviousNode(self) -> Fallible<Option<Temporary<Node>>> {
self.prev_node() self.prev_node()
} }
// https://dom.spec.whatwg.org/#dom-treewalker-nextnode
fn NextNode(self) -> Fallible<Option<Temporary<Node>>> { fn NextNode(self) -> Fallible<Option<Temporary<Node>>> {
self.next_node() self.next_node()
} }

View file

@ -18,6 +18,7 @@ use util::str::DOMString;
use std::cell::Cell; use std::cell::Cell;
use std::default::Default; use std::default::Default;
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#interface-UIEvent
#[dom_struct] #[dom_struct]
pub struct UIEvent { pub struct UIEvent {
event: Event, event: Event,
@ -70,10 +71,12 @@ impl UIEvent {
} }
impl<'a> UIEventMethods for JSRef<'a, UIEvent> { impl<'a> UIEventMethods for JSRef<'a, UIEvent> {
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#widl-UIEvent-view
fn GetView(self) -> Option<Temporary<Window>> { fn GetView(self) -> Option<Temporary<Window>> {
self.view.get() self.view.get()
} }
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#widl-UIEvent-detail
fn Detail(self) -> i32 { fn Detail(self) -> i32 {
self.detail.get() self.detail.get()
} }

View file

@ -20,6 +20,7 @@ use encoding::types::{EncodingRef, EncoderTrap};
use std::collections::HashMap; use std::collections::HashMap;
use std::collections::hash_map::Entry::{Occupied, Vacant}; use std::collections::hash_map::Entry::{Occupied, Vacant};
// https://url.spec.whatwg.org/#interface-urlsearchparams
#[dom_struct] #[dom_struct]
pub struct URLSearchParams { pub struct URLSearchParams {
reflector_: Reflector, reflector_: Reflector,
@ -39,6 +40,7 @@ impl URLSearchParams {
URLSearchParamsBinding::Wrap) URLSearchParamsBinding::Wrap)
} }
// https://url.spec.whatwg.org/#dom-urlsearchparams-urlsearchparams
pub fn Constructor(global: GlobalRef, init: Option<StringOrURLSearchParams>) -> pub fn Constructor(global: GlobalRef, init: Option<StringOrURLSearchParams>) ->
Fallible<Temporary<URLSearchParams>> { Fallible<Temporary<URLSearchParams>> {
let usp = URLSearchParams::new(global).root(); let usp = URLSearchParams::new(global).root();
@ -65,6 +67,7 @@ impl URLSearchParams {
} }
impl<'a> URLSearchParamsMethods for JSRef<'a, URLSearchParams> { impl<'a> URLSearchParamsMethods for JSRef<'a, URLSearchParams> {
// https://url.spec.whatwg.org/#dom-urlsearchparams-append
fn Append(self, name: DOMString, value: DOMString) { fn Append(self, name: DOMString, value: DOMString) {
let mut data = self.data.borrow_mut(); let mut data = self.data.borrow_mut();
@ -78,23 +81,27 @@ impl<'a> URLSearchParamsMethods for JSRef<'a, URLSearchParams> {
self.update_steps(); self.update_steps();
} }
// https://url.spec.whatwg.org/#dom-urlsearchparams-delete
fn Delete(self, name: DOMString) { fn Delete(self, name: DOMString) {
self.data.borrow_mut().remove(&name); self.data.borrow_mut().remove(&name);
self.update_steps(); self.update_steps();
} }
// https://url.spec.whatwg.org/#dom-urlsearchparams-get
fn Get(self, name: DOMString) -> Option<DOMString> { fn Get(self, name: DOMString) -> Option<DOMString> {
// FIXME(https://github.com/rust-lang/rust/issues/23338) // FIXME(https://github.com/rust-lang/rust/issues/23338)
let data = self.data.borrow(); let data = self.data.borrow();
data.get(&name).map(|v| v[0].clone()) data.get(&name).map(|v| v[0].clone())
} }
// https://url.spec.whatwg.org/#dom-urlsearchparams-has
fn Has(self, name: DOMString) -> bool { fn Has(self, name: DOMString) -> bool {
// FIXME(https://github.com/rust-lang/rust/issues/23338) // FIXME(https://github.com/rust-lang/rust/issues/23338)
let data = self.data.borrow(); let data = self.data.borrow();
data.contains_key(&name) data.contains_key(&name)
} }
// https://url.spec.whatwg.org/#dom-urlsearchparams-set
fn Set(self, name: DOMString, value: DOMString) { fn Set(self, name: DOMString, value: DOMString) {
self.data.borrow_mut().insert(name, vec!(value)); self.data.borrow_mut().insert(name, vec!(value));
self.update_steps(); self.update_steps();

View file

@ -8,6 +8,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::utils::{Reflector, reflect_dom_object};
use dom::window::Window; use dom::window::Window;
// https://html.spec.whatwg.org/#validitystate
#[dom_struct] #[dom_struct]
pub struct ValidityState { pub struct ValidityState {
reflector_: Reflector, reflector_: Reflector,

View file

@ -11,6 +11,7 @@ use dom::bindings::utils::reflect_dom_object;
use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId};
use util::str::DOMString; use util::str::DOMString;
// https://html.spec.whatwg.org/#the-websocket-interface
#[dom_struct] #[dom_struct]
pub struct WebSocket { pub struct WebSocket {
eventtarget: EventTarget, eventtarget: EventTarget,
@ -37,6 +38,7 @@ impl WebSocket {
} }
impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { impl<'a> WebSocketMethods for JSRef<'a, WebSocket> {
// https://html.spec.whatwg.org/#dom-websocket-url
fn Url(self) -> DOMString { fn Url(self) -> DOMString {
self.url.clone() self.url.clone()
} }

View file

@ -36,6 +36,7 @@ use std::sync::mpsc::{channel, Sender};
pub type TrustedWorkerAddress = Trusted<Worker>; pub type TrustedWorkerAddress = Trusted<Worker>;
// https://html.spec.whatwg.org/multipage/workers.html#worker
#[dom_struct] #[dom_struct]
pub struct Worker { pub struct Worker {
eventtarget: EventTarget, eventtarget: EventTarget,

View file

@ -39,6 +39,7 @@ pub enum WorkerGlobalScopeTypeId {
DedicatedGlobalScope, DedicatedGlobalScope,
} }
// https://html.spec.whatwg.org/multipage/workers.html#the-workerglobalscope-common-interface
#[dom_struct] #[dom_struct]
pub struct WorkerGlobalScope { pub struct WorkerGlobalScope {
eventtarget: EventTarget, eventtarget: EventTarget,
@ -96,16 +97,19 @@ impl WorkerGlobalScope {
} }
impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> { impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> {
// https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-self
fn Self_(self) -> Temporary<WorkerGlobalScope> { fn Self_(self) -> Temporary<WorkerGlobalScope> {
Temporary::from_rooted(self) Temporary::from_rooted(self)
} }
// https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-location
fn Location(self) -> Temporary<WorkerLocation> { fn Location(self) -> Temporary<WorkerLocation> {
self.location.or_init(|| { self.location.or_init(|| {
WorkerLocation::new(self, self.worker_url.clone()) WorkerLocation::new(self, self.worker_url.clone())
}) })
} }
// https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-importscripts
fn ImportScripts(self, url_strings: Vec<DOMString>) -> ErrorResult { fn ImportScripts(self, url_strings: Vec<DOMString>) -> ErrorResult {
let mut urls = Vec::with_capacity(url_strings.len()); let mut urls = Vec::with_capacity(url_strings.len());
for url in url_strings.into_iter() { for url in url_strings.into_iter() {
@ -138,6 +142,7 @@ impl<'a> WorkerGlobalScopeMethods for JSRef<'a, WorkerGlobalScope> {
Ok(()) Ok(())
} }
// https://html.spec.whatwg.org/multipage/workers.html#dom-worker-navigator
fn Navigator(self) -> Temporary<WorkerNavigator> { fn Navigator(self) -> Temporary<WorkerNavigator> {
self.navigator.or_init(|| WorkerNavigator::new(self)) self.navigator.or_init(|| WorkerNavigator::new(self))
} }

View file

@ -13,6 +13,7 @@ use dom::workerglobalscope::WorkerGlobalScope;
use url::Url; use url::Url;
// https://html.spec.whatwg.org/multipage/workers.html#worker-locations
#[dom_struct] #[dom_struct]
pub struct WorkerLocation { pub struct WorkerLocation {
reflector_: Reflector, reflector_: Reflector,

View file

@ -11,6 +11,7 @@ use dom::navigatorinfo;
use dom::workerglobalscope::WorkerGlobalScope; use dom::workerglobalscope::WorkerGlobalScope;
use util::str::DOMString; use util::str::DOMString;
// https://html.spec.whatwg.org/multipage/workers.html#workernavigator
#[dom_struct] #[dom_struct]
pub struct WorkerNavigator { pub struct WorkerNavigator {
reflector_: Reflector, reflector_: Reflector,