Auto merge of #24332 - saschanaz:mixin, r=jdm

Migrate to IDL mixin syntax

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [x] These changes fix #22539

<!-- Either: -->
- [x] There are tests for these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- 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/24332)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-10-01 15:29:50 -04:00 committed by GitHub
commit 33de38aa85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 187 additions and 204 deletions

View file

@ -5,8 +5,8 @@
// Interface for testing element activation // Interface for testing element activation
// This interface is entirely internal to Servo, and should not be accessible to // This interface is entirely internal to Servo, and should not be accessible to
// web pages. // web pages.
[Exposed=(Window,Worker), NoInterfaceObject] [Exposed=(Window,Worker)]
interface ActivatableElement { interface mixin ActivatableElement {
[Throws, Pref="dom.testing.element.activation.enabled"] [Throws, Pref="dom.testing.element.activation.enabled"]
void enterFormalActivationState(); void enterFormalActivationState();

View file

@ -37,6 +37,6 @@ interface Bluetooth : EventTarget {
Promise<BluetoothDevice> requestDevice(optional RequestDeviceOptions options = {}); Promise<BluetoothDevice> requestDevice(optional RequestDeviceOptions options = {});
}; };
// Bluetooth implements BluetoothDeviceEventHandlers; // Bluetooth includes BluetoothDeviceEventHandlers;
// Bluetooth implements CharacteristicEventHandlers; // Bluetooth includes CharacteristicEventHandlers;
// Bluetooth implements ServiceEventHandlers; // Bluetooth includes ServiceEventHandlers;

View file

@ -15,12 +15,11 @@ interface BluetoothDevice : EventTarget {
readonly attribute boolean watchingAdvertisements; readonly attribute boolean watchingAdvertisements;
}; };
[NoInterfaceObject] interface mixin BluetoothDeviceEventHandlers {
interface BluetoothDeviceEventHandlers {
attribute EventHandler ongattserverdisconnected; attribute EventHandler ongattserverdisconnected;
}; };
// BluetoothDevice implements EventTarget; // BluetoothDevice includes EventTarget;
BluetoothDevice implements BluetoothDeviceEventHandlers; BluetoothDevice includes BluetoothDeviceEventHandlers;
// BluetoothDevice implements CharacteristicEventHandlers; // BluetoothDevice includes CharacteristicEventHandlers;
// BluetoothDevice implements ServiceEventHandlers; // BluetoothDevice includes ServiceEventHandlers;

View file

@ -21,10 +21,9 @@ interface BluetoothRemoteGATTCharacteristic : EventTarget {
Promise<BluetoothRemoteGATTCharacteristic> stopNotifications(); Promise<BluetoothRemoteGATTCharacteristic> stopNotifications();
}; };
[NoInterfaceObject] interface mixin CharacteristicEventHandlers {
interface CharacteristicEventHandlers {
attribute EventHandler oncharacteristicvaluechanged; attribute EventHandler oncharacteristicvaluechanged;
}; };
// BluetoothRemoteGATTCharacteristic implements EventTarget; // BluetoothRemoteGATTCharacteristic includes EventTarget;
BluetoothRemoteGATTCharacteristic implements CharacteristicEventHandlers; BluetoothRemoteGATTCharacteristic includes CharacteristicEventHandlers;

View file

@ -17,13 +17,12 @@ interface BluetoothRemoteGATTService : EventTarget {
Promise<sequence<BluetoothRemoteGATTService>> getIncludedServices(optional BluetoothServiceUUID service); Promise<sequence<BluetoothRemoteGATTService>> getIncludedServices(optional BluetoothServiceUUID service);
}; };
[NoInterfaceObject] interface mixin ServiceEventHandlers {
interface ServiceEventHandlers {
attribute EventHandler onserviceadded; attribute EventHandler onserviceadded;
attribute EventHandler onservicechanged; attribute EventHandler onservicechanged;
attribute EventHandler onserviceremoved; attribute EventHandler onserviceremoved;
}; };
// BluetoothRemoteGATTService implements EventTarget; // BluetoothRemoteGATTService includes EventTarget;
// BluetoothRemoteGATTService implements CharacteristicEventHandlers; // BluetoothRemoteGATTService includes CharacteristicEventHandlers;
BluetoothRemoteGATTService implements ServiceEventHandlers; BluetoothRemoteGATTService includes ServiceEventHandlers;

View file

@ -4,10 +4,8 @@
// https://fetch.spec.whatwg.org/#body // https://fetch.spec.whatwg.org/#body
[NoInterfaceObject, [Exposed=(Window,Worker)]
Exposed=(Window,Worker)] interface mixin Body {
interface Body {
readonly attribute boolean bodyUsed; readonly attribute boolean bodyUsed;
[NewObject] Promise<ArrayBuffer> arrayBuffer(); [NewObject] Promise<ArrayBuffer> arrayBuffer();

View file

@ -22,32 +22,32 @@ interface CanvasRenderingContext2D {
// back-reference to the canvas // back-reference to the canvas
readonly attribute HTMLCanvasElement canvas; readonly attribute HTMLCanvasElement canvas;
}; };
CanvasRenderingContext2D implements CanvasState; CanvasRenderingContext2D includes CanvasState;
CanvasRenderingContext2D implements CanvasTransform; CanvasRenderingContext2D includes CanvasTransform;
CanvasRenderingContext2D implements CanvasCompositing; CanvasRenderingContext2D includes CanvasCompositing;
CanvasRenderingContext2D implements CanvasImageSmoothing; CanvasRenderingContext2D includes CanvasImageSmoothing;
CanvasRenderingContext2D implements CanvasFillStrokeStyles; CanvasRenderingContext2D includes CanvasFillStrokeStyles;
CanvasRenderingContext2D implements CanvasShadowStyles; CanvasRenderingContext2D includes CanvasShadowStyles;
CanvasRenderingContext2D implements CanvasFilters; CanvasRenderingContext2D includes CanvasFilters;
CanvasRenderingContext2D implements CanvasRect; CanvasRenderingContext2D includes CanvasRect;
CanvasRenderingContext2D implements CanvasDrawPath; CanvasRenderingContext2D includes CanvasDrawPath;
CanvasRenderingContext2D implements CanvasUserInterface; CanvasRenderingContext2D includes CanvasUserInterface;
CanvasRenderingContext2D implements CanvasText; CanvasRenderingContext2D includes CanvasText;
CanvasRenderingContext2D implements CanvasDrawImage; CanvasRenderingContext2D includes CanvasDrawImage;
CanvasRenderingContext2D implements CanvasImageData; CanvasRenderingContext2D includes CanvasImageData;
CanvasRenderingContext2D implements CanvasPathDrawingStyles; CanvasRenderingContext2D includes CanvasPathDrawingStyles;
CanvasRenderingContext2D implements CanvasTextDrawingStyles; CanvasRenderingContext2D includes CanvasTextDrawingStyles;
CanvasRenderingContext2D implements CanvasPath; CanvasRenderingContext2D includes CanvasPath;
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasState { interface mixin CanvasState {
// state // state
void save(); // push state on state stack void save(); // push state on state stack
void restore(); // pop state stack and restore state void restore(); // pop state stack and restore state
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasTransform { interface mixin CanvasTransform {
// transformations (default transform is the identity matrix) // transformations (default transform is the identity matrix)
void scale(unrestricted double x, unrestricted double y); void scale(unrestricted double x, unrestricted double y);
void rotate(unrestricted double angle); void rotate(unrestricted double angle);
@ -70,22 +70,22 @@ interface CanvasTransform {
void resetTransform(); void resetTransform();
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasCompositing { interface mixin CanvasCompositing {
// compositing // compositing
attribute unrestricted double globalAlpha; // (default 1.0) attribute unrestricted double globalAlpha; // (default 1.0)
attribute DOMString globalCompositeOperation; // (default source-over) attribute DOMString globalCompositeOperation; // (default source-over)
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasImageSmoothing { interface mixin CanvasImageSmoothing {
// image smoothing // image smoothing
attribute boolean imageSmoothingEnabled; // (default true) attribute boolean imageSmoothingEnabled; // (default true)
// attribute ImageSmoothingQuality imageSmoothingQuality; // (default low) // attribute ImageSmoothingQuality imageSmoothingQuality; // (default low)
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasFillStrokeStyles { interface mixin CanvasFillStrokeStyles {
// colours and styles (see also the CanvasDrawingStyles interface) // colours and styles (see also the CanvasDrawingStyles interface)
attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black) attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black) attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
@ -96,8 +96,8 @@ interface CanvasFillStrokeStyles {
CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition); CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasShadowStyles { interface mixin CanvasShadowStyles {
// shadows // shadows
attribute unrestricted double shadowOffsetX; // (default 0) attribute unrestricted double shadowOffsetX; // (default 0)
attribute unrestricted double shadowOffsetY; // (default 0) attribute unrestricted double shadowOffsetY; // (default 0)
@ -105,22 +105,22 @@ interface CanvasShadowStyles {
attribute DOMString shadowColor; // (default transparent black) attribute DOMString shadowColor; // (default transparent black)
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasFilters { interface mixin CanvasFilters {
// filters // filters
//attribute DOMString filter; // (default "none") //attribute DOMString filter; // (default "none")
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasRect { interface mixin CanvasRect {
// rects // rects
void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
void fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); void fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h); void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasDrawPath { interface mixin CanvasDrawPath {
// path API (see also CanvasPath) // path API (see also CanvasPath)
void beginPath(); void beginPath();
void fill(optional CanvasFillRule fillRule = "nonzero"); void fill(optional CanvasFillRule fillRule = "nonzero");
@ -137,16 +137,16 @@ interface CanvasDrawPath {
//boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y); //boolean isPointInStroke(Path2D path, unrestricted double x, unrestricted double y);
}; };
[Exposed=(PaintWorklet, Window), NoInterfaceObject] [Exposed=(PaintWorklet, Window)]
interface CanvasUserInterface { interface mixin CanvasUserInterface {
//void drawFocusIfNeeded(Element element); //void drawFocusIfNeeded(Element element);
//void drawFocusIfNeeded(Path2D path, Element element); //void drawFocusIfNeeded(Path2D path, Element element);
//void scrollPathIntoView(); //void scrollPathIntoView();
//void scrollPathIntoView(Path2D path); //void scrollPathIntoView(Path2D path);
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasText { interface mixin CanvasText {
// text (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces) // text (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces)
[Pref="dom.canvas-text.enabled"] [Pref="dom.canvas-text.enabled"]
void fillText(DOMString text, unrestricted double x, unrestricted double y, void fillText(DOMString text, unrestricted double x, unrestricted double y,
@ -157,8 +157,8 @@ interface CanvasText {
TextMetrics measureText(DOMString text); TextMetrics measureText(DOMString text);
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasDrawImage { interface mixin CanvasDrawImage {
// drawing images // drawing images
[Throws] [Throws]
void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy); void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy);
@ -172,8 +172,8 @@ interface CanvasDrawImage {
unrestricted double dw, unrestricted double dh); unrestricted double dw, unrestricted double dh);
}; };
[Exposed=(Window, Worker), NoInterfaceObject] [Exposed=(Window, Worker)]
interface CanvasImageData { interface mixin CanvasImageData {
// pixel manipulation // pixel manipulation
[Throws] [Throws]
ImageData createImageData(long sw, long sh); ImageData createImageData(long sw, long sh);
@ -194,8 +194,8 @@ enum CanvasTextAlign { "start", "end", "left", "right", "center" };
enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" }; enum CanvasTextBaseline { "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" };
enum CanvasDirection { "ltr", "rtl", "inherit" }; enum CanvasDirection { "ltr", "rtl", "inherit" };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasPathDrawingStyles { interface mixin CanvasPathDrawingStyles {
// line caps/joins // line caps/joins
attribute unrestricted double lineWidth; // (default 1) attribute unrestricted double lineWidth; // (default 1)
attribute CanvasLineCap lineCap; // (default "butt") attribute CanvasLineCap lineCap; // (default "butt")
@ -208,8 +208,8 @@ interface CanvasPathDrawingStyles {
//attribute unrestricted double lineDashOffset; //attribute unrestricted double lineDashOffset;
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasTextDrawingStyles { interface mixin CanvasTextDrawingStyles {
// text // text
//attribute DOMString font; // (default 10px sans-serif) //attribute DOMString font; // (default 10px sans-serif)
//attribute CanvasTextAlign textAlign; // "start", "end", "left", "right", "center" (default: "start") //attribute CanvasTextAlign textAlign; // "start", "end", "left", "right", "center" (default: "start")
@ -218,8 +218,8 @@ interface CanvasTextDrawingStyles {
//attribute CanvasDirection direction; // "ltr", "rtl", "inherit" (default: "inherit") //attribute CanvasDirection direction; // "ltr", "rtl", "inherit" (default: "inherit")
}; };
[Exposed=(PaintWorklet, Window, Worker), NoInterfaceObject] [Exposed=(PaintWorklet, Window, Worker)]
interface CanvasPath { interface mixin CanvasPath {
// shared path API methods // shared path API methods
void closePath(); void closePath();
void moveTo(unrestricted double x, unrestricted double y); void moveTo(unrestricted double x, unrestricted double y);

View file

@ -24,5 +24,5 @@ interface CharacterData : Node {
void replaceData(unsigned long offset, unsigned long count, DOMString data); void replaceData(unsigned long offset, unsigned long count, DOMString data);
}; };
CharacterData implements ChildNode; CharacterData includes ChildNode;
CharacterData implements NonDocumentTypeChildNode; CharacterData includes NonDocumentTypeChildNode;

View file

@ -6,8 +6,7 @@
* https://dom.spec.whatwg.org/#interface-childnode * https://dom.spec.whatwg.org/#interface-childnode
*/ */
[NoInterfaceObject] interface mixin ChildNode {
interface ChildNode {
[Throws, CEReactions, Unscopable] [Throws, CEReactions, Unscopable]
void before((Node or DOMString)... nodes); void before((Node or DOMString)... nodes);
[Throws, CEReactions, Unscopable] [Throws, CEReactions, Unscopable]
@ -18,8 +17,7 @@ interface ChildNode {
void remove(); void remove();
}; };
[NoInterfaceObject] interface mixin NonDocumentTypeChildNode {
interface NonDocumentTypeChildNode {
[Pure] [Pure]
readonly attribute Element? previousElementSibling; readonly attribute Element? previousElementSibling;
[Pure] [Pure]

View file

@ -7,13 +7,13 @@
* *
*/ */
[NoInterfaceObject, Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
interface GlobalCrypto { interface mixin GlobalCrypto {
readonly attribute Crypto crypto; readonly attribute Crypto crypto;
}; };
Window implements GlobalCrypto; Window includes GlobalCrypto;
WorkerGlobalScope implements GlobalCrypto; WorkerGlobalScope includes GlobalCrypto;
[Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
interface Crypto { interface Crypto {

View file

@ -72,8 +72,8 @@ interface Document : Node {
optional NodeFilter? filter = null); optional NodeFilter? filter = null);
}; };
Document implements NonElementParentNode; Document includes NonElementParentNode;
Document implements ParentNode; Document includes ParentNode;
enum DocumentReadyState { "loading", "interactive", "complete" }; enum DocumentReadyState { "loading", "interactive", "complete" };
@ -148,8 +148,8 @@ partial /*sealed*/ interface Document {
// also has obsolete members // also has obsolete members
}; };
Document implements GlobalEventHandlers; Document includes GlobalEventHandlers;
Document implements DocumentAndElementEventHandlers; Document includes DocumentAndElementEventHandlers;
// https://html.spec.whatwg.org/multipage/#Document-partial // https://html.spec.whatwg.org/multipage/#Document-partial
partial interface Document { partial interface Document {
@ -210,7 +210,7 @@ partial interface Document {
attribute EventHandler onfullscreenerror; attribute EventHandler onfullscreenerror;
}; };
Document implements DocumentOrShadowRoot; Document includes DocumentOrShadowRoot;
// Servo internal API. // Servo internal API.
partial interface Document { partial interface Document {

View file

@ -7,5 +7,5 @@
interface DocumentFragment : Node { interface DocumentFragment : Node {
}; };
DocumentFragment implements NonElementParentNode; DocumentFragment includes NonElementParentNode;
DocumentFragment implements ParentNode; DocumentFragment includes ParentNode;

View file

@ -7,8 +7,7 @@
* https://w3c.github.io/webcomponents/spec/shadow/#extensions-to-the-documentorshadowroot-mixin * https://w3c.github.io/webcomponents/spec/shadow/#extensions-to-the-documentorshadowroot-mixin
*/ */
[NoInterfaceObject] interface mixin DocumentOrShadowRoot {
interface DocumentOrShadowRoot {
// Selection? getSelection(); // Selection? getSelection();
Element? elementFromPoint (double x, double y); Element? elementFromPoint (double x, double y);
sequence<Element> elementsFromPoint (double x, double y); sequence<Element> elementsFromPoint (double x, double y);

View file

@ -18,4 +18,4 @@ interface DocumentType : Node {
readonly attribute DOMString systemId; readonly attribute DOMString systemId;
}; };
DocumentType implements ChildNode; DocumentType includes ChildNode;

View file

@ -122,7 +122,7 @@ partial interface Element {
Promise<void> requestFullscreen(); Promise<void> requestFullscreen();
}; };
Element implements ChildNode; Element includes ChildNode;
Element implements NonDocumentTypeChildNode; Element includes NonDocumentTypeChildNode;
Element implements ParentNode; Element includes ParentNode;
Element implements ActivatableElement; Element includes ActivatableElement;

View file

@ -4,7 +4,7 @@
//http://dev.w3.org/csswg/cssom/#elementcssinlinestyle //http://dev.w3.org/csswg/cssom/#elementcssinlinestyle
[NoInterfaceObject, Exposed=Window] [Exposed=Window]
interface ElementCSSInlineStyle { interface mixin ElementCSSInlineStyle {
[SameObject/*, PutForwards=cssText*/] readonly attribute CSSStyleDeclaration style; [SameObject/*, PutForwards=cssText*/] readonly attribute CSSStyleDeclaration style;
}; };

View file

@ -3,8 +3,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#elementcontenteditable // https://html.spec.whatwg.org/multipage/#elementcontenteditable
[NoInterfaceObject, Exposed=Window] [Exposed=Window]
interface ElementContentEditable { interface mixin ElementContentEditable {
// [CEReactions] // [CEReactions]
// attribute DOMString contentEditable; // attribute DOMString contentEditable;
// readonly attribute boolean isContentEditable; // readonly attribute boolean isContentEditable;

View file

@ -25,8 +25,8 @@ callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler; typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
// https://html.spec.whatwg.org/multipage/#globaleventhandlers // https://html.spec.whatwg.org/multipage/#globaleventhandlers
[NoInterfaceObject, Exposed=Window] [Exposed=Window]
interface GlobalEventHandlers { interface mixin GlobalEventHandlers {
attribute EventHandler onabort; attribute EventHandler onabort;
attribute EventHandler onblur; attribute EventHandler onblur;
attribute EventHandler oncancel; attribute EventHandler oncancel;
@ -90,13 +90,13 @@ interface GlobalEventHandlers {
}; };
// https://drafts.csswg.org/css-transitions/#interface-globaleventhandlers-idl // https://drafts.csswg.org/css-transitions/#interface-globaleventhandlers-idl
partial interface GlobalEventHandlers { partial interface mixin GlobalEventHandlers {
attribute EventHandler ontransitionend; attribute EventHandler ontransitionend;
}; };
// https://html.spec.whatwg.org/multipage/#windoweventhandlers // https://html.spec.whatwg.org/multipage/#windoweventhandlers
[NoInterfaceObject, Exposed=Window] [Exposed=Window]
interface WindowEventHandlers { interface mixin WindowEventHandlers {
attribute EventHandler onafterprint; attribute EventHandler onafterprint;
attribute EventHandler onbeforeprint; attribute EventHandler onbeforeprint;
attribute OnBeforeUnloadEventHandler onbeforeunload; attribute OnBeforeUnloadEventHandler onbeforeunload;
@ -116,7 +116,7 @@ interface WindowEventHandlers {
}; };
// https://w3c.github.io/webvr/spec/1.1/#interface-window // https://w3c.github.io/webvr/spec/1.1/#interface-window
partial interface WindowEventHandlers { partial interface mixin WindowEventHandlers {
attribute EventHandler onvrdisplayconnect; attribute EventHandler onvrdisplayconnect;
attribute EventHandler onvrdisplaydisconnect; attribute EventHandler onvrdisplaydisconnect;
attribute EventHandler onvrdisplayactivate; attribute EventHandler onvrdisplayactivate;
@ -127,8 +127,8 @@ partial interface WindowEventHandlers {
}; };
// https://html.spec.whatwg.org/multipage/#documentandelementeventhandlers // https://html.spec.whatwg.org/multipage/#documentandelementeventhandlers
[NoInterfaceObject, Exposed=Window] [Exposed=Window]
interface DocumentAndElementEventHandlers { interface mixin DocumentAndElementEventHandlers {
attribute EventHandler oncopy; attribute EventHandler oncopy;
attribute EventHandler oncut; attribute EventHandler oncut;
attribute EventHandler onpaste; attribute EventHandler onpaste;

View file

@ -6,6 +6,6 @@
[Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
partial interface WindowOrWorkerGlobalScope { partial interface mixin WindowOrWorkerGlobalScope {
[NewObject] Promise<Response> fetch(RequestInfo input, optional RequestInit init = {}); [NewObject] Promise<Response> fetch(RequestInfo input, optional RequestInit init = {});
}; };

View file

@ -32,7 +32,7 @@ interface HTMLAnchorElement : HTMLElement {
// also has obsolete members // also has obsolete members
}; };
HTMLAnchorElement implements HTMLHyperlinkElementUtils; HTMLAnchorElement includes HTMLHyperlinkElementUtils;
// https://html.spec.whatwg.org/multipage/#HTMLAnchorElement-partial // https://html.spec.whatwg.org/multipage/#HTMLAnchorElement-partial
partial interface HTMLAnchorElement { partial interface HTMLAnchorElement {

View file

@ -22,7 +22,7 @@ interface HTMLAreaElement : HTMLElement {
readonly attribute DOMTokenList relList; readonly attribute DOMTokenList relList;
// hreflang and type are not reflected // hreflang and type are not reflected
}; };
//HTMLAreaElement implements HTMLHyperlinkElementUtils; //HTMLAreaElement includes HTMLHyperlinkElementUtils;
// https://html.spec.whatwg.org/multipage/#HTMLAreaElement-partial // https://html.spec.whatwg.org/multipage/#HTMLAreaElement-partial
partial interface HTMLAreaElement { partial interface HTMLAreaElement {

View file

@ -7,7 +7,7 @@
interface HTMLBodyElement : HTMLElement { interface HTMLBodyElement : HTMLElement {
// also has obsolete members // also has obsolete members
}; };
HTMLBodyElement implements WindowEventHandlers; HTMLBodyElement includes WindowEventHandlers;
// https://html.spec.whatwg.org/multipage/#HTMLBodyElement-partial // https://html.spec.whatwg.org/multipage/#HTMLBodyElement-partial
partial interface HTMLBodyElement { partial interface HTMLBodyElement {

View file

@ -67,7 +67,7 @@ partial interface HTMLElement {
readonly attribute long offsetHeight; readonly attribute long offsetHeight;
}; };
HTMLElement implements GlobalEventHandlers; HTMLElement includes GlobalEventHandlers;
HTMLElement implements DocumentAndElementEventHandlers; HTMLElement includes DocumentAndElementEventHandlers;
HTMLElement implements ElementContentEditable; HTMLElement includes ElementContentEditable;
HTMLElement implements ElementCSSInlineStyle; HTMLElement includes ElementCSSInlineStyle;

View file

@ -11,4 +11,4 @@ interface HTMLFrameSetElement : HTMLElement {
// attribute DOMString rows; // attribute DOMString rows;
}; };
HTMLFrameSetElement implements WindowEventHandlers; HTMLFrameSetElement includes WindowEventHandlers;

View file

@ -3,8 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#htmlhyperlinkelementutils // https://html.spec.whatwg.org/multipage/#htmlhyperlinkelementutils
[NoInterfaceObject] interface mixin HTMLHyperlinkElementUtils {
interface HTMLHyperlinkElementUtils {
// [CEReactions] // [CEReactions]
// stringifier attribute USVString href; // stringifier attribute USVString href;
[CEReactions] [CEReactions]

View file

@ -24,7 +24,7 @@ interface HTMLLinkElement : HTMLElement {
// also has obsolete members // also has obsolete members
}; };
HTMLLinkElement implements LinkStyle; HTMLLinkElement includes LinkStyle;
// https://html.spec.whatwg.org/multipage/#HTMLLinkElement-partial // https://html.spec.whatwg.org/multipage/#HTMLLinkElement-partial
partial interface HTMLLinkElement { partial interface HTMLLinkElement {

View file

@ -12,4 +12,4 @@ interface HTMLStyleElement : HTMLElement {
// [CEReactions] // [CEReactions]
// attribute boolean scoped; // attribute boolean scoped;
}; };
HTMLStyleElement implements LinkStyle; HTMLStyleElement includes LinkStyle;

View file

@ -6,17 +6,17 @@
interface Navigator { interface Navigator {
// objects implementing this interface also implement the interfaces given below // objects implementing this interface also implement the interfaces given below
}; };
Navigator implements NavigatorID; Navigator includes NavigatorID;
Navigator implements NavigatorLanguage; Navigator includes NavigatorLanguage;
//Navigator implements NavigatorOnLine; //Navigator includes NavigatorOnLine;
//Navigator implements NavigatorContentUtils; //Navigator includes NavigatorContentUtils;
//Navigator implements NavigatorStorageUtils; //Navigator includes NavigatorStorageUtils;
Navigator implements NavigatorPlugins; Navigator includes NavigatorPlugins;
Navigator implements NavigatorCookies; Navigator includes NavigatorCookies;
// https://html.spec.whatwg.org/multipage/#navigatorid // https://html.spec.whatwg.org/multipage/#navigatorid
[NoInterfaceObject, Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
interface NavigatorID { interface mixin NavigatorID {
readonly attribute DOMString appCodeName; // constant "Mozilla" readonly attribute DOMString appCodeName; // constant "Mozilla"
readonly attribute DOMString appName; readonly attribute DOMString appName;
readonly attribute DOMString appVersion; readonly attribute DOMString appVersion;
@ -40,24 +40,22 @@ partial interface Navigator {
}; };
// https://html.spec.whatwg.org/multipage/#navigatorlanguage // https://html.spec.whatwg.org/multipage/#navigatorlanguage
[NoInterfaceObject, Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
interface NavigatorLanguage { interface mixin NavigatorLanguage {
readonly attribute DOMString language; readonly attribute DOMString language;
// https://github.com/servo/servo/issues/10073 // https://github.com/servo/servo/issues/10073
//readonly attribute DOMString[] languages; //readonly attribute DOMString[] languages;
}; };
// https://html.spec.whatwg.org/multipage/#navigatorplugins // https://html.spec.whatwg.org/multipage/#navigatorplugins
[NoInterfaceObject] interface mixin NavigatorPlugins {
interface NavigatorPlugins {
[SameObject] readonly attribute PluginArray plugins; [SameObject] readonly attribute PluginArray plugins;
[SameObject] readonly attribute MimeTypeArray mimeTypes; [SameObject] readonly attribute MimeTypeArray mimeTypes;
boolean javaEnabled(); boolean javaEnabled();
}; };
// https://html.spec.whatwg.org/multipage/#navigatorcookies // https://html.spec.whatwg.org/multipage/#navigatorcookies
[NoInterfaceObject] interface mixin NavigatorCookies {
interface NavigatorCookies {
readonly attribute boolean cookieEnabled; readonly attribute boolean cookieEnabled;
}; };

View file

@ -3,8 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://dom.spec.whatwg.org/#nonelementparentnode // https://dom.spec.whatwg.org/#nonelementparentnode
[NoInterfaceObject] interface mixin NonElementParentNode {
interface NonElementParentNode {
[Pure] [Pure]
Element? getElementById(DOMString elementId); Element? getElementById(DOMString elementId);
}; };

View file

@ -8,22 +8,22 @@ interface OffscreenCanvasRenderingContext2D {
//void commit(); //void commit();
readonly attribute OffscreenCanvas canvas; readonly attribute OffscreenCanvas canvas;
}; };
OffscreenCanvasRenderingContext2D implements CanvasState; OffscreenCanvasRenderingContext2D includes CanvasState;
OffscreenCanvasRenderingContext2D implements CanvasCompositing; OffscreenCanvasRenderingContext2D includes CanvasCompositing;
OffscreenCanvasRenderingContext2D implements CanvasImageSmoothing; OffscreenCanvasRenderingContext2D includes CanvasImageSmoothing;
OffscreenCanvasRenderingContext2D implements CanvasFillStrokeStyles; OffscreenCanvasRenderingContext2D includes CanvasFillStrokeStyles;
OffscreenCanvasRenderingContext2D implements CanvasShadowStyles; OffscreenCanvasRenderingContext2D includes CanvasShadowStyles;
OffscreenCanvasRenderingContext2D implements CanvasFilters; OffscreenCanvasRenderingContext2D includes CanvasFilters;
OffscreenCanvasRenderingContext2D implements CanvasRect; OffscreenCanvasRenderingContext2D includes CanvasRect;
OffscreenCanvasRenderingContext2D implements CanvasTransform; OffscreenCanvasRenderingContext2D includes CanvasTransform;
OffscreenCanvasRenderingContext2D implements CanvasDrawPath; OffscreenCanvasRenderingContext2D includes CanvasDrawPath;
OffscreenCanvasRenderingContext2D implements CanvasText; OffscreenCanvasRenderingContext2D includes CanvasText;
OffscreenCanvasRenderingContext2D implements CanvasDrawImage; OffscreenCanvasRenderingContext2D includes CanvasDrawImage;
OffscreenCanvasRenderingContext2D implements CanvasImageData; OffscreenCanvasRenderingContext2D includes CanvasImageData;
OffscreenCanvasRenderingContext2D implements CanvasPathDrawingStyles; OffscreenCanvasRenderingContext2D includes CanvasPathDrawingStyles;
OffscreenCanvasRenderingContext2D implements CanvasTextDrawingStyles; OffscreenCanvasRenderingContext2D includes CanvasTextDrawingStyles;
OffscreenCanvasRenderingContext2D implements CanvasPath; OffscreenCanvasRenderingContext2D includes CanvasPath;

View file

@ -6,14 +6,14 @@
[Pref="dom.worklet.enabled", Exposed=PaintWorklet] [Pref="dom.worklet.enabled", Exposed=PaintWorklet]
interface PaintRenderingContext2D { interface PaintRenderingContext2D {
}; };
PaintRenderingContext2D implements CanvasState; PaintRenderingContext2D includes CanvasState;
PaintRenderingContext2D implements CanvasTransform; PaintRenderingContext2D includes CanvasTransform;
PaintRenderingContext2D implements CanvasCompositing; PaintRenderingContext2D includes CanvasCompositing;
PaintRenderingContext2D implements CanvasImageSmoothing; PaintRenderingContext2D includes CanvasImageSmoothing;
PaintRenderingContext2D implements CanvasFillStrokeStyles; PaintRenderingContext2D includes CanvasFillStrokeStyles;
PaintRenderingContext2D implements CanvasShadowStyles; PaintRenderingContext2D includes CanvasShadowStyles;
PaintRenderingContext2D implements CanvasRect; PaintRenderingContext2D includes CanvasRect;
PaintRenderingContext2D implements CanvasDrawPath; PaintRenderingContext2D includes CanvasDrawPath;
PaintRenderingContext2D implements CanvasDrawImage; PaintRenderingContext2D includes CanvasDrawImage;
PaintRenderingContext2D implements CanvasPathDrawingStyles; PaintRenderingContext2D includes CanvasPathDrawingStyles;
PaintRenderingContext2D implements CanvasPath; PaintRenderingContext2D includes CanvasPath;

View file

@ -6,8 +6,7 @@
* https://dom.spec.whatwg.org/#interface-parentnode * https://dom.spec.whatwg.org/#interface-parentnode
*/ */
[NoInterfaceObject] interface mixin ParentNode {
interface ParentNode {
[SameObject] [SameObject]
readonly attribute HTMLCollection children; readonly attribute HTMLCollection children;
[Pure] [Pure]

View file

@ -26,7 +26,7 @@ interface Request {
[NewObject, Throws] Request clone(); [NewObject, Throws] Request clone();
}; };
Request implements Body; Request includes Body;
dictionary RequestInit { dictionary RequestInit {
ByteString method; ByteString method;

View file

@ -23,7 +23,7 @@ interface Response {
[NewObject, Throws] Response clone(); [NewObject, Throws] Response clone();
}; };
Response implements Body; Response includes Body;
dictionary ResponseInit { dictionary ResponseInit {
unsigned short status = 200; unsigned short status = 200;

View file

@ -18,5 +18,5 @@ interface SVGElement : Element {
//void blur(); //void blur();
}; };
//SVGElement implements GlobalEventHandlers; //SVGElement includes GlobalEventHandlers;
//SVGElement implements SVGElementInstance; //SVGElement includes SVGElementInstance;

View file

@ -19,4 +19,4 @@ interface SVGGraphicsElement : SVGElement {
//DOMMatrix? getScreenCTM(); //DOMMatrix? getScreenCTM();
}; };
//SVGGraphicsElement implements SVGTests; //SVGGraphicsElement includes SVGTests;

View file

@ -40,6 +40,6 @@ interface SVGSVGElement : SVGGraphicsElement {
//void forceRedraw(); //void forceRedraw();
}; };
//SVGSVGElement implements SVGFitToViewBox; //SVGSVGElement includes SVGFitToViewBox;
//SVGSVGElement implements SVGZoomAndPan; //SVGSVGElement includes SVGZoomAndPan;
//SVGSVGElement implements WindowEventHandlers; //SVGSVGElement includes WindowEventHandlers;

View file

@ -14,7 +14,7 @@ interface ServiceWorker : EventTarget {
}; };
// FIXME: use `includes` instead of `implements` after #22539 is fixed. // FIXME: use `includes` instead of `implements` after #22539 is fixed.
ServiceWorker implements AbstractWorker; ServiceWorker includes AbstractWorker;
enum ServiceWorkerState { enum ServiceWorkerState {
"installing", "installing",

View file

@ -14,4 +14,4 @@ interface ShadowRoot : DocumentFragment {
enum ShadowRootMode { "open", "closed"}; enum ShadowRootMode { "open", "closed"};
ShadowRoot implements DocumentOrShadowRoot; ShadowRoot includes DocumentOrShadowRoot;

View file

@ -17,7 +17,6 @@ interface StyleSheet {
}; };
// https://drafts.csswg.org/cssom/#the-linkstyle-interface // https://drafts.csswg.org/cssom/#the-linkstyle-interface
[NoInterfaceObject] interface mixin LinkStyle {
interface LinkStyle {
readonly attribute StyleSheet? sheet; readonly attribute StyleSheet? sheet;
}; };

View file

@ -26,8 +26,7 @@ typedef unsigned long long GLuint64;
// typedef ([AllowShared] Uint32Array or sequence<GLuint>) Uint32List; // typedef ([AllowShared] Uint32Array or sequence<GLuint>) Uint32List;
[NoInterfaceObject] interface mixin WebGL2RenderingContextBase
interface WebGL2RenderingContextBase
{ {
const GLenum READ_BUFFER = 0x0C02; const GLenum READ_BUFFER = 0x0C02;
const GLenum UNPACK_ROW_LENGTH = 0x0CF2; const GLenum UNPACK_ROW_LENGTH = 0x0CF2;
@ -584,5 +583,5 @@ interface WebGL2RenderingContextBase
interface WebGL2RenderingContext interface WebGL2RenderingContext
{ {
}; };
WebGL2RenderingContext implements WebGLRenderingContextBase; WebGL2RenderingContext includes WebGLRenderingContextBase;
WebGL2RenderingContext implements WebGL2RenderingContextBase; WebGL2RenderingContext includes WebGL2RenderingContextBase;

View file

@ -43,8 +43,8 @@ dictionary WebGLContextAttributes {
GLboolean failIfMajorPerformanceCaveat = false; GLboolean failIfMajorPerformanceCaveat = false;
}; };
[Exposed=Window, NoInterfaceObject] [Exposed=Window]
interface WebGLRenderingContextBase interface mixin WebGLRenderingContextBase
{ {
/* ClearBufferMask */ /* ClearBufferMask */
@ -713,4 +713,4 @@ interface WebGLRenderingContext
void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, void readPixels(GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, /*[AllowShared]*/ ArrayBufferView? pixels); GLenum format, GLenum type, /*[AllowShared]*/ ArrayBufferView? pixels);
}; };
WebGLRenderingContext implements WebGLRenderingContextBase; WebGLRenderingContext includes WebGLRenderingContextBase;

View file

@ -69,8 +69,8 @@
// also has obsolete members // also has obsolete members
}; };
Window implements GlobalEventHandlers; Window includes GlobalEventHandlers;
Window implements WindowEventHandlers; Window includes WindowEventHandlers;
// https://html.spec.whatwg.org/multipage/#Window-partial // https://html.spec.whatwg.org/multipage/#Window-partial
partial interface Window { partial interface Window {
@ -148,18 +148,16 @@ partial interface Window {
}; };
// https://html.spec.whatwg.org/multipage/#dom-sessionstorage // https://html.spec.whatwg.org/multipage/#dom-sessionstorage
[NoInterfaceObject] interface mixin WindowSessionStorage {
interface WindowSessionStorage {
readonly attribute Storage sessionStorage; readonly attribute Storage sessionStorage;
}; };
Window implements WindowSessionStorage; Window includes WindowSessionStorage;
// https://html.spec.whatwg.org/multipage/#dom-localstorage // https://html.spec.whatwg.org/multipage/#dom-localstorage
[NoInterfaceObject] interface mixin WindowLocalStorage {
interface WindowLocalStorage {
readonly attribute Storage localStorage; readonly attribute Storage localStorage;
}; };
Window implements WindowLocalStorage; Window includes WindowLocalStorage;
// http://w3c.github.io/animation-timing/#framerequestcallback // http://w3c.github.io/animation-timing/#framerequestcallback
callback FrameRequestCallback = void (DOMHighResTimeStamp time); callback FrameRequestCallback = void (DOMHighResTimeStamp time);

View file

@ -7,8 +7,8 @@
// FIXME(nox): https://github.com/servo/servo/issues/20700 // FIXME(nox): https://github.com/servo/servo/issues/20700
// typedef (DOMString or Function) TimerHandler; // typedef (DOMString or Function) TimerHandler;
[NoInterfaceObject, Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
interface WindowOrWorkerGlobalScope { interface mixin WindowOrWorkerGlobalScope {
[Replaceable] readonly attribute USVString origin; [Replaceable] readonly attribute USVString origin;
// base64 utility methods // base64 utility methods
@ -32,10 +32,10 @@ interface WindowOrWorkerGlobalScope {
}; };
// https://w3c.github.io/hr-time/#the-performance-attribute // https://w3c.github.io/hr-time/#the-performance-attribute
partial interface WindowOrWorkerGlobalScope { partial interface mixin WindowOrWorkerGlobalScope {
[Replaceable] [Replaceable]
readonly attribute Performance performance; readonly attribute Performance performance;
}; };
Window implements WindowOrWorkerGlobalScope; Window includes WindowOrWorkerGlobalScope;
WorkerGlobalScope implements WindowOrWorkerGlobalScope; WorkerGlobalScope includes WindowOrWorkerGlobalScope;

View file

@ -3,8 +3,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#abstractworker // https://html.spec.whatwg.org/multipage/#abstractworker
[NoInterfaceObject, Exposed=(Window,Worker)] [Exposed=(Window,Worker)]
interface AbstractWorker { interface mixin AbstractWorker {
attribute EventHandler onerror; attribute EventHandler onerror;
}; };
@ -27,4 +27,4 @@ dictionary WorkerOptions {
enum WorkerType { "classic", "module" }; enum WorkerType { "classic", "module" };
Worker implements AbstractWorker; Worker includes AbstractWorker;

View file

@ -5,9 +5,9 @@
// https://html.spec.whatwg.org/multipage/#workernavigator // https://html.spec.whatwg.org/multipage/#workernavigator
[Exposed=Worker] [Exposed=Worker]
interface WorkerNavigator {}; interface WorkerNavigator {};
WorkerNavigator implements NavigatorID; WorkerNavigator includes NavigatorID;
WorkerNavigator implements NavigatorLanguage; WorkerNavigator includes NavigatorLanguage;
//WorkerNavigator implements NavigatorOnLine; //WorkerNavigator includes NavigatorOnLine;
// https://w3c.github.io/permissions/#navigator-and-workernavigator-extension // https://w3c.github.io/permissions/#navigator-and-workernavigator-extension