Generate bindings for HTMLObjectElement.

This commit is contained in:
Josh Matthews 2013-08-28 09:22:08 -04:00
parent 4c92810291
commit a2739fd196
8 changed files with 371 additions and 0 deletions

View file

@ -587,6 +587,7 @@ addHTMLElement('HTMLMapElement')
addHTMLElement('HTMLMetaElement')
addHTMLElement('HTMLMeterElement')
addHTMLElement('HTMLModElement')
addHTMLElement('HTMLObjectElement')
addHTMLElement('HTMLOListElement')
addHTMLElement('HTMLParagraphElement')
addHTMLElement('HTMLProgressElement')

View file

@ -0,0 +1,201 @@
/* -*- 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-object-element
* http://www.whatwg.org/specs/web-apps/current-work/#HTMLObjectElement-partial
*
* © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and
* Opera Software ASA. You are granted a license to use, reproduce
* and create derivative works of this document.
*/
// http://www.whatwg.org/specs/web-apps/current-work/#the-object-element
[NeedNewResolve]
interface HTMLObjectElement : HTMLElement {
[Pure, SetterThrows]
attribute DOMString data;
[Pure, SetterThrows]
attribute DOMString type;
// attribute boolean typeMustMatch;
[Pure, SetterThrows]
attribute DOMString name;
[Pure, SetterThrows]
attribute DOMString useMap;
[Pure]
readonly attribute HTMLFormElement? form;
[Pure, SetterThrows]
attribute DOMString width;
[Pure, SetterThrows]
attribute DOMString height;
// Not pure: can trigger about:blank instantiation
readonly attribute Document? contentDocument;
// Not pure: can trigger about:blank instantiation
readonly attribute WindowProxy? contentWindow;
readonly attribute boolean willValidate;
readonly attribute ValidityState validity;
readonly attribute DOMString validationMessage;
boolean checkValidity();
void setCustomValidity(DOMString error);
/*[Throws]
legacycaller any (any... arguments);*/
};
// http://www.whatwg.org/specs/web-apps/current-work/#HTMLObjectElement-partial
partial interface HTMLObjectElement {
[Pure, SetterThrows]
attribute DOMString align;
[Pure, SetterThrows]
attribute DOMString archive;
[Pure, SetterThrows]
attribute DOMString code;
[Pure, SetterThrows]
attribute boolean declare;
[Pure, SetterThrows]
attribute unsigned long hspace;
[Pure, SetterThrows]
attribute DOMString standby;
[Pure, SetterThrows]
attribute unsigned long vspace;
[Pure, SetterThrows]
attribute DOMString codeBase;
[Pure, SetterThrows]
attribute DOMString codeType;
[TreatNullAs=EmptyString, Pure, SetterThrows]
attribute DOMString border;
};
partial interface HTMLObjectElement {
// GetSVGDocument
Document? getSVGDocument();
};
/*[NoInterfaceObject]
interface MozObjectLoadingContent {
// Mirrored chrome-only scriptable nsIObjectLoadingContent methods. Please
// make sure to update this list if nsIObjectLoadingContent changes. Also,
// make sure everything on here is [ChromeOnly].
[ChromeOnly]
const unsigned long TYPE_LOADING = 0;
[ChromeOnly]
const unsigned long TYPE_IMAGE = 1;
[ChromeOnly]
const unsigned long TYPE_PLUGIN = 2;
[ChromeOnly]
const unsigned long TYPE_DOCUMENT = 3;
[ChromeOnly]
const unsigned long TYPE_NULL = 4;
// The content type is not supported (e.g. plugin not installed)
[ChromeOnly]
const unsigned long PLUGIN_UNSUPPORTED = 0;
// Showing alternate content
[ChromeOnly]
const unsigned long PLUGIN_ALTERNATE = 1;
// The plugin exists, but is disabled
[ChromeOnly]
const unsigned long PLUGIN_DISABLED = 2;
// The plugin is blocklisted and disabled
[ChromeOnly]
const unsigned long PLUGIN_BLOCKLISTED = 3;
// The plugin is considered outdated, but not disabled
[ChromeOnly]
const unsigned long PLUGIN_OUTDATED = 4;
// The plugin has crashed
[ChromeOnly]
const unsigned long PLUGIN_CRASHED = 5;
// Suppressed by security policy
[ChromeOnly]
const unsigned long PLUGIN_SUPPRESSED = 6;
// Blocked by content policy
[ChromeOnly]
const unsigned long PLUGIN_USER_DISABLED = 7;
/// ** All values >= PLUGIN_CLICK_TO_PLAY are plugin placeholder types that
/// would be replaced by a real plugin if activated (playPlugin())
/// ** Furthermore, values >= PLUGIN_CLICK_TO_PLAY and
/// <= PLUGIN_VULNERABLE_NO_UPDATE are click-to-play types.
// The plugin is disabled until the user clicks on it
[ChromeOnly]
const unsigned long PLUGIN_CLICK_TO_PLAY = 8;
// The plugin is vulnerable (update available)
[ChromeOnly]
const unsigned long PLUGIN_VULNERABLE_UPDATABLE = 9;
// The plugin is vulnerable (no update available)
[ChromeOnly]
const unsigned long PLUGIN_VULNERABLE_NO_UPDATE = 10;
// The plugin is in play preview mode
[ChromeOnly]
const unsigned long PLUGIN_PLAY_PREVIEW = 11;*/
/**
* The actual mime type (the one we got back from the network
* request) for the element.
*/
/*[ChromeOnly]
readonly attribute DOMString actualType;*/
/**
* Gets the type of the content that's currently loaded. See
* the constants above for the list of possible values.
*/
/*[ChromeOnly]
readonly attribute unsigned long displayedType;*/
/**
* Gets the content type that corresponds to the give MIME type. See the
* constants above for the list of possible values. If nothing else fits,
* TYPE_NULL will be returned.
*/
/*[ChromeOnly]
unsigned long getContentTypeForMIMEType(DOMString aMimeType);*/
/**
* This method will play a plugin that has been stopped by the
* click-to-play plugins or play-preview features.
*/
/*[ChromeOnly, Throws]
void playPlugin();*/
/**
* This attribute will return true if the current content type has been
* activated, either explicitly or by passing checks that would have it be
* click-to-play or play-preview.
*/
/*[ChromeOnly]
readonly attribute boolean activated;*/
/**
* The URL of the data/src loaded in the object. This may be null (i.e.
* an <embed> with no src).
*/
/*[ChromeOnly]
readonly attribute URI? srcURI;
[ChromeOnly]
readonly attribute unsigned long defaultFallbackType;
[ChromeOnly]
readonly attribute unsigned long pluginFallbackType;*/
/**
* If this object currently owns a running plugin, regardless of whether or
* not one is pending spawn/despawn.
*/
/*[ChromeOnly]
readonly attribute boolean hasRunningPlugin;*/
/**
* This method will disable the play-preview plugin state.
*/
/*[ChromeOnly, Throws]
void cancelPlayPreview();*/
//};
/*HTMLObjectElement implements MozImageLoadingContent;
HTMLObjectElement implements MozFrameLoaderOwner;
HTMLObjectElement implements MozObjectLoadingContent;*/

View file

@ -397,6 +397,8 @@ generate_cacheable_wrapper!(HTMLMeterElement, HTMLMeterElementBinding::Wrap)
generate_binding_object!(HTMLMeterElement)
generate_cacheable_wrapper!(HTMLModElement, HTMLModElementBinding::Wrap)
generate_binding_object!(HTMLModElement)
generate_cacheable_wrapper!(HTMLObjectElement, HTMLObjectElementBinding::Wrap)
generate_binding_object!(HTMLObjectElement)
generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap)
generate_binding_object!(HTMLOListElement)
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)

View file

@ -104,6 +104,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement),
ElementNodeTypeId(HTMLMeterElementTypeId) => generate_element!(HTMLMeterElement),
ElementNodeTypeId(HTMLModElementTypeId) => generate_element!(HTMLModElement),
ElementNodeTypeId(HTMLObjectElementTypeId) => generate_element!(HTMLObjectElement),
ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement),
ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement),
ElementNodeTypeId(HTMLProgressElementTypeId) => generate_element!(HTMLProgressElement),

View file

@ -80,6 +80,7 @@ pub enum ElementTypeId {
HTMLMetaElementTypeId,
HTMLMeterElementTypeId,
HTMLModElementTypeId,
HTMLObjectElementTypeId,
HTMLOListElementTypeId,
HTMLOptionElementTypeId,
HTMLParagraphElementTypeId,

View file

@ -0,0 +1,163 @@
/* 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::document::AbstractDocument;
use dom::htmlelement::HTMLElement;
use dom::node::{AbstractNode, ScriptView};
use dom::validitystate::ValidityState;
use dom::windowproxy::WindowProxy;
pub struct HTMLObjectElement {
parent: HTMLElement
}
impl HTMLObjectElement {
pub fn Data(&self) -> DOMString {
null_string
}
pub fn SetData(&mut self, _data: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Type(&self) -> DOMString {
null_string
}
pub fn SetType(&mut self, _type: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Name(&self) -> DOMString {
null_string
}
pub fn SetName(&mut self, _name: &DOMString, _rv: &mut ErrorResult) {
}
pub fn UseMap(&self) -> DOMString {
null_string
}
pub fn SetUseMap(&mut self, _use_map: &DOMString, _rv: &mut ErrorResult) {
}
pub fn GetForm(&self) -> Option<AbstractNode<ScriptView>> {
None
}
pub fn Width(&self) -> DOMString {
null_string
}
pub fn SetWidth(&mut self, _width: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Height(&self) -> DOMString {
null_string
}
pub fn SetHeight(&mut self, _height: &DOMString, _rv: &mut ErrorResult) {
}
pub fn GetContentDocument(&self) -> Option<AbstractDocument> {
None
}
pub fn GetContentWindow(&self) -> Option<@mut WindowProxy> {
None
}
pub fn WillValidate(&self) -> bool {
false
}
pub fn Validity(&self) -> @mut ValidityState {
@mut ValidityState::valid()
}
pub fn ValidationMessage(&self) -> DOMString {
null_string
}
pub fn CheckValidity(&self) -> bool {
false
}
pub fn SetCustomValidity(&mut self, _error: &DOMString) {
}
pub fn Align(&self) -> DOMString {
null_string
}
pub fn SetAlign(&mut self, _align: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Archive(&self) -> DOMString {
null_string
}
pub fn SetArchive(&mut self, _archive: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Code(&self) -> DOMString {
null_string
}
pub fn SetCode(&mut self, _code: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Declare(&self) -> bool {
false
}
pub fn SetDeclare(&mut self, _declare: bool, _rv: &mut ErrorResult) {
}
pub fn Hspace(&self) -> u32 {
0
}
pub fn SetHspace(&mut self, _hspace: u32, _rv: &mut ErrorResult) {
}
pub fn Standby(&self) -> DOMString {
null_string
}
pub fn SetStandby(&mut self, _standby: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Vspace(&self) -> u32 {
0
}
pub fn SetVspace(&mut self, _vspace: u32, _rv: &mut ErrorResult) {
}
pub fn CodeBase(&self) -> DOMString {
null_string
}
pub fn SetCodeBase(&mut self, _codebase: &DOMString, _rv: &mut ErrorResult) {
}
pub fn CodeType(&self) -> DOMString {
null_string
}
pub fn SetCodeType(&mut self, _codetype: &DOMString, _rv: &mut ErrorResult) {
}
pub fn Border(&self) -> DOMString {
null_string
}
pub fn SetBorder(&mut self, _border: &DOMString, _rv: &mut ErrorResult) {
}
pub fn GetSVGDocument(&self) -> Option<AbstractDocument> {
None
}
}

View file

@ -214,6 +214,7 @@ fn build_element_from_tag(cx: *JSContext, tag: &str) -> AbstractNode<ScriptView>
handle_element!(cx, tag, "meta", HTMLMetaElementTypeId, HTMLMetaElement, []);
handle_element!(cx, tag, "meter", HTMLMeterElementTypeId, HTMLMeterElement, []);
handle_element!(cx, tag, "mod", HTMLModElementTypeId, HTMLModElement, []);
handle_element!(cx, tag, "object", HTMLObjectElementTypeId, HTMLObjectElement, []);
handle_element!(cx, tag, "ol", HTMLOListElementTypeId, HTMLOListElement, []);
handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []);
handle_element!(cx, tag, "p", HTMLParagraphElementTypeId, HTMLParagraphElement, []);

View file

@ -89,6 +89,7 @@ pub mod dom {
pub mod htmlmetaelement;
pub mod htmlmeterelement;
pub mod htmlmodelement;
pub mod htmlobjectelement;
pub mod htmlolistelement;
pub mod htmlparagraphelement;
pub mod htmlprogresselement;