mirror of
https://github.com/servo/servo.git
synced 2025-06-08 08:33:26 +00:00
Generate bindings for HTMLObjectElement.
This commit is contained in:
parent
4c92810291
commit
a2739fd196
8 changed files with 371 additions and 0 deletions
|
@ -587,6 +587,7 @@ addHTMLElement('HTMLMapElement')
|
||||||
addHTMLElement('HTMLMetaElement')
|
addHTMLElement('HTMLMetaElement')
|
||||||
addHTMLElement('HTMLMeterElement')
|
addHTMLElement('HTMLMeterElement')
|
||||||
addHTMLElement('HTMLModElement')
|
addHTMLElement('HTMLModElement')
|
||||||
|
addHTMLElement('HTMLObjectElement')
|
||||||
addHTMLElement('HTMLOListElement')
|
addHTMLElement('HTMLOListElement')
|
||||||
addHTMLElement('HTMLParagraphElement')
|
addHTMLElement('HTMLParagraphElement')
|
||||||
addHTMLElement('HTMLProgressElement')
|
addHTMLElement('HTMLProgressElement')
|
||||||
|
|
|
@ -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;*/
|
|
@ -397,6 +397,8 @@ generate_cacheable_wrapper!(HTMLMeterElement, HTMLMeterElementBinding::Wrap)
|
||||||
generate_binding_object!(HTMLMeterElement)
|
generate_binding_object!(HTMLMeterElement)
|
||||||
generate_cacheable_wrapper!(HTMLModElement, HTMLModElementBinding::Wrap)
|
generate_cacheable_wrapper!(HTMLModElement, HTMLModElementBinding::Wrap)
|
||||||
generate_binding_object!(HTMLModElement)
|
generate_binding_object!(HTMLModElement)
|
||||||
|
generate_cacheable_wrapper!(HTMLObjectElement, HTMLObjectElementBinding::Wrap)
|
||||||
|
generate_binding_object!(HTMLObjectElement)
|
||||||
generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap)
|
generate_cacheable_wrapper!(HTMLOListElement, HTMLOListElementBinding::Wrap)
|
||||||
generate_binding_object!(HTMLOListElement)
|
generate_binding_object!(HTMLOListElement)
|
||||||
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
|
generate_cacheable_wrapper!(HTMLParagraphElement, HTMLParagraphElementBinding::Wrap)
|
||||||
|
|
|
@ -104,6 +104,7 @@ pub fn create(cx: *JSContext, node: &mut AbstractNode<ScriptView>) -> *JSObject
|
||||||
ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement),
|
ElementNodeTypeId(HTMLMetaElementTypeId) => generate_element!(HTMLMetaElement),
|
||||||
ElementNodeTypeId(HTMLMeterElementTypeId) => generate_element!(HTMLMeterElement),
|
ElementNodeTypeId(HTMLMeterElementTypeId) => generate_element!(HTMLMeterElement),
|
||||||
ElementNodeTypeId(HTMLModElementTypeId) => generate_element!(HTMLModElement),
|
ElementNodeTypeId(HTMLModElementTypeId) => generate_element!(HTMLModElement),
|
||||||
|
ElementNodeTypeId(HTMLObjectElementTypeId) => generate_element!(HTMLObjectElement),
|
||||||
ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement),
|
ElementNodeTypeId(HTMLOListElementTypeId) => generate_element!(HTMLOListElement),
|
||||||
ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement),
|
ElementNodeTypeId(HTMLParagraphElementTypeId) => generate_element!(HTMLParagraphElement),
|
||||||
ElementNodeTypeId(HTMLProgressElementTypeId) => generate_element!(HTMLProgressElement),
|
ElementNodeTypeId(HTMLProgressElementTypeId) => generate_element!(HTMLProgressElement),
|
||||||
|
|
|
@ -80,6 +80,7 @@ pub enum ElementTypeId {
|
||||||
HTMLMetaElementTypeId,
|
HTMLMetaElementTypeId,
|
||||||
HTMLMeterElementTypeId,
|
HTMLMeterElementTypeId,
|
||||||
HTMLModElementTypeId,
|
HTMLModElementTypeId,
|
||||||
|
HTMLObjectElementTypeId,
|
||||||
HTMLOListElementTypeId,
|
HTMLOListElementTypeId,
|
||||||
HTMLOptionElementTypeId,
|
HTMLOptionElementTypeId,
|
||||||
HTMLParagraphElementTypeId,
|
HTMLParagraphElementTypeId,
|
||||||
|
|
163
src/components/script/dom/htmlobjectelement.rs
Normal file
163
src/components/script/dom/htmlobjectelement.rs
Normal 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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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, "meta", HTMLMetaElementTypeId, HTMLMetaElement, []);
|
||||||
handle_element!(cx, tag, "meter", HTMLMeterElementTypeId, HTMLMeterElement, []);
|
handle_element!(cx, tag, "meter", HTMLMeterElementTypeId, HTMLMeterElement, []);
|
||||||
handle_element!(cx, tag, "mod", HTMLModElementTypeId, HTMLModElement, []);
|
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, "ol", HTMLOListElementTypeId, HTMLOListElement, []);
|
||||||
handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []);
|
handle_element!(cx, tag, "option", HTMLOptionElementTypeId, HTMLOptionElement, []);
|
||||||
handle_element!(cx, tag, "p", HTMLParagraphElementTypeId, HTMLParagraphElement, []);
|
handle_element!(cx, tag, "p", HTMLParagraphElementTypeId, HTMLParagraphElement, []);
|
||||||
|
|
|
@ -89,6 +89,7 @@ pub mod dom {
|
||||||
pub mod htmlmetaelement;
|
pub mod htmlmetaelement;
|
||||||
pub mod htmlmeterelement;
|
pub mod htmlmeterelement;
|
||||||
pub mod htmlmodelement;
|
pub mod htmlmodelement;
|
||||||
|
pub mod htmlobjectelement;
|
||||||
pub mod htmlolistelement;
|
pub mod htmlolistelement;
|
||||||
pub mod htmlparagraphelement;
|
pub mod htmlparagraphelement;
|
||||||
pub mod htmlprogresselement;
|
pub mod htmlprogresselement;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue