From b54174e54a7f55cb6e11b6fb20f6615b37f5b65a Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 4 Nov 2015 16:15:00 +0000 Subject: Add CSS object model and DOM parsing IDL ready for implementation --- javascript/WebIDL/Makefile | 10 ++- javascript/WebIDL/cssom.idl | 157 ++++++++++++++++++++++++++++++++++++++ javascript/WebIDL/dom-parsing.idl | 35 +++++++++ 3 files changed, 199 insertions(+), 3 deletions(-) create mode 100644 javascript/WebIDL/cssom.idl create mode 100644 javascript/WebIDL/dom-parsing.idl (limited to 'javascript/WebIDL') diff --git a/javascript/WebIDL/Makefile b/javascript/WebIDL/Makefile index 6319bbddd..7d901cee1 100644 --- a/javascript/WebIDL/Makefile +++ b/javascript/WebIDL/Makefile @@ -16,12 +16,13 @@ .PHONY:all clean -all: dom.idl html.idl uievents.idl +all: dom.idl html.idl uievents.idl cssom.idl -.INTERMEDIATE:dom-spec.html dom-spec.xml dom-idl.html +.INTERMEDIATE:dom-spec.html dom-spec.xml dom-idl.html .INTERMEDIATE:html-spec.html html-spec.xml html-idl.html .INTERMEDIATE:uievents-spec.html uievents-spec.xml uievents-idl.html .INTERMEDIATE:urlutils-spec.html urlutils-spec.xml urlutils-idl.html +.INTERMEDIATE:cssom-spec.html cssom-spec.xml cssom-idl.html dom-spec.html: curl -s https://dom.spec.whatwg.org/ -o $@ @@ -35,8 +36,11 @@ uievents-spec.html: urlutils-spec.html: curl -s https://url.spec.whatwg.org/ -o $@ +cssom-spec.html: + curl -s https://drafts.csswg.org/cssom-1/ -o $@ + %-spec.xml: %-spec.html - -tidy -q -f $@.errors --new-blocklevel-tags header,hgroup,figure,time,main,nav,svg,rect,text,image,mark,figcaption,section -o $@ -asxml $< + -tidy -q -f $@.errors --new-blocklevel-tags header,hgroup,figure,time,main,nav,svg,rect,text,image,mark,figcaption,section,g,path,circle -o $@ -asxml $< %-idl.html: %-spec.xml hxselect 'pre[class="idl"]' < $< > $@ diff --git a/javascript/WebIDL/cssom.idl b/javascript/WebIDL/cssom.idl new file mode 100644 index 000000000..95c97e42a --- /dev/null +++ b/javascript/WebIDL/cssom.idl @@ -0,0 +1,157 @@ +// Retrived from https://drafts.csswg.org/cssom-1/ +// Wed Nov 4 15:39:43 GMT 2015 +// Removed duplicate IDL from appendix + + +[ArrayClass]interface MediaList { + [TreatNullAs=EmptyString] stringifier attribute DOMString mediaText; + readonly attribute unsigned long length; + getter DOMString? item(unsigned long index ); + void appendMedium(DOMString medium ); + void deleteMedium(DOMString medium ); +}; + +interface StyleSheet { + readonly attribute DOMString type; + readonly attribute DOMString? href; + readonly attribute (Element or ProcessingInstruction)? ownerNode; + readonly attribute StyleSheet? parentStyleSheet; + readonly attribute DOMString? title; + [SameObject, PutForwards=mediaText] readonly attribute MediaList media; + attribute boolean disabled; +}; + +interface CSSStyleSheet : StyleSheet { + readonly attribute CSSRule? ownerRule; + [SameObject] readonly attribute CSSRuleList cssRules; + unsigned long insertRule(DOMString rule , unsigned long index ); + void deleteRule(unsigned long index ); +}; + +[ArrayClass]interface StyleSheetList { + getter StyleSheet? item(unsigned long index ); + readonly attribute unsigned long length; +}; + +partial interface Document { + [SameObject] readonly attribute StyleSheetList styleSheets; + attribute DOMString? selectedStyleSheetSet; + readonly attribute DOMString? lastStyleSheetSet; + readonly attribute DOMString? preferredStyleSheetSet; + readonly attribute DOMString[] styleSheetSets; + void enableStyleSheetsForSet(DOMString? name ); +}; + +[NoInterfaceObject]interface LinkStyle { + readonly attribute StyleSheet? sheet; +}; + +ProcessingInstruction implements LinkStyle; + +[ArrayClass]interface CSSRuleList { + getter CSSRule? item(unsigned long index ); + readonly attribute unsigned long length; +}; + +interface CSSRule { + const unsigned short STYLE_RULE = 1; + const unsigned short CHARSET_RULE = 2; // historical + const unsigned short IMPORT_RULE = 3; + const unsigned short MEDIA_RULE = 4; + const unsigned short FONT_FACE_RULE = 5; + const unsigned short PAGE_RULE = 6; + const unsigned short MARGIN_RULE = 9; + const unsigned short NAMESPACE_RULE = 10; + readonly attribute unsigned short type; + attribute DOMString cssText; + readonly attribute CSSRule? parentRule; + readonly attribute CSSStyleSheet? parentStyleSheet; +}; + +interface CSSStyleRule : CSSRule { + attribute DOMString selectorText; + [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style; +}; + +interface CSSImportRule : CSSRule { + readonly attribute DOMString href; + [SameObject, PutForwards=mediaText] readonly attribute MediaList media; + [SameObject] readonly attribute CSSStyleSheet styleSheet; +}; + +interface CSSGroupingRule : CSSRule { + [SameObject] readonly attribute CSSRuleList cssRules; + unsigned long insertRule(DOMString rule , unsigned long index ); + void deleteRule(unsigned long index ); +}; + +interface CSSMediaRule : CSSGroupingRule { + [SameObject, PutForwards=mediaText] readonly attribute MediaList media ; +}; + +interface CSSPageRule : CSSGroupingRule { + attribute DOMString selectorText ; + [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style ; +}; + +interface CSSMarginRule : CSSRule { + readonly attribute DOMString name; + [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style; +}; + +interface CSSNamespaceRule : CSSRule { + readonly attribute DOMString namespaceURI; + readonly attribute DOMString prefix; +}; + +interface CSSStyleDeclaration { + attribute DOMString cssText; + readonly attribute unsigned long length; + getter DOMString item(unsigned long index ); + DOMString getPropertyValue(DOMString property ); + DOMString getPropertyPriority(DOMString property ); + void setProperty(DOMString property , [TreatNullAs=EmptyString] DOMString value , [TreatNullAs=EmptyString] optional DOMString priority = ""); + void setPropertyValue(DOMString property , [TreatNullAs=EmptyString] DOMString value ); + void setPropertyPriority(DOMString property , [TreatNullAs=EmptyString] DOMString priority ); + DOMString removeProperty(DOMString property ); + readonly attribute CSSRule? parentRule; + [TreatNullAs=EmptyString] attribute DOMString cssFloat; +}; + +partial interface CSSStyleDeclaration { + [TreatNullAs=EmptyString] attribute DOMString _dashed_attribute ; +}; + +[NoInterfaceObject]interface ElementCSSInlineStyle { + [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style; +}; + +HTMLElement implements ElementCSSInlineStyle; + +SVGElement implements ElementCSSInlineStyle; + +partial interface Window { + [NewObject] CSSStyleDeclaration getComputedStyle(Element elt , optional DOMString? pseudoElt ); +}; + +[NoInterfaceObject]interface GetStyleUtils { + [SameObject] readonly attribute CSSStyleDeclaration cascadedStyle; + [SameObject] readonly attribute CSSStyleDeclaration defaultStyle; + [SameObject] readonly attribute CSSStyleDeclaration rawComputedStyle; + [SameObject] readonly attribute CSSStyleDeclaration usedStyle; +}; + +partial interface Element { + PseudoElement? pseudo(DOMString pseudoElt ); +}; + +Element implements GetStyleUtils; + +interface PseudoElement { +}; + +PseudoElement implements GetStyleUtils; + +interface CSS { + static DOMString escape(DOMString ident ); +}; diff --git a/javascript/WebIDL/dom-parsing.idl b/javascript/WebIDL/dom-parsing.idl new file mode 100644 index 000000000..d2581328e --- /dev/null +++ b/javascript/WebIDL/dom-parsing.idl @@ -0,0 +1,35 @@ +// Retrived from http://www.w3.org/TR/DOM-Parsing/ +// Wed Nov 4 15:39:43 GMT 2015 +// Manually extracted IDL + +enum SupportedType { + "text/html", + "text/xml", + "application/xml", + "application/xhtml+xml", + "image/svg+xml" +}; + +[Constructor] +interface DOMParser { + [NewObject] + Document parseFromString (DOMString str, SupportedType type); +}; + +[Constructor] +interface XMLSerializer { + DOMString serializeToString (Node root); +}; + +partial interface Element { + [TreatNullAs=EmptyString] + attribute DOMString innerHTML; + [TreatNullAs=EmptyString] + attribute DOMString outerHTML; + void insertAdjacentHTML (DOMString position, DOMString text); +}; + +partial interface Range { + [NewObject] + DocumentFragment createContextualFragment (DOMString fragment); +}; -- cgit v1.2.3