mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Auto merge of #12353 - Ms2ger:expose, r=jdm
Implement [Exposed]. <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12353) <!-- Reviewable:end -->
This commit is contained in:
commit
6d59be17be
210 changed files with 374 additions and 249 deletions
|
@ -1817,20 +1817,25 @@ def DOMClassTypeId(desc):
|
|||
|
||||
|
||||
def DOMClass(descriptor):
|
||||
protoList = ['PrototypeList::ID::' + proto for proto in descriptor.prototypeChain]
|
||||
# Pad out the list to the right length with ID::Last so we
|
||||
# guarantee that all the lists are the same length. ID::Last
|
||||
# is never the ID of any prototype, so it's safe to use as
|
||||
# padding.
|
||||
protoList.extend(['PrototypeList::ID::Last'] * (descriptor.config.maxProtoChainLength - len(protoList)))
|
||||
prototypeChainString = ', '.join(protoList)
|
||||
heapSizeOf = 'heap_size_of_raw_self_and_children::<%s>' % descriptor.interface.identifier.name
|
||||
return """\
|
||||
protoList = ['PrototypeList::ID::' + proto for proto in descriptor.prototypeChain]
|
||||
# Pad out the list to the right length with ID::Last so we
|
||||
# guarantee that all the lists are the same length. ID::Last
|
||||
# is never the ID of any prototype, so it's safe to use as
|
||||
# padding.
|
||||
protoList.extend(['PrototypeList::ID::Last'] * (descriptor.config.maxProtoChainLength - len(protoList)))
|
||||
prototypeChainString = ', '.join(protoList)
|
||||
heapSizeOf = 'heap_size_of_raw_self_and_children::<%s>' % descriptor.interface.identifier.name
|
||||
if descriptor.isGlobal():
|
||||
globals_ = camel_to_upper_snake(descriptor.name)
|
||||
else:
|
||||
globals_ = 'EMPTY'
|
||||
return """\
|
||||
DOMClass {
|
||||
interface_chain: [ %s ],
|
||||
type_id: %s,
|
||||
heap_size_of: %s as unsafe fn(_) -> _,
|
||||
}""" % (prototypeChainString, DOMClassTypeId(descriptor), heapSizeOf)
|
||||
global: InterfaceObjectMap::%s,
|
||||
}""" % (prototypeChainString, DOMClassTypeId(descriptor), heapSizeOf, globals_)
|
||||
|
||||
|
||||
class CGDOMJSClass(CGThing):
|
||||
|
@ -2143,8 +2148,8 @@ class CGAbstractMethod(CGThing):
|
|||
docs is None or documentation for the method in a string.
|
||||
"""
|
||||
def __init__(self, descriptor, name, returnType, args, inline=False,
|
||||
alwaysInline=False, extern=False, pub=False, templateArgs=None,
|
||||
unsafe=False, docs=None, doesNotPanic=False):
|
||||
alwaysInline=False, extern=False, unsafe_fn=False, pub=False,
|
||||
templateArgs=None, unsafe=False, docs=None, doesNotPanic=False):
|
||||
CGThing.__init__(self)
|
||||
self.descriptor = descriptor
|
||||
self.name = name
|
||||
|
@ -2152,6 +2157,7 @@ class CGAbstractMethod(CGThing):
|
|||
self.args = args
|
||||
self.alwaysInline = alwaysInline
|
||||
self.extern = extern
|
||||
self.unsafe_fn = extern or unsafe_fn
|
||||
self.templateArgs = templateArgs
|
||||
self.pub = pub
|
||||
self.unsafe = unsafe
|
||||
|
@ -2178,13 +2184,15 @@ class CGAbstractMethod(CGThing):
|
|||
if self.alwaysInline:
|
||||
decorators.append('#[inline]')
|
||||
|
||||
if self.extern:
|
||||
decorators.append('unsafe')
|
||||
decorators.append('extern')
|
||||
|
||||
if self.pub:
|
||||
decorators.append('pub')
|
||||
|
||||
if self.unsafe_fn:
|
||||
decorators.append('unsafe')
|
||||
|
||||
if self.extern:
|
||||
decorators.append('extern')
|
||||
|
||||
if not decorators:
|
||||
return ''
|
||||
return ' '.join(decorators) + ' '
|
||||
|
@ -2230,45 +2238,37 @@ match result {
|
|||
|
||||
class CGConstructorEnabled(CGAbstractMethod):
|
||||
"""
|
||||
A method for testing whether we should be exposing this interface
|
||||
object or navigator property. This can perform various tests
|
||||
depending on what conditions are specified on the interface.
|
||||
A method for testing whether we should be exposing this interface object.
|
||||
This can perform various tests depending on what conditions are specified
|
||||
on the interface.
|
||||
"""
|
||||
def __init__(self, descriptor):
|
||||
CGAbstractMethod.__init__(self, descriptor,
|
||||
'ConstructorEnabled', 'bool',
|
||||
[Argument("*mut JSContext", "aCx"),
|
||||
Argument("HandleObject", "aObj")])
|
||||
Argument("HandleObject", "aObj")],
|
||||
unsafe_fn=True)
|
||||
|
||||
def definition_body(self):
|
||||
body = CGList([], "\n")
|
||||
|
||||
conditions = []
|
||||
iface = self.descriptor.interface
|
||||
|
||||
bits = " | ".join(sorted(
|
||||
"InterfaceObjectMap::" + camel_to_upper_snake(i) for i in iface.exposureSet
|
||||
))
|
||||
conditions.append("is_exposed_in(aObj, %s)" % bits)
|
||||
|
||||
pref = iface.getExtendedAttribute("Pref")
|
||||
if pref:
|
||||
assert isinstance(pref, list) and len(pref) == 1
|
||||
conditions.append('PREFS.get("%s").as_boolean().unwrap_or(false)' % pref[0])
|
||||
|
||||
func = iface.getExtendedAttribute("Func")
|
||||
if func:
|
||||
assert isinstance(func, list) and len(func) == 1
|
||||
conditions.append("%s(aCx, aObj)" % func[0])
|
||||
# We should really have some conditions
|
||||
assert len(body) or len(conditions)
|
||||
|
||||
conditionsWrapper = ""
|
||||
if len(conditions):
|
||||
conditionsWrapper = CGWrapper(CGList((CGGeneric(cond) for cond in conditions),
|
||||
" &&\n"),
|
||||
pre="return ",
|
||||
post=";\n",
|
||||
reindent=True)
|
||||
else:
|
||||
conditionsWrapper = CGGeneric("return true;\n")
|
||||
|
||||
body.append(conditionsWrapper)
|
||||
return body
|
||||
return CGList((CGGeneric(cond) for cond in conditions), " &&\n")
|
||||
|
||||
|
||||
def CreateBindingJSObject(descriptor, parent=None):
|
||||
|
@ -2806,27 +2806,27 @@ class CGDefineDOMInterfaceMethod(CGAbstractMethod):
|
|||
Argument('*mut JSContext', 'cx'),
|
||||
Argument('HandleObject', 'global'),
|
||||
]
|
||||
CGAbstractMethod.__init__(self, descriptor, 'DefineDOMInterface', 'void', args, pub=True)
|
||||
CGAbstractMethod.__init__(self, descriptor, 'DefineDOMInterface',
|
||||
'void', args, pub=True, unsafe_fn=True)
|
||||
|
||||
def define(self):
|
||||
return CGAbstractMethod.define(self)
|
||||
|
||||
def definition_body(self):
|
||||
def getCheck(desc):
|
||||
if not desc.isExposedConditionally():
|
||||
return ""
|
||||
else:
|
||||
return "if !ConstructorEnabled(cx, global) { return; }"
|
||||
if self.descriptor.interface.isCallback():
|
||||
function = "GetConstructorObject"
|
||||
else:
|
||||
function = "GetProtoObject"
|
||||
return CGGeneric("""\
|
||||
assert!(!global.get().is_null());
|
||||
%s
|
||||
|
||||
if !ConstructorEnabled(cx, global) {
|
||||
return;
|
||||
}
|
||||
|
||||
rooted!(in(cx) let mut proto = ptr::null_mut());
|
||||
%s(cx, global, proto.handle_mut());
|
||||
assert!(!proto.is_null());""" % (getCheck(self.descriptor), function))
|
||||
assert!(!proto.is_null());""" % (function,))
|
||||
|
||||
|
||||
def needCx(returnType, arguments, considerTypes):
|
||||
|
@ -5140,8 +5140,7 @@ class CGDescriptor(CGThing):
|
|||
|
||||
if descriptor.interface.hasInterfaceObject():
|
||||
cgThings.append(CGDefineDOMInterfaceMethod(descriptor))
|
||||
if descriptor.isExposedConditionally():
|
||||
cgThings.append(CGConstructorEnabled(descriptor))
|
||||
cgThings.append(CGConstructorEnabled(descriptor))
|
||||
|
||||
if descriptor.proxy:
|
||||
cgThings.append(CGDefineProxyHandler(descriptor))
|
||||
|
@ -5562,6 +5561,7 @@ class CGBindingRoot(CGThing):
|
|||
'js::glue::AppendToAutoIdVector',
|
||||
'js::rust::{GCMethods, define_methods, define_properties}',
|
||||
'dom::bindings',
|
||||
'dom::bindings::codegen::InterfaceObjectMap',
|
||||
'dom::bindings::global::{GlobalRef, global_root_from_object, global_root_from_reflector}',
|
||||
'dom::bindings::interface::{InterfaceConstructorBehavior, NonCallbackInterfaceObjectClass}',
|
||||
'dom::bindings::interface::{create_callback_interface_object, create_interface_prototype_object}',
|
||||
|
@ -5569,6 +5569,7 @@ class CGBindingRoot(CGThing):
|
|||
'dom::bindings::interface::{define_guarded_methods, define_guarded_properties}',
|
||||
'dom::bindings::interface::{ConstantSpec, NonNullJSNative}',
|
||||
'dom::bindings::interface::ConstantVal::{IntVal, UintVal}',
|
||||
'dom::bindings::interface::is_exposed_in',
|
||||
'dom::bindings::js::{JS, Root, RootedReference}',
|
||||
'dom::bindings::js::{OptionalRootedReference}',
|
||||
'dom::bindings::reflector::{Reflectable}',
|
||||
|
@ -6222,6 +6223,10 @@ class CallbackSetter(CallbackMember):
|
|||
return None
|
||||
|
||||
|
||||
def camel_to_upper_snake(s):
|
||||
return "_".join(m.group(0).upper() for m in re.finditer("[A-Z][a-z]*", s))
|
||||
|
||||
|
||||
class GlobalGenRoots():
|
||||
"""
|
||||
Roots for global codegen.
|
||||
|
@ -6239,6 +6244,18 @@ class GlobalGenRoots():
|
|||
]
|
||||
imports = CGList([CGGeneric("use %s;" % mod) for mod in mods], "\n")
|
||||
|
||||
global_descriptors = config.getDescriptors(isGlobal=True)
|
||||
flags = [("EMPTY", 0)]
|
||||
flags.extend(
|
||||
(camel_to_upper_snake(d.name), 2 ** idx)
|
||||
for (idx, d) in enumerate(global_descriptors)
|
||||
)
|
||||
global_flags = CGWrapper(CGIndenter(CGList([
|
||||
CGGeneric("const %s = %#x," % args)
|
||||
for args in flags
|
||||
], "\n")), pre="pub flags Globals: u8 {\n", post="\n}")
|
||||
globals_ = CGWrapper(CGIndenter(global_flags), pre="bitflags! {\n", post="\n}")
|
||||
|
||||
pairs = []
|
||||
for d in config.getDescriptors(hasInterfaceObject=True):
|
||||
binding = toBindingNamespace(d.name)
|
||||
|
@ -6247,10 +6264,10 @@ class GlobalGenRoots():
|
|||
pairs.append((ctor.identifier.name, binding))
|
||||
pairs.sort(key=operator.itemgetter(0))
|
||||
mappings = [
|
||||
CGGeneric('b"%s" => codegen::Bindings::%s::DefineDOMInterface as fn(_, _),' % pair)
|
||||
CGGeneric('b"%s" => codegen::Bindings::%s::DefineDOMInterface as unsafe fn(_, _),' % pair)
|
||||
for pair in pairs
|
||||
]
|
||||
mapType = "phf::Map<&'static [u8], fn(*mut JSContext, HandleObject)>"
|
||||
mapType = "phf::Map<&'static [u8], unsafe fn(*mut JSContext, HandleObject)>"
|
||||
phf = CGWrapper(
|
||||
CGIndenter(CGList(mappings, "\n")),
|
||||
pre="pub static MAP: %s = phf_map! {\n" % mapType,
|
||||
|
@ -6258,7 +6275,7 @@ class GlobalGenRoots():
|
|||
|
||||
return CGList([
|
||||
CGGeneric(AUTOGENERATED_WARNING_COMMENT),
|
||||
CGList([imports, phf], "\n\n")
|
||||
CGList([imports, globals_, phf], "\n\n")
|
||||
])
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -85,6 +85,8 @@ class Configuration:
|
|||
getter = lambda x: x.interface.isCallback()
|
||||
elif key == 'isJSImplemented':
|
||||
getter = lambda x: x.interface.isJSImplemented()
|
||||
elif key == 'isGlobal':
|
||||
getter = lambda x: x.isGlobal()
|
||||
else:
|
||||
getter = lambda x: getattr(x, key)
|
||||
curr = filter(lambda x: getter(x) == val, curr)
|
||||
|
@ -367,8 +369,8 @@ class Descriptor(DescriptorProvider):
|
|||
Returns true if this is the primary interface for a global object
|
||||
of some sort.
|
||||
"""
|
||||
return (self.interface.getExtendedAttribute("Global") or
|
||||
self.interface.getExtendedAttribute("PrimaryGlobal"))
|
||||
return bool(self.interface.getExtendedAttribute("Global") or
|
||||
self.interface.getExtendedAttribute("PrimaryGlobal"))
|
||||
|
||||
|
||||
# Some utility methods
|
||||
|
|
|
@ -1239,12 +1239,6 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
|
|||
alias,
|
||||
[member.location, m.location])
|
||||
|
||||
if (self.getExtendedAttribute("Pref") and
|
||||
self._exposureGlobalNames != set([self.parentScope.primaryGlobalName])):
|
||||
raise WebIDLError("[Pref] used on an interface that is not %s-only" %
|
||||
self.parentScope.primaryGlobalName,
|
||||
[self.location])
|
||||
|
||||
for attribute in ["CheckAnyPermissions", "CheckAllPermissions"]:
|
||||
if (self.getExtendedAttribute(attribute) and
|
||||
self._exposureGlobalNames != set([self.parentScope.primaryGlobalName])):
|
||||
|
@ -3459,12 +3453,6 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
|||
IDLExposureMixins.finish(self, scope)
|
||||
|
||||
def validate(self):
|
||||
if (self.getExtendedAttribute("Pref") and
|
||||
self.exposureSet != set([self._globalScope.primaryGlobalName])):
|
||||
raise WebIDLError("[Pref] used on an interface member that is not "
|
||||
"%s-only" % self._globalScope.primaryGlobalName,
|
||||
[self.location])
|
||||
|
||||
for attribute in ["CheckAnyPermissions", "CheckAllPermissions"]:
|
||||
if (self.getExtendedAttribute(attribute) and
|
||||
self.exposureSet != set([self._globalScope.primaryGlobalName])):
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
--- WebIDL.py
|
||||
+++ WebIDL.py
|
||||
@@ -1239,12 +1239,6 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
|
||||
alias,
|
||||
[member.location, m.location])
|
||||
|
||||
- if (self.getExtendedAttribute("Pref") and
|
||||
- self._exposureGlobalNames != set([self.parentScope.primaryGlobalName])):
|
||||
- raise WebIDLError("[Pref] used on an interface that is not %s-only" %
|
||||
- self.parentScope.primaryGlobalName,
|
||||
- [self.location])
|
||||
-
|
||||
for attribute in ["CheckAnyPermissions", "CheckAllPermissions"]:
|
||||
if (self.getExtendedAttribute(attribute) and
|
||||
self._exposureGlobalNames != set([self.parentScope.primaryGlobalName])):
|
||||
@@ -3459,12 +3453,6 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
||||
IDLExposureMixins.finish(self, scope)
|
||||
|
||||
def validate(self):
|
||||
- if (self.getExtendedAttribute("Pref") and
|
||||
- self.exposureSet != set([self._globalScope.primaryGlobalName])):
|
||||
- raise WebIDLError("[Pref] used on an interface member that is not "
|
||||
- "%s-only" % self._globalScope.primaryGlobalName,
|
||||
- [self.location])
|
||||
-
|
||||
for attribute in ["CheckAnyPermissions", "CheckAllPermissions"]:
|
||||
if (self.getExtendedAttribute(attribute) and
|
||||
self.exposureSet != set([self._globalScope.primaryGlobalName])):
|
|
@ -1,6 +1,7 @@
|
|||
wget https://mxr.mozilla.org/mozilla-central/source/dom/bindings/parser/WebIDL.py?raw=1 -O WebIDL.py
|
||||
patch < abstract.patch
|
||||
patch < debug.patch
|
||||
patch < pref-main-thread.patch
|
||||
|
||||
wget https://hg.mozilla.org/mozilla-central/archive/tip.tar.gz/dom/bindings/parser/tests/ -O tests.tar.gz
|
||||
rm -r tests
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
//! Machinery to initialise interface prototype objects and interface objects.
|
||||
|
||||
use dom::bindings::codegen::InterfaceObjectMap::Globals;
|
||||
use dom::bindings::codegen::PrototypeList;
|
||||
use dom::bindings::conversions::get_dom_class;
|
||||
use dom::bindings::guard::Guard;
|
||||
|
@ -484,3 +485,11 @@ unsafe extern "C" fn non_new_constructor(
|
|||
throw_type_error(cx, "This constructor needs to be called with `new`.");
|
||||
false
|
||||
}
|
||||
|
||||
/// Returns whether an interface with exposure set given by `globals` should
|
||||
/// be exposed in the global object `obj`.
|
||||
pub unsafe fn is_exposed_in(object: HandleObject, globals: Globals) -> bool {
|
||||
let unwrapped = UncheckedUnwrapObject(object.get(), /* stopAtWindowProxy = */ 0);
|
||||
let dom_class = get_dom_class(unwrapped).unwrap();
|
||||
globals.contains(dom_class.global)
|
||||
}
|
||||
|
|
|
@ -93,6 +93,9 @@ pub struct DOMClass {
|
|||
|
||||
/// The HeapSizeOf function wrapper for that interface.
|
||||
pub heap_size_of: unsafe fn(*const c_void) -> usize,
|
||||
|
||||
/// The `Globals` flag for this global interface, if any.
|
||||
pub global: InterfaceObjectMap::Globals,
|
||||
}
|
||||
unsafe impl Sync for DOMClass {}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface Attr {
|
||||
[Constant]
|
||||
readonly attribute DOMString? namespaceURI;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
* https://html.spec.whatwg.org/multipage/#beforeunloadevent
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface BeforeUnloadEvent : Event {
|
||||
attribute DOMString returnValue;
|
||||
};
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
[Constructor(optional sequence<BlobPart> blobParts,
|
||||
optional BlobPropertyBag options),
|
||||
Exposed=Window/*,Worker*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface Blob {
|
||||
|
||||
readonly attribute unsigned long long size;
|
||||
|
|
|
@ -15,7 +15,7 @@ dictionary RequestDeviceOptions {
|
|||
sequence<BluetoothServiceUUID> optionalServices /*= []*/;
|
||||
};
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface Bluetooth {
|
||||
// Promise<BluetoothDevice> requestDevice(RequestDeviceOptions options);
|
||||
[Throws]
|
||||
|
|
|
@ -12,7 +12,7 @@ interface BluetoothServiceDataMap {
|
|||
readonly maplike<UUID, DataView>;
|
||||
};*/
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothAdvertisingData {
|
||||
readonly attribute unsigned short? appearance;
|
||||
readonly attribute byte? txPower;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#characteristicproperties
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothCharacteristicProperties {
|
||||
readonly attribute boolean broadcast;
|
||||
readonly attribute boolean read;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothdevice
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothDevice {
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute DOMString? name;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattcharacteristic
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothRemoteGATTCharacteristic {
|
||||
readonly attribute BluetoothRemoteGATTService service;
|
||||
readonly attribute DOMString uuid;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// http://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattdescriptor
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothRemoteGATTDescriptor {
|
||||
readonly attribute BluetoothRemoteGATTCharacteristic characteristic;
|
||||
readonly attribute DOMString uuid;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
//https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattserver
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothRemoteGATTServer {
|
||||
readonly attribute BluetoothDevice device;
|
||||
readonly attribute boolean connected;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattservice
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothRemoteGATTService {
|
||||
readonly attribute BluetoothDevice device;
|
||||
readonly attribute DOMString uuid;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothuuid
|
||||
|
||||
[Pref="dom.bluetooth.enabled"]
|
||||
[Pref="dom.bluetooth.enabled", Exposed=(Window,Worker)]
|
||||
interface BluetoothUUID {
|
||||
[Throws]
|
||||
static UUID getService(BluetoothServiceUUID name);
|
||||
|
|
|
@ -19,7 +19,7 @@ callback BrowserElementNextPaintEventCallback = void ();
|
|||
// DOMString? origin;
|
||||
//};
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface BrowserElement {
|
||||
};
|
||||
|
||||
|
@ -104,44 +104,37 @@ dictionary BrowserElementVisibilityChangeEventDetail {
|
|||
BrowserElement implements BrowserElementCommon;
|
||||
BrowserElement implements BrowserElementPrivileged;
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface BrowserElementCommon {
|
||||
[Throws,
|
||||
Pref="dom.mozbrowser.enabled",
|
||||
CheckAnyPermissions="browser embed-widgets"]
|
||||
Pref="dom.mozbrowser.enabled"]
|
||||
void setVisible(boolean visible);
|
||||
|
||||
[Throws,
|
||||
Pref="dom.mozbrowser.enabled",
|
||||
CheckAnyPermissions="browser embed-widgets"]
|
||||
Pref="dom.mozbrowser.enabled"]
|
||||
boolean getVisible();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser embed-widgets"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void setActive(boolean active);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser embed-widgets"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//boolean getActive();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser embed-widgets"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void addNextPaintListener(BrowserElementNextPaintEventCallback listener);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser embed-widgets"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void removeNextPaintListener(BrowserElementNextPaintEventCallback listener);
|
||||
};
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface BrowserElementPrivileged {
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void sendMouseEvent(DOMString type,
|
||||
// unsigned long x,
|
||||
// unsigned long y,
|
||||
|
@ -151,8 +144,7 @@ interface BrowserElementPrivileged {
|
|||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// Func="TouchEvent::PrefEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Func="TouchEvent::PrefEnabled"]
|
||||
//void sendTouchEvent(DOMString type,
|
||||
// sequence<unsigned long> identifiers,
|
||||
// sequence<long> x,
|
||||
|
@ -177,71 +169,58 @@ interface BrowserElementPrivileged {
|
|||
void stop();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest download(DOMString url,
|
||||
// optional BrowserElementDownloadOptions options);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest purgeHistory();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest getScreenshot([EnforceRange] unsigned long width,
|
||||
// [EnforceRange] unsigned long height,
|
||||
// optional DOMString mimeType="");
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void zoom(float zoom);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest getCanGoBack();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest getCanGoForward();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest getContentDimensions();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAllPermissions="browser input-manage"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest setInputMethodActive(boolean isActive);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAllPermissions="browser nfc-manager"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void setNFCFocus(boolean isFocus);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void findAll(DOMString searchString, BrowserFindCaseSensitivity caseSensitivity);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void findNext(BrowserFindDirection direction);
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAnyPermissions="browser"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//void clearMatch();
|
||||
|
||||
//[Throws,
|
||||
// Pref="dom.mozBrowserFramesEnabled",
|
||||
// CheckAllPermissions="browser browser:universalxss"]
|
||||
// Pref="dom.mozBrowserFramesEnabled"]
|
||||
//DOMRequest executeScript(DOMString script,
|
||||
// optional BrowserElementExecuteScriptOptions options);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* http://dev.w3.org/csswg/cssom/#the-css-interface
|
||||
*/
|
||||
|
||||
[Abstract]
|
||||
[Abstract, Exposed=(Window,Worker)]
|
||||
interface CSS {
|
||||
[Throws]
|
||||
static DOMString escape(DOMString ident);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
* Copyright © 2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved.
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CSSStyleDeclaration {
|
||||
[SetterThrows]
|
||||
attribute DOMString cssText;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#canvasgradient
|
||||
// [Exposed=(Window,Worker)]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CanvasGradient {
|
||||
// opaque object
|
||||
[Throws]
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#canvaspattern
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CanvasPattern {
|
||||
//void setTransform(SVGMatrix matrix);
|
||||
};
|
||||
|
|
|
@ -11,7 +11,8 @@ typedef (HTMLImageElement or
|
|||
CanvasRenderingContext2D /* or
|
||||
ImageBitmap */) CanvasImageSource;
|
||||
|
||||
//[Constructor(optional unsigned long width, unsigned long height), Exposed=Window,Worker]
|
||||
//[Constructor(optional unsigned long width, unsigned long height)]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface CanvasRenderingContext2D {
|
||||
|
||||
// back-reference to the canvas
|
||||
|
@ -41,14 +42,14 @@ CanvasRenderingContext2D implements CanvasPathDrawingStyles;
|
|||
CanvasRenderingContext2D implements CanvasTextDrawingStyles;
|
||||
CanvasRenderingContext2D implements CanvasPath;
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasState {
|
||||
// state
|
||||
void save(); // push state on state stack
|
||||
void restore(); // pop state stack and restore state
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasTransform {
|
||||
// transformations (default transform is the identity matrix)
|
||||
void scale(unrestricted double x, unrestricted double y);
|
||||
|
@ -72,21 +73,21 @@ interface CanvasTransform {
|
|||
void resetTransform();
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasCompositing {
|
||||
// compositing
|
||||
attribute unrestricted double globalAlpha; // (default 1.0)
|
||||
attribute DOMString globalCompositeOperation; // (default source-over)
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasImageSmoothing {
|
||||
// image smoothing
|
||||
attribute boolean imageSmoothingEnabled; // (default true)
|
||||
// attribute ImageSmoothingQuality imageSmoothingQuality; // (default low)
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasFillStrokeStyles {
|
||||
|
||||
// colours and styles (see also the CanvasDrawingStyles interface)
|
||||
|
@ -99,7 +100,7 @@ interface CanvasFillStrokeStyles {
|
|||
CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasShadowStyles {
|
||||
// shadows
|
||||
attribute unrestricted double shadowOffsetX; // (default 0)
|
||||
|
@ -108,7 +109,7 @@ interface CanvasShadowStyles {
|
|||
attribute DOMString shadowColor; // (default transparent black)
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasRect {
|
||||
// rects
|
||||
//[LenientFloat]
|
||||
|
@ -119,7 +120,7 @@ interface CanvasRect {
|
|||
void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasDrawPath {
|
||||
// path API (see also CanvasPathMethods)
|
||||
void beginPath();
|
||||
|
@ -142,12 +143,12 @@ interface CanvasDrawPath {
|
|||
//boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasUserInterface {
|
||||
// TODO?
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasText {
|
||||
// text (see also the CanvasDrawingStyles interface)
|
||||
//void fillText(DOMString text, unrestricted double x, unrestricted double y,
|
||||
|
@ -157,7 +158,7 @@ interface CanvasText {
|
|||
//TextMetrics measureText(DOMString text);
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasDrawImage {
|
||||
// drawing images
|
||||
[Throws]
|
||||
|
@ -172,7 +173,7 @@ interface CanvasDrawImage {
|
|||
unrestricted double dw, unrestricted double dh);
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasHitRegion {
|
||||
// hit regions
|
||||
//void addHitRegion(optional HitRegionOptions options);
|
||||
|
@ -180,7 +181,7 @@ interface CanvasHitRegion {
|
|||
//void clearHitRegions();
|
||||
};
|
||||
|
||||
[NoInterfaceObject]//,Exposed=(Window,Worker)]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasImageData {
|
||||
// pixel manipulation
|
||||
[Throws]
|
||||
|
@ -205,7 +206,7 @@ enum CanvasTextAlign { "start", "end", "left", "right", "center" };
|
|||
enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" };
|
||||
enum CanvasDirection { "ltr", "rtl", "inherit" };
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasPathDrawingStyles {
|
||||
// line caps/joins
|
||||
attribute unrestricted double lineWidth; // (default 1)
|
||||
|
@ -219,7 +220,7 @@ interface CanvasPathDrawingStyles {
|
|||
//attribute unrestricted double lineDashOffset;
|
||||
};
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasTextDrawingStyles {
|
||||
// text
|
||||
//attribute DOMString font; // (default 10px sans-serif)
|
||||
|
@ -229,7 +230,7 @@ interface CanvasTextDrawingStyles {
|
|||
//attribute CanvasDirection direction; // "ltr", "rtl", "inherit" (default: "inherit")
|
||||
};
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface CanvasPath {
|
||||
// shared path API methods
|
||||
void closePath();
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Abstract]
|
||||
[Abstract, Exposed=(Window,Worker)]
|
||||
interface CharacterData : Node {
|
||||
[Pure, TreatNullAs=EmptyString] attribute DOMString data;
|
||||
[Pure] readonly attribute unsigned long length;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* https://dom.spec.whatwg.org/#interface-childnode
|
||||
*/
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface ChildNode {
|
||||
[Throws, Unscopable]
|
||||
void before((Node or DOMString)... nodes);
|
||||
|
@ -18,7 +18,7 @@ interface ChildNode {
|
|||
void remove();
|
||||
};
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface NonDocumentTypeChildNode {
|
||||
[Pure]
|
||||
readonly attribute Element? previousElementSibling;
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
|
||||
// https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#client
|
||||
|
||||
// [Exposed=ServiceWorker]
|
||||
[Pref="dom.serviceworker.enabled"]
|
||||
[Pref="dom.serviceworker.enabled", Exposed=(Window,Worker)]
|
||||
interface Client {
|
||||
readonly attribute USVString url;
|
||||
readonly attribute FrameType frameType;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
//https://html.spec.whatwg.org/multipage/#the-closeevent-interfaces
|
||||
[Constructor(DOMString type, optional CloseEventInit eventInitDict)/*, Exposed=(Window,Worker)*/]
|
||||
[Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface CloseEvent : Event {
|
||||
readonly attribute boolean wasClean;
|
||||
readonly attribute unsigned short code;
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Constructor(optional DOMString data = "")]
|
||||
[Constructor(optional DOMString data = ""), Exposed=(Window,Worker)]
|
||||
interface Comment : CharacterData {
|
||||
};
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
* © Copyright 2014 Mozilla Foundation.
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface Console {
|
||||
// These should be DOMString message, DOMString message2, ...
|
||||
void log(DOMString... messages);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface GlobalCrypto {
|
||||
readonly attribute Crypto crypto;
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ interface GlobalCrypto {
|
|||
Window implements GlobalCrypto;
|
||||
WorkerGlobalScope implements GlobalCrypto;
|
||||
|
||||
//[Exposed=(Window,Worker)]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface Crypto {
|
||||
//readonly attribute SubtleCrypto subtle;
|
||||
//ArrayBufferView getRandomValues(ArrayBufferView array);
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
* http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0.
|
||||
*/
|
||||
|
||||
[Constructor(DOMString type, optional CustomEventInit eventInitDict)/*,
|
||||
Exposed=Window,Worker*/]
|
||||
[Constructor(DOMString type, optional CustomEventInit eventInitDict),
|
||||
Exposed=(Window,Worker)]
|
||||
interface CustomEvent : Event {
|
||||
readonly attribute any detail;
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* https://heycam.github.io/webidl/#es-DOMException-constructor-object
|
||||
*/
|
||||
|
||||
[ExceptionClass]
|
||||
[ExceptionClass, Exposed=(Window,Worker)]
|
||||
interface DOMException {
|
||||
const unsigned short INDEX_SIZE_ERR = 1;
|
||||
const unsigned short DOMSTRING_SIZE_ERR = 2; // historical
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
* related or neighboring rights to this work.
|
||||
*/
|
||||
|
||||
// [Exposed=Window]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface DOMImplementation {
|
||||
[NewObject, Throws]
|
||||
DocumentType createDocumentType(DOMString qualifiedName, DOMString publicId,
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// http://dev.w3.org/fxtf/geometry/Overview.html#dompoint
|
||||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
|
||||
optional unrestricted double z = 0, optional unrestricted double w = 1),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface DOMPoint : DOMPointReadOnly {
|
||||
inherit attribute unrestricted double x;
|
||||
inherit attribute unrestricted double y;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// http://dev.w3.org/fxtf/geometry/Overview.html#dompointreadonly
|
||||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
|
||||
optional unrestricted double z = 0, optional unrestricted double w = 1),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface DOMPointReadOnly {
|
||||
readonly attribute unrestricted double x;
|
||||
readonly attribute unrestricted double y;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
[Constructor(optional DOMPointInit p1, optional DOMPointInit p2,
|
||||
optional DOMPointInit p3, optional DOMPointInit p4),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface DOMQuad {
|
||||
[NewObject] static DOMQuad fromRect(optional DOMRectInit other);
|
||||
[NewObject] static DOMQuad fromQuad(optional DOMQuadInit other);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
|
||||
optional unrestricted double width = 0, optional unrestricted double height = 0),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
// https://drafts.fxtf.org/geometry/#domrect
|
||||
interface DOMRect : DOMRectReadOnly {
|
||||
inherit attribute unrestricted double x;
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// http://dev.w3.org/fxtf/geometry/#DOMRectList
|
||||
[NoInterfaceObject/*,
|
||||
ArrayClass*/]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
//[ArrayClass]
|
||||
interface DOMRectList {
|
||||
readonly attribute unsigned long length;
|
||||
getter DOMRect? item(unsigned long index);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
|
||||
optional unrestricted double width = 0, optional unrestricted double height = 0),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
// https://drafts.fxtf.org/geometry/#domrect
|
||||
interface DOMRectReadOnly {
|
||||
// [NewObject] static DOMRectReadOnly fromRect(optional DOMRectInit other);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#the-domstringmap-interface
|
||||
[OverrideBuiltins]
|
||||
[OverrideBuiltins, Exposed=(Window,Worker)]
|
||||
interface DOMStringMap {
|
||||
getter DOMString (DOMString name);
|
||||
[Throws]
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://dom.spec.whatwg.org/#domtokenlist
|
||||
[Exposed=(Window,Worker)]
|
||||
interface DOMTokenList {
|
||||
[Pure]
|
||||
readonly attribute unsigned long length;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dedicatedworkerglobalscope
|
||||
[Global/*=Worker,DedicatedWorker*/]
|
||||
[Global=(Worker,DedicatedWorker), Exposed=DedicatedWorker]
|
||||
/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
|
||||
[Throws]
|
||||
void postMessage(any message/*, optional sequence<Transferable> transfer*/);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
*/
|
||||
|
||||
// https://dom.spec.whatwg.org/#interface-document
|
||||
[Constructor]
|
||||
[Constructor, Exposed=(Window,Worker)]
|
||||
interface Document : Node {
|
||||
[SameObject]
|
||||
readonly attribute DOMImplementation implementation;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://dom.spec.whatwg.org/#interface-documentfragment
|
||||
[Constructor]
|
||||
[Constructor, Exposed=(Window,Worker)]
|
||||
interface DocumentFragment : Node {
|
||||
};
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface DocumentType : Node {
|
||||
[Constant]
|
||||
readonly attribute DOMString name;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
* liability, trademark and document use rules apply.
|
||||
*/
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface Element : Node {
|
||||
[Constant]
|
||||
readonly attribute DOMString? namespaceURI;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
//http://dev.w3.org/csswg/cssom/#elementcssinlinestyle
|
||||
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface ElementCSSInlineStyle {
|
||||
[SameObject/*, PutForwards=cssText*/] readonly attribute CSSStyleDeclaration style;
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#elementcontenteditable
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface ElementContentEditable {
|
||||
// attribute DOMString contentEditable;
|
||||
// readonly attribute boolean isContentEditable;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#the-errorevent-interface
|
||||
|
||||
[Constructor(DOMString type, optional ErrorEventInit eventInitDict)/*, Exposed=(Window,Worker)*/]
|
||||
[Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface ErrorEvent : Event {
|
||||
readonly attribute DOMString message;
|
||||
readonly attribute DOMString filename;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* https://dom.spec.whatwg.org/#event
|
||||
*/
|
||||
|
||||
[Constructor(DOMString type, optional EventInit eventInitDict)]
|
||||
[Constructor(DOMString type, optional EventInit eventInitDict), Exposed=(Window,Worker)]
|
||||
interface Event {
|
||||
[Pure]
|
||||
readonly attribute DOMString type;
|
||||
|
|
|
@ -25,7 +25,7 @@ callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
|
|||
typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#globaleventhandlers
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface GlobalEventHandlers {
|
||||
attribute EventHandler onabort;
|
||||
attribute EventHandler onblur;
|
||||
|
@ -90,7 +90,7 @@ interface GlobalEventHandlers {
|
|||
};
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#windoweventhandlers
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface WindowEventHandlers {
|
||||
attribute EventHandler onafterprint;
|
||||
attribute EventHandler onbeforeprint;
|
||||
|
@ -110,7 +110,7 @@ interface WindowEventHandlers {
|
|||
};
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#documentandelementeventhandlers
|
||||
[NoInterfaceObject]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface DocumentAndElementEventHandlers {
|
||||
attribute EventHandler oncopy;
|
||||
attribute EventHandler oncut;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*/
|
||||
|
||||
[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface EventSource : EventTarget {
|
||||
readonly attribute DOMString url;
|
||||
readonly attribute boolean withCredentials;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* https://dom.spec.whatwg.org/#interface-eventtarget
|
||||
*/
|
||||
|
||||
[Abstract]
|
||||
[Abstract, Exposed=(Window,Worker)]
|
||||
interface EventTarget {
|
||||
void addEventListener(DOMString type,
|
||||
EventListener? listener,
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
[Constructor(sequence<BlobPart> fileBits,
|
||||
DOMString fileName,
|
||||
optional FilePropertyBag options),
|
||||
Exposed=Window/*,Worker*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface File : Blob {
|
||||
readonly attribute DOMString name;
|
||||
readonly attribute long long lastModified;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
// https://w3c.github.io/FileAPI/#dfn-filelist
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface FileList {
|
||||
getter File? item(unsigned long index);
|
||||
readonly attribute unsigned long length;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
// http://dev.w3.org/2006/webapi/FileAPI/#APIASynch
|
||||
|
||||
//typedef (DOMString or ArrayBuffer) FileReaderResult;
|
||||
[Constructor, Exposed=Window/*,Worker*/]
|
||||
[Constructor, Exposed=(Window,Worker)]
|
||||
interface FileReader: EventTarget {
|
||||
|
||||
// async read methods
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://w3c.github.io/uievents/#interface-FocusEvent
|
||||
[Constructor(DOMString typeArg, optional FocusEventInit focusEventInitDict)]
|
||||
[Constructor(DOMString typeArg, optional FocusEventInit focusEventInitDict), Exposed=(Window,Worker)]
|
||||
interface FocusEvent : UIEvent {
|
||||
readonly attribute EventTarget? relatedTarget;
|
||||
};
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
*/
|
||||
|
||||
|
||||
[Pref="dom.forcetouch.enabled"]
|
||||
[Pref="dom.forcetouch.enabled", Exposed=(Window,Worker)]
|
||||
interface ForceTouchEvent : UIEvent {
|
||||
// Represents the amount of force required to perform a regular click.
|
||||
readonly attribute float SERVO_FORCE_AT_MOUSE_DOWN;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
typedef (Blob or USVString) FormDataEntryValue;
|
||||
|
||||
[Constructor(optional HTMLFormElement form),
|
||||
/*Exposed=(Window,Worker)*/]
|
||||
Exposed=(Window,Worker)]
|
||||
interface FormData {
|
||||
void append(USVString name, USVString value);
|
||||
void append(USVString name, Blob value, optional USVString filename);
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
*/
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlanchorelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLAnchorElement : HTMLElement {
|
||||
attribute DOMString target;
|
||||
// attribute DOMString download;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlappletelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLAppletElement : HTMLElement {
|
||||
// attribute DOMString align;
|
||||
// attribute DOMString alt;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlareaelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLAreaElement : HTMLElement {
|
||||
// attribute DOMString alt;
|
||||
// attribute DOMString coords;
|
||||
|
|
|
@ -4,4 +4,5 @@
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlaudioelement
|
||||
//[NamedConstructor=Audio(optional DOMString src)]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLAudioElement : HTMLMediaElement {};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlbrelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLBRElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlbaseelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLBaseElement : HTMLElement {
|
||||
attribute DOMString href;
|
||||
// attribute DOMString target;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#the-body-element
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLBodyElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlbuttonelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLButtonElement : HTMLElement {
|
||||
// attribute boolean autofocus;
|
||||
attribute boolean disabled;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
// https://html.spec.whatwg.org/multipage/#htmlcanvaselement
|
||||
typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLCanvasElement : HTMLElement {
|
||||
[Pure]
|
||||
attribute unsigned long width;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://dom.spec.whatwg.org/#interface-htmlcollection
|
||||
|
||||
[LegacyUnenumerableNamedProperties]
|
||||
[LegacyUnenumerableNamedProperties, Exposed=(Window,Worker)]
|
||||
interface HTMLCollection {
|
||||
[Pure]
|
||||
readonly attribute unsigned long length;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldlistelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDListElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldataelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDataElement : HTMLElement {
|
||||
// attribute DOMString value;
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldatalistelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDataListElement : HTMLElement {
|
||||
readonly attribute HTMLCollection options;
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldetailselement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDetailsElement : HTMLElement {
|
||||
attribute boolean open;
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldialogelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDialogElement : HTMLElement {
|
||||
attribute boolean open;
|
||||
attribute DOMString returnValue;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldirectoryelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDirectoryElement : HTMLElement {
|
||||
// attribute boolean compact;
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmldivelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLDivElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLElement : Element {
|
||||
// metadata attributes
|
||||
attribute DOMString title;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlembedelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLEmbedElement : HTMLElement {
|
||||
// attribute DOMString src;
|
||||
// attribute DOMString type;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlfieldsetelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLFieldSetElement : HTMLElement {
|
||||
attribute boolean disabled;
|
||||
readonly attribute HTMLFormElement? form;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlfontelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLFontElement : HTMLElement {
|
||||
[TreatNullAs=EmptyString] attribute DOMString color;
|
||||
attribute DOMString face;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlformcontrolscollection
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLFormControlsCollection : HTMLCollection {
|
||||
// inherits length and item()
|
||||
getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlformelement
|
||||
//[OverrideBuiltins]
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLFormElement : HTMLElement {
|
||||
attribute DOMString acceptCharset;
|
||||
attribute DOMString action;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlframeelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLFrameElement : HTMLElement {
|
||||
// attribute DOMString name;
|
||||
// attribute DOMString scrolling;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlframesetelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLFrameSetElement : HTMLElement {
|
||||
// attribute DOMString cols;
|
||||
// attribute DOMString rows;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlhrelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLHRElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlheadelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLHeadElement : HTMLElement {};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlheadingelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLHeadingElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlhtmlelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLHtmlElement : HTMLElement {
|
||||
// also has obsolete members
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlhyperlinkelementutils
|
||||
[NoInterfaceObject/*, Exposed=Window*/]
|
||||
[NoInterfaceObject, Exposed=(Window,Worker)]
|
||||
interface HTMLHyperlinkElementUtils {
|
||||
// stringifier attribute USVString href;
|
||||
attribute USVString href;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmliframeelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLIFrameElement : HTMLElement {
|
||||
attribute DOMString src;
|
||||
// attribute DOMString srcdoc;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlimageelement
|
||||
[NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
|
||||
[NamedConstructor=Image(optional unsigned long width, optional unsigned long height), Exposed=(Window,Worker)]
|
||||
interface HTMLImageElement : HTMLElement {
|
||||
attribute DOMString alt;
|
||||
attribute DOMString src;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlinputelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLInputElement : HTMLElement {
|
||||
attribute DOMString accept;
|
||||
attribute DOMString alt;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmllielement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLLIElement : HTMLElement {
|
||||
// attribute long value;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmllabelelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLLabelElement : HTMLElement {
|
||||
readonly attribute HTMLFormElement? form;
|
||||
attribute DOMString htmlFor;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmllegendelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLLegendElement : HTMLElement {
|
||||
readonly attribute HTMLFormElement? form;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmllinkelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLLinkElement : HTMLElement {
|
||||
attribute DOMString href;
|
||||
// attribute DOMString crossOrigin;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlmapelement
|
||||
[Exposed=(Window,Worker)]
|
||||
interface HTMLMapElement : HTMLElement {
|
||||
// attribute DOMString name;
|
||||
//readonly attribute HTMLCollection areas;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#htmlmediaelement
|
||||
enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" };
|
||||
[Abstract]
|
||||
[Abstract, Exposed=(Window,Worker)]
|
||||
interface HTMLMediaElement : HTMLElement {
|
||||
|
||||
// error state
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue