diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs new file mode 100644 index 00000000000..873d7dfb6a2 --- /dev/null +++ b/components/script/dom/cssstyledeclaration.rs @@ -0,0 +1,68 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::CSSStyleDeclarationMethods; +use dom::bindings::error::{ErrorResult, Fallible}; +use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::js::JSRef; +use servo_util::str::DOMString; + +#[dom_struct] +pub struct CSSStyleDeclaration { + reflector_: Reflector, +} + +impl<'a> CSSStyleDeclarationMethods for JSRef<'a, CSSStyleDeclaration> { + fn CssText(self) -> DOMString { + "".to_string() + } + + fn SetCssText(self, _cssText: DOMString) -> ErrorResult { + Ok(()) + } + + fn Length(self) -> u32 { + 0 + } + + fn Item(self, _index: u32) -> DOMString { + "".to_string() + } + + fn GetPropertyValue(self, _property: DOMString) -> DOMString { + "".to_string() + } + + fn GetPropertyPriority(self, _property: DOMString) -> DOMString { + "".to_string() + } + + fn SetProperty(self, _property: DOMString, _value: DOMString, + _priority: DOMString) -> ErrorResult { + Ok(()) + } + + fn SetPropertyValue(self, _property: DOMString, _value: DOMString) -> ErrorResult { + Ok(()) + } + + fn SetPropertyPriority(self, _property: DOMString, _priority: DOMString) -> ErrorResult { + Ok(()) + } + + fn RemoveProperty(self, _property: DOMString) -> Fallible { + Ok("".to_string()) + } + + fn IndexedGetter(self, _index: u32, _found: &mut bool) -> DOMString { + "".to_string() + } +} + +impl Reflectable for CSSStyleDeclaration { + fn reflector<'a>(&'a self) -> &'a Reflector { + &self.reflector_ + } +} + diff --git a/components/script/dom/webidls/CSSStyleDeclaration.webidl b/components/script/dom/webidls/CSSStyleDeclaration.webidl new file mode 100644 index 00000000000..09079fe0fec --- /dev/null +++ b/components/script/dom/webidls/CSSStyleDeclaration.webidl @@ -0,0 +1,31 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + * + * The origin of this IDL file is + * http://dev.w3.org/csswg/cssom/#the-cssstyledeclaration-interface + * + * Copyright © 2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. + */ + +interface CSSStyleDeclaration { + [SetterThrows] + attribute DOMString cssText; + readonly attribute unsigned long length; + getter DOMString item(unsigned long index); + DOMString getPropertyValue(DOMString property); + DOMString getPropertyPriority(DOMString property); + [Throws] + void setProperty(DOMString property, [TreatNullAs=EmptyString] DOMString value, + [TreatNullAs=EmptyString] optional DOMString priority = ""); + [Throws] + void setPropertyValue(DOMString property, [TreatNullAs=EmptyString] DOMString value); + [Throws] + void setPropertyPriority(DOMString property, [TreatNullAs=EmptyString] DOMString priority); + [Throws] + DOMString removeProperty(DOMString property); +// Not implemented yet: +// readonly attribute CSSRule? parentRule; +// attribute DOMString cssFloat; +}; + diff --git a/components/script/lib.rs b/components/script/lib.rs index 26f773f6006..c818df7cb00 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -88,6 +88,7 @@ pub mod dom { pub mod browsercontext; pub mod canvasrenderingcontext2d; pub mod characterdata; + pub mod cssstyledeclaration; pub mod domrect; pub mod domrectlist; pub mod domstringmap;