diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/script/dom/bindings/codegen/Bindings.conf | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 1 | ||||
-rw-r--r-- | src/components/script/dom/bindings/codegen/HTMLStyleElement.webidl | 23 | ||||
-rw-r--r-- | src/components/script/dom/bindings/node.rs | 18 | ||||
-rw-r--r-- | src/components/script/dom/bindings/utils.rs | 2 | ||||
-rw-r--r-- | src/components/script/dom/element.rs | 6 | ||||
-rw-r--r-- | src/components/script/dom/htmlstyleelement.rs | 40 | ||||
-rw-r--r-- | src/components/script/html/hubbub_html_parser.rs | 3 | ||||
-rw-r--r-- | src/components/script/script.rc | 2 |
9 files changed, 79 insertions, 17 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index 99bd9372a47..ba33f11a48e 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -559,6 +559,7 @@ addHTMLElement('HTMLOListElement') addHTMLElement('HTMLParagraphElement') addHTMLElement('HTMLScriptElement') addHTMLElement('HTMLSpanElement') +addHTMLElement('HTMLStyleElement') # If you add one of these, you need to make sure nsDOMQS.h has the relevant # macros added for it diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 42ce2648366..ce40d7613c6 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -4627,6 +4627,7 @@ class CGBindingRoot(CGThing): 'dom::htmlmetaelement::HTMLMetaElement', 'dom::htmlolistelement::HTMLOListElement', 'dom::htmlscriptelement::HTMLScriptElement', + 'dom::htmlstyleelement::HTMLStyleElement', 'dom::bindings::utils::*', 'dom::bindings::conversions::*', 'dom::blob::*', #XXXjdm diff --git a/src/components/script/dom/bindings/codegen/HTMLStyleElement.webidl b/src/components/script/dom/bindings/codegen/HTMLStyleElement.webidl new file mode 100644 index 00000000000..7da0a413e00 --- /dev/null +++ b/src/components/script/dom/bindings/codegen/HTMLStyleElement.webidl @@ -0,0 +1,23 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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://www.whatwg.org/specs/web-apps/current-work/#the-style-element + * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis + */ + +interface HTMLStyleElement : HTMLElement { + [Pure] + attribute boolean disabled; + [SetterThrows, Pure] + attribute DOMString media; + [SetterThrows, Pure] + attribute DOMString type; + [SetterThrows, Pure] + attribute boolean scoped; +}; +// TODO: +// HTMLStyleElement implements LinkStyle; + diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index e238cf2f2dc..17367e433a6 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -9,12 +9,8 @@ use dom::bindings::utils::{CacheableWrapper, WrapperCache, DerivedWrapper}; use dom::element::{HTMLHeadElementTypeId, HTMLHtmlElementTypeId, HTMLAnchorElementTypeId}; use dom::element::{HTMLDivElementTypeId, HTMLImageElementTypeId, HTMLSpanElementTypeId}; use dom::element::{HTMLBodyElementTypeId, HTMLHRElementTypeId, HTMLIframeElementTypeId}; -<<<<<<< HEAD -use dom::element::{HTMLParagraphElementTypeId, HTMLScriptElementTypeId}; -use dom::element::{HTMLOListElementTypeId}; -======= use dom::element::{HTMLParagraphElementTypeId, HTMLScriptElementTypeId, HTMLMetaElementTypeId}; ->>>>>>> Generate bindings for HTMLMetaElement. +use dom::element::{HTMLOListElementTypeId, HTMLStyleElementTypeId}; use dom::element::{HTMLHeadElement, HTMLHtmlElement, HTMLDivElement, HTMLSpanElement}; use dom::element::{HTMLParagraphElement}; use dom::htmlanchorelement::HTMLAnchorElement; @@ -22,12 +18,10 @@ use dom::htmlbodyelement::HTMLBodyElement; use dom::htmlhrelement::HTMLHRElement; use dom::htmliframeelement::HTMLIFrameElement; use dom::htmlimageelement::HTMLImageElement; -<<<<<<< HEAD -use dom::htmlolistelement::HTMLOListElement; -======= use dom::htmlmetaelement::HTMLMetaElement; ->>>>>>> Generate bindings for HTMLMetaElement. +use dom::htmlolistelement::HTMLOListElement; use dom::htmlscriptelement::HTMLScriptElement; +use dom::htmlstyleelement::HTMLStyleElement; use dom::node::{AbstractNode, Node, ElementNodeTypeId, TextNodeTypeId, CommentNodeTypeId}; use dom::node::{DoctypeNodeTypeId, ScriptView, Text}; @@ -101,14 +95,12 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject ElementNodeTypeId(HTMLHtmlElementTypeId) => generate_element!(HTMLHtmlElement), ElementNodeTypeId(HTMLIframeElementTypeId) => generate_element!(HTMLIFrameElement), ElementNodeTypeId(HTMLImageElementTypeId) => generate_element!(HTMLImageElement), -<<<<<<< HEAD - ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), -======= ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement), ->>>>>>> Generate bindings for HTMLMetaElement. + ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement), ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement), ElementNodeTypeId(HTMLScriptElementTypeId) => generate_element!(HTMLScriptElement), ElementNodeTypeId(HTMLSpanElementTypeId) => generate_element!(HTMLSpanElement), + ElementNodeTypeId(HTMLStyleElementTypeId) => generate_element!(HTMLStyleElement), ElementNodeTypeId(_) => element::create(cx, node).ptr, CommentNodeTypeId | DoctypeNodeTypeId => text::create(cx, node).ptr, diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs index 2b859f00edf..88da76d83fd 100644 --- a/src/components/script/dom/bindings/utils.rs +++ b/src/components/script/dom/bindings/utils.rs @@ -617,7 +617,7 @@ pub extern fn ThrowingConstructor(_cx: *JSContext, _argc: uint, _vp: *JSVal) -> } pub fn initialize_global(global: *JSObject) { - let protoArray = @mut ([0 as *JSObject, ..43]); + let protoArray = @mut ([0 as *JSObject, ..44]); assert!(protoArray.len() == PrototypeList::id::_ID_Count as uint); unsafe { //XXXjdm we should be storing the box pointer instead of the inner diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 9dde380cc6f..0894d30c89f 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -10,7 +10,7 @@ use dom::bindings::codegen::{HTMLHRElementBinding, HTMLIFrameElementBinding}; use dom::bindings::codegen::{HTMLParagraphElementBinding, HTMLScriptElementBinding}; use dom::bindings::codegen::{HTMLDivElementBinding, HTMLSpanElementBinding}; use dom::bindings::codegen::{HTMLImageElementBinding, HTMLOListElementBinding}; -use dom::bindings::codegen::{HTMLMetaElementBinding}; +use dom::bindings::codegen::{HTMLMetaElementBinding, HTMLStyleElementBinding}; use dom::bindings::utils::{null_string, str}; use dom::bindings::utils::{BindingObject, CacheableWrapper, DOMString, ErrorResult, WrapperCache}; use dom::clientrect::ClientRect; @@ -25,6 +25,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlscriptelement::HTMLScriptElement; +use dom::htmlstyleelement::HTMLStyleElement; use dom::node::{ElementNodeTypeId, Node, ScriptView, AbstractNode}; use layout_interface::{ContentBoxQuery, ContentBoxResponse, ContentBoxesQuery}; use layout_interface::{ContentBoxesResponse}; @@ -120,7 +121,6 @@ pub struct HTMLSectionElement { parent: HTMLElement } pub struct HTMLSelectElement { parent: HTMLElement } pub struct HTMLSmallElement { parent: HTMLElement } pub struct HTMLSpanElement { parent: HTMLElement } -pub struct HTMLStyleElement { parent: HTMLElement } pub struct HTMLTableBodyElement { parent: HTMLElement } pub struct HTMLTableCellElement { parent: HTMLElement } pub struct HTMLTableElement { parent: HTMLElement } @@ -207,6 +207,8 @@ generate_cacheable_wrapper!(HTMLScriptElement, HTMLScriptElementBinding::Wrap) generate_binding_object!(HTMLScriptElement) generate_cacheable_wrapper!(HTMLSpanElement, HTMLSpanElementBinding::Wrap) generate_binding_object!(HTMLSpanElement) +generate_cacheable_wrapper!(HTMLStyleElement, HTMLStyleElementBinding::Wrap) +generate_binding_object!(HTMLStyleElement) // // Fancier elements diff --git a/src/components/script/dom/htmlstyleelement.rs b/src/components/script/dom/htmlstyleelement.rs new file mode 100644 index 00000000000..f79b8da679d --- /dev/null +++ b/src/components/script/dom/htmlstyleelement.rs @@ -0,0 +1,40 @@ +/* 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::utils::{DOMString, null_string, ErrorResult}; +use dom::htmlelement::HTMLElement; + +pub struct HTMLStyleElement { + parent: HTMLElement, +} + +impl HTMLStyleElement { + pub fn Disabled(&self) -> bool { + false + } + + pub fn SetDisabled(&self, _disabled: bool) { + } + + pub fn Media(&self) -> DOMString { + null_string + } + + pub fn SetMedia(&mut self, _media: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Type(&self) -> DOMString { + null_string + } + + pub fn SetType(&mut self, _type: &DOMString, _rv: &mut ErrorResult) { + } + + pub fn Scoped(&self) -> bool { + false + } + + pub fn SetScoped(&self, _scoped: bool, _rv: &mut ErrorResult) { + } +} diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index 6c45f912047..a89ebf76bd2 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -21,7 +21,7 @@ use dom::element::{HTMLAsideElement, HTMLBRElement, HTMLInputElement, HTMLItalicElement, HTMLLinkElement, HTMLOptionElement, HTMLParagraphElement, HTMLListItemElement, HTMLSectionElement, HTMLSelectElement, HTMLSmallElement, - HTMLSpanElement, HTMLStyleElement, HTMLTableBodyElement, + HTMLSpanElement, HTMLTableBodyElement, HTMLTableCellElement, HTMLTableElement, HTMLTableRowElement, HTMLTitleElement, HTMLUListElement}; use dom::element::{HTMLHeadingElementTypeId, Heading1, Heading2, Heading3, Heading4, Heading5, @@ -34,6 +34,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmlmetaelement::HTMLMetaElement; use dom::htmlolistelement::HTMLOListElement; use dom::htmlscriptelement::HTMLScriptElement; +use dom::htmlstyleelement::HTMLStyleElement; use dom::element::{Element, Attr}; use dom::htmlelement::HTMLElement; use dom::node::{AbstractNode, Comment, Doctype, ElementNodeTypeId, Node, ScriptView}; diff --git a/src/components/script/script.rc b/src/components/script/script.rc index 5feda69fdd7..2b20104347a 100644 --- a/src/components/script/script.rc +++ b/src/components/script/script.rc @@ -58,6 +58,7 @@ pub mod dom { pub mod HTMLParagraphElementBinding; pub mod HTMLScriptElementBinding; pub mod HTMLSpanElementBinding; + pub mod HTMLStyleElementBinding; pub mod MouseEventBinding; pub mod NodeBinding; pub mod PrototypeList; @@ -89,6 +90,7 @@ pub mod dom { pub mod htmlmetaelement; pub mod htmlolistelement; pub mod htmlscriptelement; + pub mod htmlstyleelement; pub mod mouseevent; pub mod node; pub mod uievent; |