Implement the CSS interface

This commit is contained in:
Anthony Ramine 2015-04-21 22:54:58 +02:00
parent 7e7b421db9
commit 31a26fa384
4 changed files with 41 additions and 0 deletions

View file

@ -0,0 +1,27 @@
/* 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::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
use dom::bindings::utils::Reflector;
use util::str::DOMString;
use cssparser::serialize_identifier;
#[dom_struct]
pub struct CSS {
reflector_: Reflector,
}
impl CSS {
// http://dev.w3.org/csswg/cssom/#serialize-an-identifier
pub fn Escape(_: GlobalRef, ident: DOMString) -> Fallible<DOMString> {
if ident.bytes().any(|b| b == b'\0') {
return Err(Error::InvalidCharacter);
}
let mut escaped = DOMString::new();
serialize_identifier(&ident, &mut escaped).unwrap();
Ok(escaped)
}
}

View file

@ -201,6 +201,7 @@ pub mod canvasgradient;
pub mod canvaspattern; pub mod canvaspattern;
pub mod canvasrenderingcontext2d; pub mod canvasrenderingcontext2d;
pub mod characterdata; pub mod characterdata;
pub mod css;
pub mod cssstyledeclaration; pub mod cssstyledeclaration;
pub mod domrect; pub mod domrect;
pub mod domrectlist; pub mod domrectlist;

View file

@ -0,0 +1,12 @@
/* 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-css-interface
*/
interface CSS {
[Throws]
static DOMString escape(DOMString ident);
};

View file

@ -58,6 +58,7 @@ var interfaceNamesInGlobalScope = [
"CanvasRenderingContext2D", "CanvasRenderingContext2D",
"CanvasPattern", "CanvasPattern",
"CharacterData", "CharacterData",
"CSS",
"CSSStyleDeclaration", "CSSStyleDeclaration",
"DOMRect", "DOMRect",
"Comment", "Comment",