Skip to content

Commit

Permalink
Add the basic CSSStyleDeclaration CSSOM interface.
Browse files Browse the repository at this point in the history
This just includes the .webidl file (with some of the functionality
commented out) and the stub implementations for the bindings.

This is another step towards #1721.
  • Loading branch information
Cameron Zwarich authored and jdm committed Dec 18, 2014
1 parent 7df3784 commit 1c5d581
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 0 deletions.
68 changes: 68 additions & 0 deletions 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<DOMString> {
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_
}
}

31 changes: 31 additions & 0 deletions 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;
};

1 change: 1 addition & 0 deletions components/script/lib.rs
Expand Up @@ -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;
Expand Down

0 comments on commit 1c5d581

Please sign in to comment.