Bug 1523562 [wpt PR 14886] - Manually update interfaces/html.idl, a=testonly
authorAutomat af Gränssnitt <auto@foolip.org>
Thu, 31 Jan 2019 18:57:54 +0000
changeset 458053 4b1eca543c59e1d7a1b13b1f80c4125a22c97d45
parent 458052 774b6cbadec9d5c93e29e41a7ba63f830a396af8
child 458054 52b04af9f2af4fd5fd4ccab1d2eef2d6999901c6
push id35518
push useropoprus@mozilla.com
push dateFri, 08 Feb 2019 09:55:14 +0000
treeherdermozilla-central@3a3e393396f4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1523562, 14886
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1523562 [wpt PR 14886] - Manually update interfaces/html.idl, a=testonly Automatic update from web-platform-tests Update interfaces/html.idl Source: https://github.com/tidoust/reffy-reports/blob/a030b30/whatwg/idl/html.idl Build: https://travis-ci.org/tidoust/reffy-reports/builds/475627165 -- Manually remove Example interface -- wpt-commits: d02e71036575a13526f2df3a015f15ee514afea9, 394111a44d8f9deccd71cf06d1e9fc71ba32df40 wpt-pr: 14886
testing/web-platform/tests/interfaces/html.idl
--- a/testing/web-platform/tests/interfaces/html.idl
+++ b/testing/web-platform/tests/interfaces/html.idl
@@ -1,8 +1,15 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into reffy-reports
+// (https://github.com/tidoust/reffy-reports)
+// Source: HTML Standard (https://html.spec.whatwg.org/)
+
+// Example interface manually removed here, see https://github.com/tidoust/reffy/issues/129.
+
 [Exposed=Window,
  LegacyUnenumerableNamedProperties]
 interface HTMLAllCollection {
   readonly attribute unsigned long length;
   getter Element (unsigned long index);
   getter (HTMLCollection or Element)? namedItem(DOMString name);
   (HTMLCollection or Element)? item(optional DOMString nameOrIndex);
 
@@ -10,16 +17,17 @@ interface HTMLAllCollection {
 };
 
 [Exposed=Window]
 interface HTMLFormControlsCollection : HTMLCollection {
   // inherits length and item()
   getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem()
 };
 
+[Exposed=Window]
 interface RadioNodeList : NodeList {
   attribute DOMString value;
 };
 
 [Exposed=Window]
 interface HTMLOptionsCollection : HTMLCollection {
   // inherits item(), namedItem()
   [CEReactions] attribute unsigned long length; // shadows inherited length
@@ -60,18 +68,18 @@ partial interface Document {
   [SameObject] readonly attribute HTMLCollection plugins;
   [SameObject] readonly attribute HTMLCollection links;
   [SameObject] readonly attribute HTMLCollection forms;
   [SameObject] readonly attribute HTMLCollection scripts;
   NodeList getElementsByName(DOMString elementName);
   readonly attribute HTMLOrSVGScriptElement? currentScript; // classic scripts in a document tree only
 
   // dynamic markup insertion
-  [CEReactions] Document open(optional DOMString type = "text/html", optional DOMString replace = "");
-  WindowProxy open(USVString url, DOMString name, DOMString features);
+  [CEReactions] Document open(optional DOMString unused1, optional DOMString unused2); // both arguments are ignored
+  WindowProxy? open(USVString url, DOMString name, DOMString features);
   [CEReactions] void close();
   [CEReactions] void write(DOMString... text);
   [CEReactions] void writeln(DOMString... text);
 
   // user interaction
   readonly attribute WindowProxy? defaultView;
   readonly attribute Element? activeElement;
   boolean hasFocus();
@@ -100,54 +108,50 @@ interface HTMLElement : Element {
 
   // user interaction
   [CEReactions] attribute boolean hidden;
   void click();
   [CEReactions] attribute DOMString accessKey;
   readonly attribute DOMString accessKeyLabel;
   [CEReactions] attribute boolean draggable;
   [CEReactions] attribute boolean spellcheck;
+  [CEReactions] attribute DOMString autocapitalize;
 
   [CEReactions] attribute [TreatNullAs=EmptyString] DOMString innerText;
 };
 
-dictionary FocusOptions {
-  boolean preventScroll = false;
-};
-
 HTMLElement includes GlobalEventHandlers;
 HTMLElement includes DocumentAndElementEventHandlers;
 HTMLElement includes ElementContentEditable;
 HTMLElement includes HTMLOrSVGElement;
 
 // Note: intentionally not [HTMLConstructor]
+[Exposed=Window]
 interface HTMLUnknownElement : HTMLElement { };
 
 interface mixin HTMLOrSVGElement {
   [SameObject] readonly attribute DOMStringMap dataset;
-  attribute DOMString nonce;
+  attribute DOMString nonce; // intentionally no [CEReactions]
 
   [CEReactions] attribute long tabIndex;
   void focus(optional FocusOptions options);
   void blur();
 };
 
 [Exposed=Window,
  OverrideBuiltins]
 interface DOMStringMap {
   getter DOMString (DOMString name);
   [CEReactions] setter void (DOMString name, DOMString value);
   [CEReactions] deleter void (DOMString name);
 };
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLHtmlElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLHtmlElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLHeadElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTitleElement : HTMLElement {
@@ -179,124 +183,98 @@ interface HTMLLinkElement : HTMLElement 
 HTMLLinkElement includes LinkStyle;
 
 [Exposed=Window,
  HTMLConstructor]
 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;
 };
 HTMLStyleElement includes LinkStyle;
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLBodyElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLBodyElement : HTMLElement {};
 
 HTMLBodyElement includes WindowEventHandlers;
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLHeadingElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLHeadingElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLParagraphElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLParagraphElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLHRElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLHRElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLPreElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLPreElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLQuoteElement : HTMLElement {
   [CEReactions] attribute USVString cite;
 };
 
 [Exposed=Window,
  HTMLConstructor]
 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 {
-  // also has obsolete members
-};
+interface HTMLUListElement : HTMLElement {};
 
 [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 {
-  // also has obsolete members
-};
+interface HTMLDListElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLDivElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLDivElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLAnchorElement : HTMLElement {
   [CEReactions] attribute DOMString target;
   [CEReactions] attribute DOMString download;
   [CEReactions] attribute USVString ping;
   [CEReactions] attribute DOMString rel;
   [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
   [CEReactions] attribute DOMString hreflang;
   [CEReactions] attribute DOMString type;
 
   [CEReactions] attribute DOMString text;
 
   [CEReactions] attribute DOMString referrerPolicy;
-
-  // also has obsolete members
 };
 HTMLAnchorElement includes HTMLHyperlinkElementUtils;
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLDataElement : HTMLElement {
   [CEReactions] attribute DOMString value;
 };
@@ -308,19 +286,17 @@ interface HTMLTimeElement : HTMLElement 
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLSpanElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
-interface HTMLBRElement : HTMLElement {
-  // also has obsolete members
-};
+interface HTMLBRElement : HTMLElement {};
 
 interface mixin HTMLHyperlinkElementUtils {
   [CEReactions] stringifier attribute USVString href;
   readonly attribute USVString origin;
   [CEReactions] attribute USVString protocol;
   [CEReactions] attribute USVString username;
   [CEReactions] attribute USVString password;
   [CEReactions] attribute USVString host;
@@ -365,53 +341,47 @@ interface HTMLImageElement : HTMLElement
   [CEReactions] attribute boolean isMap;
   [CEReactions] attribute unsigned long width;
   [CEReactions] attribute unsigned long height;
   readonly attribute unsigned long naturalWidth;
   readonly attribute unsigned long naturalHeight;
   readonly attribute boolean complete;
   readonly attribute USVString currentSrc;
   [CEReactions] attribute DOMString referrerPolicy;
+  [CEReactions] attribute DOMString decoding;
 
   Promise<void> decode();
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLIFrameElement : HTMLElement {
   [CEReactions] attribute USVString src;
   [CEReactions] attribute DOMString srcdoc;
   [CEReactions] attribute DOMString name;
   [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
+  [CEReactions] attribute DOMString allow;
   [CEReactions] attribute boolean allowFullscreen;
   [CEReactions] attribute boolean allowPaymentRequest;
-  [CEReactions] attribute boolean allowUserMedia;
   [CEReactions] attribute DOMString width;
   [CEReactions] attribute DOMString height;
   [CEReactions] attribute DOMString referrerPolicy;
   readonly attribute Document? contentDocument;
   readonly attribute WindowProxy? contentWindow;
   Document? getSVGDocument();
-  [SameObject, PutForwards=value] readonly attribute DOMTokenList delegateStickyUserActivation;
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLEmbedElement : HTMLElement {
   [CEReactions] attribute USVString src;
   [CEReactions] attribute DOMString type;
   [CEReactions] attribute DOMString width;
   [CEReactions] attribute DOMString height;
   Document? getSVGDocument();
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLObjectElement : HTMLElement {
   [CEReactions] attribute USVString data;
   [CEReactions] attribute DOMString type;
   [CEReactions] attribute boolean typeMustMatch;
@@ -425,27 +395,23 @@ interface HTMLObjectElement : HTMLElemen
   Document? getSVGDocument();
 
   readonly attribute boolean willValidate;
   readonly attribute ValidityState validity;
   readonly attribute DOMString validationMessage;
   boolean checkValidity();
   boolean reportValidity();
   void setCustomValidity(DOMString error);
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLParamElement : HTMLElement {
   [CEReactions] attribute DOMString name;
   [CEReactions] attribute DOMString value;
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLVideoElement : HTMLMediaElement {
   [CEReactions] attribute unsigned long width;
   [CEReactions] attribute unsigned long height;
   readonly attribute unsigned long videoWidth;
@@ -676,18 +642,16 @@ interface HTMLAreaElement : HTMLElement 
   [CEReactions] attribute DOMString coords;
   [CEReactions] attribute DOMString shape;
   [CEReactions] attribute DOMString target;
   [CEReactions] attribute DOMString download;
   [CEReactions] attribute USVString ping;
   [CEReactions] attribute DOMString rel;
   [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
   [CEReactions] attribute DOMString referrerPolicy;
-
-  // also has obsolete members
 };
 HTMLAreaElement includes HTMLHyperlinkElementUtils;
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTableElement : HTMLElement {
   [CEReactions] attribute HTMLTableCaptionElement? caption;
   HTMLTableCaptionElement createCaption();
@@ -702,68 +666,56 @@ interface HTMLTableElement : HTMLElement
   [CEReactions] void deleteTFoot();
 
   [SameObject] readonly attribute HTMLCollection tBodies;
   HTMLTableSectionElement createTBody();
 
   [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 {
-  // also has obsolete members
-};
+interface HTMLTableCaptionElement : HTMLElement {};
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTableColElement : HTMLElement {
   [CEReactions] attribute unsigned long span;
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTableSectionElement : HTMLElement {
   [SameObject] readonly attribute HTMLCollection rows;
-  HTMLElement insertRow(optional long index = -1);
+  HTMLTableRowElement insertRow(optional long index = -1);
   [CEReactions] void deleteRow(long index);
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTableRowElement : HTMLElement {
   readonly attribute long rowIndex;
   readonly attribute long sectionRowIndex;
   [SameObject] readonly attribute HTMLCollection cells;
   HTMLTableCellElement insertCell(optional long index = -1);
   [CEReactions] void deleteCell(long index);
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTableCellElement : HTMLElement {
   [CEReactions] attribute unsigned long colSpan;
   [CEReactions] attribute unsigned long rowSpan;
   [CEReactions] attribute DOMString headers;
   readonly attribute long cellIndex;
 
   [CEReactions] attribute DOMString scope; // only conforming for th elements
   [CEReactions] attribute DOMString abbr;  // only conforming for th elements
-
-  // also has obsolete members
 };
 
 [Exposed=Window,
  OverrideBuiltins,
  LegacyUnenumerableNamedProperties,
  HTMLConstructor]
 interface HTMLFormElement : HTMLElement {
   [CEReactions] attribute DOMString acceptCharset;
@@ -850,18 +802,16 @@ interface HTMLInputElement : HTMLElement
 
   void select();
   attribute unsigned long? selectionStart;
   attribute unsigned long? selectionEnd;
   attribute DOMString? selectionDirection;
   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,
  HTMLConstructor]
 interface HTMLButtonElement : HTMLElement {
   [CEReactions] attribute boolean autofocus;
   [CEReactions] attribute boolean disabled;
   readonly attribute HTMLFormElement? form;
@@ -964,17 +914,17 @@ interface HTMLTextAreaElement : HTMLElem
   [CEReactions] attribute DOMString placeholder;
   [CEReactions] attribute boolean readOnly;
   [CEReactions] attribute boolean required;
   [CEReactions] attribute unsigned long rows;
   [CEReactions] attribute DOMString wrap;
 
   readonly attribute DOMString type;
   [CEReactions] attribute DOMString defaultValue;
-  [CEReactions] attribute [TreatNullAs=EmptyString] DOMString value;
+  attribute [TreatNullAs=EmptyString] DOMString value;
   readonly attribute unsigned long textLength;
 
   readonly attribute boolean willValidate;
   readonly attribute ValidityState validity;
   readonly attribute DOMString validationMessage;
   boolean checkValidity();
   boolean reportValidity();
   void setCustomValidity(DOMString error);
@@ -1050,18 +1000,16 @@ interface HTMLFieldSetElement : HTMLElem
   boolean reportValidity();
   void setCustomValidity(DOMString error);
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLLegendElement : HTMLElement {
   readonly attribute HTMLFormElement? form;
-
-  // also has obsolete members
 };
 
 enum SelectionMode {
   "select",
   "start",
   "end",
   "preserve" // default
 };
@@ -1113,16 +1061,17 @@ interface HTMLScriptElement : HTMLElemen
   [CEReactions] attribute USVString src;
   [CEReactions] attribute DOMString type;
   [CEReactions] attribute boolean noModule;
   [CEReactions] attribute boolean async;
   [CEReactions] attribute boolean defer;
   [CEReactions] attribute DOMString? crossOrigin;
   [CEReactions] attribute DOMString text;
   [CEReactions] attribute DOMString integrity;
+  [CEReactions] attribute DOMString referrerPolicy;
 
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLTemplateElement : HTMLElement {
   readonly attribute DocumentFragment content;
 };
@@ -1134,17 +1083,17 @@ interface HTMLSlotElement : HTMLElement 
   sequence<Node> assignedNodes(optional AssignedNodesOptions options);
   sequence<Element> assignedElements(optional AssignedNodesOptions options);
 };
 
 dictionary AssignedNodesOptions {
   boolean flatten = false;
 };
 
-typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext) RenderingContext;
+typedef (CanvasRenderingContext2D or ImageBitmapRenderingContext or WebGLRenderingContext or WebGL2RenderingContext) RenderingContext;
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLCanvasElement : HTMLElement {
   [CEReactions] attribute unsigned long width;
   [CEReactions] attribute unsigned long height;
 
   RenderingContext? getContext(DOMString contextId, optional any options = null);
@@ -1172,16 +1121,18 @@ dictionary CanvasRenderingContext2DSetti
 };
 
 enum ImageSmoothingQuality { "low", "medium", "high" };
 
 [Exposed=Window]
 interface CanvasRenderingContext2D {
   // back-reference to the canvas
   readonly attribute HTMLCanvasElement canvas;
+
+  CanvasRenderingContext2DSettings getContextAttributes();
 };
 CanvasRenderingContext2D includes CanvasState;
 CanvasRenderingContext2D includes CanvasTransform;
 CanvasRenderingContext2D includes CanvasCompositing;
 CanvasRenderingContext2D includes CanvasImageSmoothing;
 CanvasRenderingContext2D includes CanvasFillStrokeStyles;
 CanvasRenderingContext2D includes CanvasShadowStyles;
 CanvasRenderingContext2D includes CanvasFilters;
@@ -1207,37 +1158,40 @@ interface mixin CanvasTransform {
   void rotate(unrestricted double angle);
   void translate(unrestricted double x, unrestricted double y);
   void transform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
 
   [NewObject] DOMMatrix getTransform();
   void setTransform(unrestricted double a, unrestricted double b, unrestricted double c, unrestricted double d, unrestricted double e, unrestricted double f);
   void setTransform(optional DOMMatrix2DInit transform);
   void resetTransform();
+
 };
 
 interface mixin CanvasCompositing {
   // compositing
   attribute unrestricted double globalAlpha; // (default 1.0)
   attribute DOMString globalCompositeOperation; // (default source-over)
 };
 
 interface mixin CanvasImageSmoothing {
   // image smoothing
   attribute boolean imageSmoothingEnabled; // (default true)
   attribute ImageSmoothingQuality imageSmoothingQuality; // (default low)
+
 };
 
 interface mixin CanvasFillStrokeStyles {
   // colors and styles (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces)
   attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
   attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
   CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
   CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
   CanvasPattern? createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
+
 };
 
 interface mixin CanvasShadowStyles {
   // shadows
   attribute unrestricted double shadowOffsetX; // (default 0)
   attribute unrestricted double shadowOffsetY; // (default 0)
   attribute unrestricted double shadowBlur; // (default 0)
   attribute DOMString shadowColor; // (default transparent black)
@@ -1259,17 +1213,16 @@ interface mixin CanvasDrawPath {
   // path API (see also CanvasPath)
   void beginPath();
   void fill(optional CanvasFillRule fillRule = "nonzero");
   void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
   void stroke();
   void stroke(Path2D path);
   void clip(optional CanvasFillRule fillRule = "nonzero");
   void clip(Path2D path, optional CanvasFillRule fillRule = "nonzero");
-  void resetClip();
   boolean isPointInPath(unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero");
   boolean isPointInPath(Path2D path, unrestricted double x, unrestricted double y, optional CanvasFillRule fillRule = "nonzero");
   boolean isPointInStroke(unrestricted double x, unrestricted double y);
   boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
 };
 
 interface mixin CanvasUserInterface {
   void drawFocusIfNeeded(Element element);
@@ -1331,48 +1284,53 @@ interface mixin CanvasTextDrawingStyles 
 interface mixin CanvasPath {
   // shared path API methods
   void closePath();
   void moveTo(unrestricted double x, unrestricted double y);
   void lineTo(unrestricted double x, unrestricted double y);
   void quadraticCurveTo(unrestricted double cpx, unrestricted double cpy, unrestricted double x, unrestricted double y);
   void bezierCurveTo(unrestricted double cp1x, unrestricted double cp1y, unrestricted double cp2x, unrestricted double cp2y, unrestricted double x, unrestricted double y);
   void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius);
+
   void rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
   void arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
+
   void ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
+
 };
 
 [Exposed=(Window,Worker)]
 interface CanvasGradient {
   // opaque object
   void addColorStop(double offset, DOMString color);
 };
 
 [Exposed=(Window,Worker)]
 interface CanvasPattern {
   // opaque object
   void setTransform(optional DOMMatrix2DInit transform);
 };
 
-[Exposed=Window]
+[Exposed=(Window,Worker)]
 interface TextMetrics {
   // x-direction
   readonly attribute double width; // advance width
   readonly attribute double actualBoundingBoxLeft;
   readonly attribute double actualBoundingBoxRight;
 
   // y-direction
   readonly attribute double fontBoundingBoxAscent;
   readonly attribute double fontBoundingBoxDescent;
   readonly attribute double actualBoundingBoxAscent;
   readonly attribute double actualBoundingBoxDescent;
   readonly attribute double emHeightAscent;
   readonly attribute double emHeightDescent;
-  Baselines getBaselines();
+  readonly attribute double hangingBaseline;
+  readonly attribute double alphabeticBaseline;
+  readonly attribute double ideographicBaseline;
 };
 
 [Constructor(unsigned long sw, unsigned long sh),
  Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh),
  Exposed=(Window,Worker),
  Serializable]
 interface ImageData {
   readonly attribute unsigned long width;
@@ -1392,79 +1350,85 @@ interface ImageBitmapRenderingContext {
   readonly attribute HTMLCanvasElement canvas;
   void transferFromImageBitmap(ImageBitmap? bitmap);
 };
 
 dictionary ImageBitmapRenderingContextSettings {
   boolean alpha = true;
 };
 
-typedef (OffscreenCanvasRenderingContext2D or
-        WebGLRenderingContext) OffscreenRenderingContext;
+typedef (OffscreenCanvasRenderingContext2D or WebGLRenderingContext or WebGL2RenderingContext) OffscreenRenderingContext;
 
 dictionary ImageEncodeOptions {
   DOMString type = "image/png";
   unrestricted double quality = 1.0;
 };
 
-enum OffscreenRenderingContextId { "2d", "webgl" };
+enum OffscreenRenderingContextId { "2d", "webgl", "webgl2" };
 
 [Constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height), Exposed=(Window,Worker), Transferable]
 interface OffscreenCanvas : EventTarget {
-  attribute unsigned long long width;
-  attribute unsigned long long height;
+  attribute [EnforceRange] unsigned long long width;
+  attribute [EnforceRange] unsigned long long height;
 
   OffscreenRenderingContext? getContext(OffscreenRenderingContextId contextId, optional any options = null);
   ImageBitmap transferToImageBitmap();
   Promise<Blob> convertToBlob(optional ImageEncodeOptions options);
 };
 
-
 [Exposed=(Window,Worker)]
 interface OffscreenCanvasRenderingContext2D {
   void commit();
   readonly attribute OffscreenCanvas canvas;
 };
 
 OffscreenCanvasRenderingContext2D includes CanvasState;
 OffscreenCanvasRenderingContext2D includes CanvasTransform;
 OffscreenCanvasRenderingContext2D includes CanvasCompositing;
 OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing;
 OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles;
 OffscreenCanvasRenderingContext2D includes CanvasShadowStyles;
 OffscreenCanvasRenderingContext2D includes CanvasFilters;
 OffscreenCanvasRenderingContext2D includes CanvasRect;
 OffscreenCanvasRenderingContext2D includes CanvasDrawPath;
+OffscreenCanvasRenderingContext2D includes CanvasText;
 OffscreenCanvasRenderingContext2D includes CanvasDrawImage;
 OffscreenCanvasRenderingContext2D includes CanvasImageData;
 OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles;
+OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles;
 OffscreenCanvasRenderingContext2D includes CanvasPath;
 
-
 [Exposed=Window]
 interface CustomElementRegistry {
-  [CEReactions] void define(DOMString name, Function constructor, optional ElementDefinitionOptions options);
+  [CEReactions] void define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options);
   any get(DOMString name);
   Promise<void> whenDefined(DOMString name);
   [CEReactions] void upgrade(Node root);
 };
 
+callback CustomElementConstructor = any ();
+
 dictionary ElementDefinitionOptions {
   DOMString extends;
 };
 
+dictionary FocusOptions {
+  boolean preventScroll = false;
+};
+
 interface mixin ElementContentEditable {
   [CEReactions] attribute DOMString contentEditable;
+  [CEReactions] attribute DOMString enterKeyHint;
   readonly attribute boolean isContentEditable;
   [CEReactions] attribute DOMString inputMode;
 };
 
 [Exposed=Window,
  Constructor]
-  interface DataTransfer {
+interface DataTransfer {
   attribute DOMString dropEffect;
   attribute DOMString effectAllowed;
 
   [SameObject] readonly attribute DataTransferItemList items;
 
   void setDragImage(Element image, long x, long y);
 
   /* old interface */
@@ -1509,16 +1473,17 @@ dictionary DragEventInit : MouseEventIni
  Exposed=Window,
  LegacyUnenumerableNamedProperties]
 interface Window : EventTarget {
   // the current browsing context
   [Unforgeable] readonly attribute WindowProxy window;
   [Replaceable] readonly attribute WindowProxy self;
   [Unforgeable] readonly attribute Document document;
   attribute DOMString name;
+
   [PutForwards=href, Unforgeable] readonly attribute Location location;
   readonly attribute History history;
   readonly attribute CustomElementRegistry customElements;
   [Replaceable] readonly attribute BarProp locationbar;
   [Replaceable] readonly attribute BarProp menubar;
   [Replaceable] readonly attribute BarProp personalbar;
   [Replaceable] readonly attribute BarProp scrollbars;
   [Replaceable] readonly attribute BarProp statusbar;
@@ -1540,52 +1505,44 @@ interface Window : EventTarget {
   WindowProxy? open(optional USVString url = "about:blank", optional DOMString target = "_blank", optional [TreatNullAs=EmptyString] DOMString features = "");
   getter object (DOMString name);
   // Since this is the global object, the IDL named getter adds a NamedPropertiesObject exotic
   // object on the prototype chain. Indeed, this does not make the global object an exotic object.
   // Indexed access is taken care of by the WindowProxy exotic object.
 
   // the user agent
   readonly attribute Navigator navigator;
-  readonly attribute ApplicationCache applicationCache;
+
+  [SecureContext] readonly attribute ApplicationCache applicationCache;
 
   // user prompts
   void alert();
   void alert(DOMString message);
   boolean confirm(optional DOMString message = "");
   DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
   void print();
 
-  unsigned long requestAnimationFrame(FrameRequestCallback callback);
-  void cancelAnimationFrame(unsigned long handle);
-
   void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
-  void postMessage(any message, optional sequence<object> transfer = [], optional WindowPostMessageOptions options);
-
-  // also has obsolete members
+  void postMessage(any message, optional WindowPostMessageOptions options);
 };
 Window includes GlobalEventHandlers;
-Window includes WindowEventHandlers;
 
-callback FrameRequestCallback = void (DOMHighResTimeStamp time);
-
-dictionary WindowPostMessageOptions {
+dictionary WindowPostMessageOptions : PostMessageOptions {
   USVString targetOrigin = "/";
 };
 
 [Exposed=Window]
 interface BarProp {
   readonly attribute boolean visible;
 };
 
 enum ScrollRestoration { "auto", "manual" };
 
 [Exposed=Window]
 interface History {
-  readonly attribute unsigned long index;
   readonly attribute unsigned long length;
   attribute ScrollRestoration scrollRestoration;
   readonly attribute any state;
   void go(optional long delta = 0);
   void back();
   void forward();
   void pushState(any data, DOMString title, optional USVString? url = null);
   void replaceState(any data, DOMString title, optional USVString? url = null);
@@ -1642,17 +1599,18 @@ dictionary PageTransitionEventInit : Eve
   boolean persisted = false;
 };
 
 [Exposed=Window]
 interface BeforeUnloadEvent : Event {
   attribute DOMString returnValue;
 };
 
-[Exposed=Window]
+[SecureContext,
+ Exposed=Window]
 interface ApplicationCache : EventTarget {
 
   // update status
   const unsigned short UNCACHED = 0;
   const unsigned short IDLE = 1;
   const unsigned short CHECKING = 2;
   const unsigned short DOWNLOADING = 3;
   const unsigned short UPDATEREADY = 4;
@@ -1820,16 +1778,19 @@ interface mixin WindowOrWorkerGlobalScop
   ByteString atob(DOMString data);
 
   // timers
   long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
   void clearTimeout(optional long handle = 0);
   long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments);
   void clearInterval(optional long handle = 0);
 
+  // microtask queuing
+  void queueMicrotask(VoidFunction callback);
+
   // ImageBitmap
   Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options);
   Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
 };
 Window includes WindowOrWorkerGlobalScope;
 WorkerGlobalScope includes WindowOrWorkerGlobalScope;
 
 [Exposed=Window]
@@ -1849,18 +1810,16 @@ interface mixin NavigatorID {
   readonly attribute DOMString appName; // constant "Netscape"
   readonly attribute DOMString appVersion;
   readonly attribute DOMString platform;
   readonly attribute DOMString product; // constant "Gecko"
   [Exposed=Window] readonly attribute DOMString productSub;
   readonly attribute DOMString userAgent;
   [Exposed=Window] readonly attribute DOMString vendor;
   [Exposed=Window] readonly attribute DOMString vendorSub; // constant ""
-
-  // also has additional members in a partial interface
 };
 
 partial interface NavigatorID {
   [Exposed=Window] boolean taintEnabled(); // constant false
   [Exposed=Window] readonly attribute DOMString oscpu;
 };
 
 interface mixin NavigatorLanguage {
@@ -1939,16 +1898,25 @@ dictionary ImageBitmapOptions {
   ImageOrientation imageOrientation = "none";
   PremultiplyAlpha premultiplyAlpha = "default";
   ColorSpaceConversion colorSpaceConversion = "default";
   [EnforceRange] unsigned long resizeWidth;
   [EnforceRange] unsigned long resizeHeight;
   ResizeQuality resizeQuality = "low";
 };
 
+callback FrameRequestCallback = void (DOMHighResTimeStamp time);
+
+interface mixin AnimationFrameProvider {
+  unsigned long requestAnimationFrame(FrameRequestCallback callback);
+  void cancelAnimationFrame(unsigned long handle);
+};
+Window includes AnimationFrameProvider;
+DedicatedWorkerGlobalScope includes AnimationFrameProvider;
+
 [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker,AudioWorklet)]
 interface MessageEvent : Event {
   readonly attribute any data;
   readonly attribute USVString origin;
   readonly attribute DOMString lastEventId;
   readonly attribute MessageEventSource? source;
   readonly attribute FrozenArray<MessagePort> ports;
 
@@ -2033,25 +2001,30 @@ dictionary CloseEventInit : EventInit {
 [Constructor, Exposed=(Window,Worker)]
 interface MessageChannel {
   readonly attribute MessagePort port1;
   readonly attribute MessagePort port2;
 };
 
 [Exposed=(Window,Worker,AudioWorklet), Transferable]
 interface MessagePort : EventTarget {
-  void postMessage(any message, optional sequence<object> transfer = []);
+  void postMessage(any message, sequence<object> transfer);
+  void postMessage(any message, optional PostMessageOptions options);
   void start();
   void close();
 
   // event handlers
   attribute EventHandler onmessage;
   attribute EventHandler onmessageerror;
 };
 
+dictionary PostMessageOptions {
+  sequence<object> transfer = [];
+};
+
 [Constructor(DOMString name), Exposed=(Window,Worker)]
 interface BroadcastChannel : EventTarget {
   readonly attribute DOMString name;
   void postMessage(any message);
   void close();
   attribute EventHandler onmessage;
   attribute EventHandler onmessageerror;
 };
@@ -2070,17 +2043,18 @@ interface WorkerGlobalScope : EventTarge
   attribute EventHandler onrejectionhandled;
   attribute EventHandler onunhandledrejection;
 };
 
 [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
 interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
   [Replaceable] readonly attribute DOMString name;
 
-  void postMessage(any message, optional sequence<object> transfer = []);
+  void postMessage(any message, sequence<object> transfer);
+  void postMessage(any message, optional PostMessageOptions options);
 
   void close();
 
   attribute EventHandler onmessage;
   attribute EventHandler onmessageerror;
 };
 
 [Global=(Worker,SharedWorker),Exposed=SharedWorker]
@@ -2095,24 +2069,25 @@ interface SharedWorkerGlobalScope : Work
 interface mixin AbstractWorker {
   attribute EventHandler onerror;
 };
 
 [Constructor(USVString scriptURL, optional WorkerOptions options), Exposed=(Window,Worker)]
 interface Worker : EventTarget {
   void terminate();
 
-  void postMessage(any message, optional sequence<object> transfer = []);
+  void postMessage(any message, sequence<object> transfer);
+  void postMessage(any message, optional PostMessageOptions options);
   attribute EventHandler onmessage;
   attribute EventHandler onmessageerror;
 };
 
 dictionary WorkerOptions {
   WorkerType type = "classic";
-  RequestCredentials credentials = "omit"; // credentials is only used if type is "module"
+  RequestCredentials credentials = "same-origin"; // credentials is only used if type is "module"
   DOMString name = "";
 };
 
 enum WorkerType { "classic", "module" };
 
 Worker includes AbstractWorker;
 
 [Constructor(USVString scriptURL, optional (DOMString or WorkerOptions) options),
@@ -2169,16 +2144,18 @@ Window includes WindowLocalStorage;
 [Exposed=Window,
  Constructor(DOMString type, optional StorageEventInit eventInitDict)]
 interface StorageEvent : Event {
   readonly attribute DOMString? key;
   readonly attribute DOMString? oldValue;
   readonly attribute DOMString? newValue;
   readonly attribute USVString url;
   readonly attribute Storage? storageArea;
+
+  void initStorageEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional DOMString? key = null, optional DOMString? oldValue = null, optional DOMString? newValue = null, optional USVString url = "", optional Storage? storageArea = null);
 };
 
 dictionary StorageEventInit : EventInit {
   DOMString? key = null;
   DOMString? oldValue = null;
   DOMString? newValue = null;
   USVString url = "";
   Storage? storageArea = null;
@@ -2288,16 +2265,17 @@ partial interface HTMLEmbedElement {
 };
 
 [Exposed=Window,
  HTMLConstructor]
 interface HTMLFontElement : HTMLElement {
   [CEReactions] attribute [TreatNullAs=EmptyString] DOMString color;
   [CEReactions] attribute DOMString face;
   [CEReactions] attribute DOMString size;
+
 };
 
 partial interface HTMLHeadingElement {
   [CEReactions] attribute DOMString align;
 };
 
 partial interface HTMLHRElement {
   [CEReactions] attribute DOMString align;