aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/bindings/codegen/Bindings.conf1
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py1
-rw-r--r--src/components/script/dom/bindings/codegen/HTMLStyleElement.webidl23
-rw-r--r--src/components/script/dom/bindings/node.rs18
-rw-r--r--src/components/script/dom/bindings/utils.rs2
-rw-r--r--src/components/script/dom/element.rs6
-rw-r--r--src/components/script/dom/htmlstyleelement.rs40
-rw-r--r--src/components/script/html/hubbub_html_parser.rs3
-rw-r--r--src/components/script/script.rc2
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;