Update web-platform-tests to revision d7afcb8708eac08a614d161d5622a48172daf7e3

This commit is contained in:
WPT Sync Bot 2019-05-15 10:40:54 -04:00 committed by Josh Matthews
parent 6f8bb4dd40
commit edff458e23
791 changed files with 17647 additions and 10322 deletions

View file

@ -1,5 +1,5 @@
This directory contains [Web IDL](https://heycam.github.io/webidl/) interface definitions for use in idlharness.js tests.
The `.idl` files are extracted from specs by [Reffy](https://github.com/tidoust/reffy) into [reffy-reports](https://github.com/tidoust/reffy-reports), and then copied into this directory.
The `.idl` files are extracted from specs by [Reffy](https://github.com/tidoust/reffy) into [reffy-reports](https://github.com/tidoust/reffy-reports), and a [sync script](https://github.com/tidoust/reffy-reports/blob/master/wpt-sync/sync.js) sends [automatic PRs](https://github.com/web-platform-tests/wpt/pulls/autofoolip). The PRs require manual review but can be approved/merged by anyone with write access.
Automatically importing changes from reffy-reports is tracked by the [Auto-import IDL files](https://github.com/web-platform-tests/wpt/projects/1) project. Currently, it is only semi-automated, and not guaranteed to happen at any particular cadence. If you need to update an IDL file, please copy the file from [whatwg/idl/](https://github.com/tidoust/reffy-reports/tree/master/whatwg/idl) in reffy-reports.
If some IDL in this directory is not up to date with the spec, first look for an [open PR](https://github.com/web-platform-tests/wpt/pulls/autofoolip) and if there is none [file an issue on reffy-reports](https://github.com/tidoust/reffy-reports/issues) and notify @foolip and @lukebjerring.

View file

@ -282,10 +282,6 @@ SVGSVGElement includes WindowEventHandlers;
interface SVGGElement : SVGGraphicsElement {
};
[Exposed=Window]
interface SVGUnknownElement : SVGGraphicsElement {
};
[Exposed=Window]
interface SVGDefsElement : SVGGraphicsElement {
};

View file

@ -3,20 +3,21 @@
// (https://github.com/tidoust/reffy-reports)
// Source: Web App Manifest (https://w3c.github.io/manifest/)
enum AppBannerPromptOutcome {
"accepted",
"dismissed"
};
[Constructor(DOMString type, optional EventInit eventInitDict),
Exposed=Window]
interface BeforeInstallPromptEvent : Event {
Promise<PromptResponseObject> prompt();
};
dictionary PromptResponseObject {
AppBannerPromptOutcome userChoice;
};
enum AppBannerPromptOutcome {
"accepted",
"dismissed"
};
partial interface Window {
attribute EventHandler onappinstalled;
attribute EventHandler onbeforeinstallprompt;

View file

@ -4,5 +4,5 @@
// Source: CSS Images Module Level 4 (https://drafts.csswg.org/css-images-4/)
partial namespace CSS {
// [SameObject] readonly attribute Map elementSources;
[SameObject] readonly attribute any elementSources;
};

View file

@ -40,6 +40,12 @@ interface CSSStyleSheet : StyleSheet {
void deleteRule(unsigned long index);
};
partial interface CSSStyleSheet {
[SameObject] readonly attribute CSSRuleList rules;
long addRule(optional DOMString selector = "undefined", optional DOMString style = "undefined", optional unsigned long index);
void removeRule(optional unsigned long index = 0);
};
[Exposed=Window]
interface StyleSheetList {
getter CSSStyleSheet? item(unsigned long index);
@ -122,7 +128,7 @@ interface CSSStyleDeclaration {
getter CSSOMString item(unsigned long index);
CSSOMString getPropertyValue(CSSOMString property);
CSSOMString getPropertyPriority(CSSOMString property);
[CEReactions] void setProperty(CSSOMString property, [TreatNullAs=EmptyString] CSSOMString value, [TreatNullAs=EmptyString] optional CSSOMString priority = "");
[CEReactions] void setProperty(CSSOMString property, [TreatNullAs=EmptyString] CSSOMString value, optional [TreatNullAs=EmptyString] CSSOMString priority = "");
[CEReactions] CSSOMString removeProperty(CSSOMString property);
readonly attribute CSSRule? parentRule;
[CEReactions] attribute [TreatNullAs=EmptyString] CSSOMString cssFloat;

View file

@ -12,7 +12,7 @@ interface PerformanceEventTiming : PerformanceEntry {
[Exposed=Window]
interface EventCounts {
readonly maplike<DOMString, unsigned long>;
readonly maplike<DOMString, unsigned long long>;
};
[Exposed=Window]

View file

@ -91,6 +91,8 @@ partial interface Document {
// special event handler IDL attributes that only apply to Document objects
[LenientThis] attribute EventHandler onreadystatechange;
// also has obsolete members
};
Document includes GlobalEventHandlers;
Document includes DocumentAndElementEventHandlers;
@ -144,7 +146,9 @@ interface DOMStringMap {
[Exposed=Window,
HTMLConstructor]
interface HTMLHtmlElement : HTMLElement {};
interface HTMLHtmlElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
@ -179,6 +183,8 @@ interface HTMLLinkElement : HTMLElement {
[CEReactions] attribute USVString imageSrcset;
[CEReactions] attribute DOMString imageSizes;
[CEReactions] attribute DOMString referrerPolicy;
// also has obsolete members
};
HTMLLinkElement includes LinkStyle;
@ -188,36 +194,50 @@ interface HTMLMetaElement : HTMLElement {
[CEReactions] attribute DOMString name;
[CEReactions] attribute DOMString httpEquiv;
[CEReactions] attribute DOMString content;
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLStyleElement : HTMLElement {
[CEReactions] attribute DOMString media;
// also has obsolete members
};
HTMLStyleElement includes LinkStyle;
[Exposed=Window,
HTMLConstructor]
interface HTMLBodyElement : HTMLElement {};
interface HTMLBodyElement : HTMLElement {
// also has obsolete members
};
HTMLBodyElement includes WindowEventHandlers;
[Exposed=Window,
HTMLConstructor]
interface HTMLHeadingElement : HTMLElement {};
interface HTMLHeadingElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLParagraphElement : HTMLElement {};
interface HTMLParagraphElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLHRElement : HTMLElement {};
interface HTMLHRElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLPreElement : HTMLElement {};
interface HTMLPreElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
@ -231,30 +251,42 @@ interface HTMLOListElement : HTMLElement {
[CEReactions] attribute boolean reversed;
[CEReactions] attribute long start;
[CEReactions] attribute DOMString type;
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLUListElement : HTMLElement {};
interface HTMLUListElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLMenuElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLLIElement : HTMLElement {
[CEReactions] attribute long value;
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLDListElement : HTMLElement {};
interface HTMLDListElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLDivElement : HTMLElement {};
interface HTMLDivElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
@ -270,6 +302,8 @@ interface HTMLAnchorElement : HTMLElement {
[CEReactions] attribute DOMString text;
[CEReactions] attribute DOMString referrerPolicy;
// also has obsolete members
};
HTMLAnchorElement includes HTMLHyperlinkElementUtils;
@ -291,7 +325,9 @@ interface HTMLSpanElement : HTMLElement {};
[Exposed=Window,
HTMLConstructor]
interface HTMLBRElement : HTMLElement {};
interface HTMLBRElement : HTMLElement {
// also has obsolete members
};
interface mixin HTMLHyperlinkElementUtils {
[CEReactions] stringifier attribute USVString href;
@ -349,6 +385,8 @@ interface HTMLImageElement : HTMLElement {
[CEReactions] attribute DOMString decoding;
Promise<void> decode();
// also has obsolete members
};
[Exposed=Window,
@ -367,6 +405,8 @@ interface HTMLIFrameElement : HTMLElement {
readonly attribute Document? contentDocument;
readonly attribute WindowProxy? contentWindow;
Document? getSVGDocument();
// also has obsolete members
};
[Exposed=Window,
@ -377,6 +417,8 @@ interface HTMLEmbedElement : HTMLElement {
[CEReactions] attribute DOMString width;
[CEReactions] attribute DOMString height;
Document? getSVGDocument();
// also has obsolete members
};
[Exposed=Window,
@ -384,7 +426,6 @@ interface HTMLEmbedElement : HTMLElement {
interface HTMLObjectElement : HTMLElement {
[CEReactions] attribute USVString data;
[CEReactions] attribute DOMString type;
[CEReactions] attribute boolean typeMustMatch;
[CEReactions] attribute DOMString name;
[CEReactions] attribute DOMString useMap;
readonly attribute HTMLFormElement? form;
@ -400,6 +441,8 @@ interface HTMLObjectElement : HTMLElement {
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
// also has obsolete members
};
[Exposed=Window,
@ -407,6 +450,8 @@ interface HTMLObjectElement : HTMLElement {
interface HTMLParamElement : HTMLElement {
[CEReactions] attribute DOMString name;
[CEReactions] attribute DOMString value;
// also has obsolete members
};
[Exposed=Window,
@ -647,6 +692,8 @@ interface HTMLAreaElement : HTMLElement {
[CEReactions] attribute DOMString rel;
[SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
[CEReactions] attribute DOMString referrerPolicy;
// also has obsolete members
};
HTMLAreaElement includes HTMLHyperlinkElementUtils;
@ -671,16 +718,22 @@ interface HTMLTableElement : HTMLElement {
[SameObject] readonly attribute HTMLCollection rows;
HTMLTableRowElement insertRow(optional long index = -1);
[CEReactions] void deleteRow(long index);
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLTableCaptionElement : HTMLElement {};
interface HTMLTableCaptionElement : HTMLElement {
// also has obsolete members
};
[Exposed=Window,
HTMLConstructor]
interface HTMLTableColElement : HTMLElement {
[CEReactions] attribute unsigned long span;
// also has obsolete members
};
[Exposed=Window,
@ -689,6 +742,8 @@ interface HTMLTableSectionElement : HTMLElement {
[SameObject] readonly attribute HTMLCollection rows;
HTMLTableRowElement insertRow(optional long index = -1);
[CEReactions] void deleteRow(long index);
// also has obsolete members
};
[Exposed=Window,
@ -699,6 +754,8 @@ interface HTMLTableRowElement : HTMLElement {
[SameObject] readonly attribute HTMLCollection cells;
HTMLTableCellElement insertCell(optional long index = -1);
[CEReactions] void deleteCell(long index);
// also has obsolete members
};
[Exposed=Window,
@ -711,6 +768,8 @@ interface HTMLTableCellElement : HTMLElement {
[CEReactions] attribute DOMString scope; // only conforming for th elements
[CEReactions] attribute DOMString abbr; // only conforming for th elements
// also has obsolete members
};
[Exposed=Window,
@ -809,6 +868,8 @@ interface HTMLInputElement : HTMLElement {
void setRangeText(DOMString replacement);
void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
// also has obsolete members
};
[Exposed=Window,
@ -1007,6 +1068,8 @@ interface HTMLFieldSetElement : HTMLElement {
HTMLConstructor]
interface HTMLLegendElement : HTMLElement {
readonly attribute HTMLFormElement? form;
// also has obsolete members
};
enum SelectionMode {
@ -1070,6 +1133,7 @@ interface HTMLScriptElement : HTMLElement {
[CEReactions] attribute DOMString integrity;
[CEReactions] attribute DOMString referrerPolicy;
// also has obsolete members
};
[Exposed=Window,
@ -1120,6 +1184,7 @@ enum CanvasFillRule { "nonzero", "evenodd" };
dictionary CanvasRenderingContext2DSettings {
boolean alpha = true;
boolean desynchronized = false;
};
enum ImageSmoothingQuality { "low", "medium", "high" };
@ -1406,7 +1471,7 @@ interface CustomElementRegistry {
[CEReactions] void upgrade(Node root);
};
callback CustomElementConstructor = any ();
callback CustomElementConstructor = HTMLElement ();
dictionary ElementDefinitionOptions {
DOMString extends;

View file

@ -34,6 +34,8 @@ interface MediaSession {
attribute MediaSessionPlaybackState playbackState;
void setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler);
void setPositionState(MediaPositionState? state);
};
[Constructor(optional MediaMetadataInit init), Exposed=Window]
@ -56,3 +58,9 @@ dictionary MediaImage {
DOMString sizes = "";
DOMString type = "";
};
dictionary MediaPositionState {
required double duration;
double playbackRate = 1.0;
double position = 0.0;
};

View file

@ -12,6 +12,8 @@ interface PaymentRequest : EventTarget {
Promise<void> abort();
[NewObject]
Promise<boolean> canMakePayment();
[NewObject]
Promise<boolean> hasEnrolledInstrument();
readonly attribute DOMString id;
readonly attribute PaymentAddress? shippingAddress;

View file

@ -9,7 +9,7 @@ interface mixin AccessibilityRole {
Element includes AccessibilityRole;
interface mixin AriaAttributes {
attribute DOMString? ariaActiveDescendant;
attribute Element? ariaActiveDescendantElement;
attribute DOMString? ariaAtomic;
attribute DOMString? ariaAutoComplete;
attribute DOMString? ariaBusy;
@ -17,27 +17,27 @@ interface mixin AriaAttributes {
attribute DOMString? ariaColCount;
attribute DOMString? ariaColIndex;
attribute DOMString? ariaColSpan;
attribute DOMString? ariaControls;
attribute FrozenArray<Element>? ariaControlsElements;
attribute DOMString? ariaCurrent;
attribute DOMString? ariaDescribedBy;
attribute DOMString? ariaDetails;
attribute FrozenArray<Element>? ariaDescribedByElements;
attribute Element? ariaDetailsElement;
attribute DOMString? ariaDisabled;
attribute DOMString? ariaErrorMessage;
attribute Element? ariaErrorMessageElement;
attribute DOMString? ariaExpanded;
attribute DOMString? ariaFlowTo;
attribute FrozenArray<Element>? ariaFlowToElements;
attribute DOMString? ariaHasPopup;
attribute DOMString? ariaHidden;
attribute DOMString? ariaInvalid;
attribute DOMString? ariaKeyShortcuts;
attribute DOMString? ariaLabel;
attribute DOMString? ariaLabelledBy;
attribute FrozenArray<Element>? ariaLabelledByElements;
attribute DOMString? ariaLevel;
attribute DOMString? ariaLive;
attribute DOMString? ariaModal;
attribute DOMString? ariaMultiLine;
attribute DOMString? ariaMultiSelectable;
attribute DOMString? ariaOrientation;
attribute DOMString? ariaOwns;
attribute FrozenArray<Element>? ariaOwnsElements;
attribute DOMString? ariaPlaceholder;
attribute DOMString? ariaPosInSet;
attribute DOMString? ariaPressed;

View file

@ -9,21 +9,12 @@ dictionary WakeLockPermissionDescriptor : PermissionDescriptor {
enum WakeLockType { "screen", "system" };
[Constructor(WakeLockType type), SecureContext, Exposed=(DedicatedWorker,Window)]
interface WakeLock : EventTarget {
[SecureContext, Exposed=(DedicatedWorker,Window)]
interface WakeLock {
[Exposed=Window] static Promise<PermissionState> requestPermission(WakeLockType type);
readonly attribute WakeLockType type;
readonly attribute boolean active;
attribute EventHandler onactivechange;
Promise<void> request(optional WakeLockRequestOptions options);
static sequence<WakeLock> query(optional WakeLockQueryFilter filter);
static Promise<void> request(WakeLockType type, optional WakeLockRequestOptions options);
};
dictionary WakeLockRequestOptions {
AbortSignal? signal = null;
};
dictionary WakeLockQueryFilter {
WakeLockType? type;
boolean? active;
};

View file

@ -28,21 +28,27 @@ interface Animation : EventTarget {
attribute double? currentTime;
attribute double playbackRate;
readonly attribute AnimationPlayState playState;
readonly attribute AnimationReplaceState replaceState;
readonly attribute boolean pending;
readonly attribute Promise<Animation> ready;
readonly attribute Promise<Animation> finished;
attribute EventHandler onfinish;
attribute EventHandler oncancel;
attribute EventHandler onremove;
void cancel ();
void finish ();
void play ();
void pause ();
void updatePlaybackRate (double playbackRate);
void reverse ();
void persist ();
void commitStyles ();
};
enum AnimationPlayState { "idle", "running", "paused", "finished" };
enum AnimationReplaceState { "active", "removed", "persisted" };
[Exposed=Window]
interface AnimationEffect {
EffectTiming getTiming();

View file

@ -76,6 +76,7 @@ dictionary PublicKeyCredentialUserEntity : PublicKeyCredentialEntity {
dictionary AuthenticatorSelectionCriteria {
AuthenticatorAttachment authenticatorAttachment;
boolean requireResidentKey = false;
ResidentKeyRequirement residentKey;
UserVerificationRequirement userVerification = "preferred";
};
@ -84,6 +85,12 @@ enum AuthenticatorAttachment {
"cross-platform"
};
enum ResidentKeyRequirement {
"discouraged",
"preferred",
"required"
};
enum AttestationConveyancePreference {
"none",
"indirect",
@ -228,3 +235,15 @@ dictionary authenticatorBiometricPerfBounds{
float FAR;
float FRR;
};
partial dictionary AuthenticationExtensionsClientInputs {
boolean credProps;
};
dictionary CredentialPropertiesOutput {
boolean rk;
};
partial dictionary AuthenticationExtensionsClientOutputs {
CredentialPropertiesOutput credProps;
};

View file

@ -5,9 +5,9 @@
dictionary RTCConfiguration {
sequence<RTCIceServer> iceServers;
RTCIceTransportPolicy iceTransportPolicy = "all";
RTCBundlePolicy bundlePolicy = "balanced";
RTCRtcpMuxPolicy rtcpMuxPolicy = "require";
RTCIceTransportPolicy iceTransportPolicy;
RTCBundlePolicy bundlePolicy;
RTCRtcpMuxPolicy rtcpMuxPolicy;
DOMString peerIdentity;
sequence<RTCCertificate> certificates;
[EnforceRange]
@ -382,6 +382,7 @@ dictionary RTCRtpContributingSource {
required DOMHighResTimeStamp timestamp;
required unsigned long source;
double audioLevel;
unsigned long rtpTimestamp;
};
dictionary RTCRtpSynchronizationSource : RTCRtpContributingSource {

View file

@ -9,7 +9,7 @@ partial interface Navigator {
[SecureContext, Exposed=Window] interface XR : EventTarget {
// Methods
Promise<void> supportsSessionMode(XRSessionMode mode);
Promise<void> supportsSession(XRSessionMode mode);
Promise<XRSession> requestSession(XRSessionMode mode);
// Events
@ -31,14 +31,12 @@ enum XREnvironmentBlendMode {
[SecureContext, Exposed=Window] interface XRSession : EventTarget {
// Attributes
readonly attribute XREnvironmentBlendMode environmentBlendMode;
readonly attribute XRRenderState renderState;
readonly attribute XRSpace viewerSpace;
[SameObject] readonly attribute XRRenderState renderState;
readonly attribute XRInputSourceArray inputSources;
// Methods
void updateRenderState(optional XRRenderStateInit state);
Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceOptions options);
FrozenArray<XRInputSource> getInputSources();
Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type);
long requestAnimationFrame(XRFrameRequestCallback callback);
void cancelAnimationFrame(long handle);
@ -74,10 +72,10 @@ dictionary XRRenderStateInit {
callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame);
[SecureContext, Exposed=Window] interface XRFrame {
readonly attribute XRSession session;
[SameObject] readonly attribute XRSession session;
XRViewerPose? getViewerPose(XRReferenceSpace referenceSpace);
XRPose? getPose(XRSpace space, XRSpace relativeTo);
XRPose? getPose(XRSpace sourceSpace, XRSpace destinationSpace);
};
[SecureContext, Exposed=Window] interface XRSpace : EventTarget {
@ -85,30 +83,18 @@ callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame)
};
enum XRReferenceSpaceType {
"identity",
"stationary",
"bounded",
"viewer",
"local",
"local-floor",
"bounded-floor",
"unbounded"
};
enum XRStationaryReferenceSpaceSubtype {
"eye-level",
"floor-level",
"position-disabled"
};
dictionary XRReferenceSpaceOptions {
required XRReferenceSpaceType type;
XRStationaryReferenceSpaceSubtype subtype;
};
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
attribute XRRigidTransform originOffset;
attribute EventHandler onreset;
};
[SecureContext, Exposed=Window]
interface XRStationaryReferenceSpace : XRReferenceSpace {
interface XRReferenceSpace : XRSpace {
XRReferenceSpace getOffsetReferenceSpace(XRRigidTransform originOffset);
attribute EventHandler onreset;
};
[SecureContext, Exposed=Window]
@ -116,20 +102,16 @@ interface XRBoundedReferenceSpace : XRReferenceSpace {
readonly attribute FrozenArray<DOMPointReadOnly> boundsGeometry;
};
[SecureContext, Exposed=Window]
interface XRUnboundedReferenceSpace : XRReferenceSpace {
};
enum XREye {
"none",
"left",
"right"
};
[SecureContext, Exposed=Window] interface XRView {
readonly attribute XREye eye;
readonly attribute Float32Array projectionMatrix;
readonly attribute XRRigidTransform transform;
[SameObject] readonly attribute Float32Array projectionMatrix;
[SameObject] readonly attribute XRRigidTransform transform;
};
[SecureContext, Exposed=Window] interface XRViewport {
@ -142,9 +124,9 @@ enum XREye {
[SecureContext, Exposed=Window,
Constructor(optional DOMPointInit position, optional DOMPointInit orientation)]
interface XRRigidTransform {
readonly attribute DOMPointReadOnly position;
readonly attribute DOMPointReadOnly orientation;
readonly attribute Float32Array matrix;
[SameObject] readonly attribute DOMPointReadOnly position;
[SameObject] readonly attribute DOMPointReadOnly orientation;
[SameObject] readonly attribute Float32Array matrix;
[SameObject] readonly attribute XRRigidTransform inverse;
};
@ -152,18 +134,18 @@ interface XRRigidTransform {
Constructor(optional DOMPointInit origin, optional DOMPointInit direction),
Constructor(XRRigidTransform transform)]
interface XRRay {
readonly attribute DOMPointReadOnly origin;
readonly attribute DOMPointReadOnly direction;
readonly attribute Float32Array matrix;
[SameObject] readonly attribute DOMPointReadOnly origin;
[SameObject] readonly attribute DOMPointReadOnly direction;
[SameObject] readonly attribute Float32Array matrix;
};
[SecureContext, Exposed=Window] interface XRPose {
readonly attribute XRRigidTransform transform;
[SameObject] readonly attribute XRRigidTransform transform;
readonly attribute boolean emulatedPosition;
};
[SecureContext, Exposed=Window] interface XRViewerPose : XRPose {
readonly attribute FrozenArray<XRView> views;
[SameObject] readonly attribute FrozenArray<XRView> views;
};
enum XRHandedness {
@ -182,9 +164,16 @@ enum XRTargetRayMode {
interface XRInputSource {
readonly attribute XRHandedness handedness;
readonly attribute XRTargetRayMode targetRayMode;
readonly attribute XRSpace targetRaySpace;
readonly attribute XRSpace? gripSpace;
readonly attribute Gamepad? gamepad;
[SameObject] readonly attribute XRSpace targetRaySpace;
[SameObject] readonly attribute XRSpace? gripSpace;
[SameObject] readonly attribute Gamepad? gamepad;
};
[SecureContext, Exposed=Window]
interface XRInputSourceArray {
iterable<XRInputSource>;
readonly attribute unsigned long length;
getter XRInputSource(unsigned long index);
};
enum GamepadMappingType {
@ -212,18 +201,17 @@ dictionary XRWebGLLayerInit {
optional XRWebGLLayerInit layerInit)]
interface XRWebGLLayer : XRLayer {
// Attributes
readonly attribute XRWebGLRenderingContext context;
[SameObject] readonly attribute XRWebGLRenderingContext context;
readonly attribute boolean antialias;
readonly attribute boolean ignoreDepthValues;
readonly attribute WebGLFramebuffer framebuffer;
[SameObject] readonly attribute WebGLFramebuffer framebuffer;
readonly attribute unsigned long framebufferWidth;
readonly attribute unsigned long framebufferHeight;
// Methods
XRViewport? getViewport(XRView view);
void requestViewportScaling(double viewportScaleFactor);
// Static Methods
static double getNativeFramebufferScaleFactor(XRSession session);
@ -238,12 +226,12 @@ partial interface mixin WebGLRenderingContextBase {
};
[SecureContext, Exposed=Window] interface XRPresentationContext {
readonly attribute HTMLCanvasElement canvas;
[SameObject] readonly attribute HTMLCanvasElement canvas;
};
[SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)]
interface XRSessionEvent : Event {
readonly attribute XRSession session;
[SameObject] readonly attribute XRSession session;
};
dictionary XRSessionEventInit : EventInit {
@ -252,9 +240,9 @@ dictionary XRSessionEventInit : EventInit {
[SecureContext, Exposed=Window, Constructor(DOMString type, XRInputSourceEventInit eventInitDict)]
interface XRInputSourceEvent : Event {
readonly attribute XRFrame frame;
readonly attribute XRInputSource inputSource;
readonly attribute long? buttonIndex;
[SameObject] readonly attribute XRFrame frame;
[SameObject] readonly attribute XRInputSource inputSource;
[SameObject] readonly attribute long? buttonIndex;
};
dictionary XRInputSourceEventInit : EventInit {
@ -263,10 +251,24 @@ dictionary XRInputSourceEventInit : EventInit {
long? buttonIndex = null;
};
[SecureContext, Exposed=Window, Constructor(DOMString type, XRInputSourcesChangeEventInit eventInitDict)]
interface XRInputSourcesChangeEvent : Event {
[SameObject] readonly attribute XRSession session;
[SameObject] readonly attribute FrozenArray<XRInputSource> added;
[SameObject] readonly attribute FrozenArray<XRInputSource> removed;
};
dictionary XRInputSourcesChangeEventInit : EventInit {
required XRSession session;
required FrozenArray<XRInputSource> added;
required FrozenArray<XRInputSource> removed;
};
[SecureContext, Exposed=Window, Constructor(DOMString type, XRReferenceSpaceEventInit eventInitDict)]
interface XRReferenceSpaceEvent : Event {
readonly attribute XRReferenceSpace referenceSpace;
readonly attribute XRRigidTransform? transform;
[SameObject] readonly attribute XRReferenceSpace referenceSpace;
[SameObject] readonly attribute XRRigidTransform? transform;
};
dictionary XRReferenceSpaceEventInit : EventInit {