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
// This interface is entirely internal to Servo, and should not be accessible to
// web pages.
[Exposed=(Window,Worker), NoInterfaceObject]
interface ActivatableElement {
[Exposed=(Window,Worker)]
interface mixin ActivatableElement {
[Throws, Pref="dom.testing.element.activation.enabled"]
void enterFormalActivationState();

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -4,7 +4,7 @@
//http://dev.w3.org/csswg/cssom/#elementcssinlinestyle
[NoInterfaceObject, Exposed=Window]
interface ElementCSSInlineStyle {
[Exposed=Window]
interface mixin ElementCSSInlineStyle {
[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/. */
// https://html.spec.whatwg.org/multipage/#elementcontenteditable
[NoInterfaceObject, Exposed=Window]
interface ElementContentEditable {
[Exposed=Window]
interface mixin ElementContentEditable {
// [CEReactions]
// attribute DOMString contentEditable;
// readonly attribute boolean isContentEditable;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -11,4 +11,4 @@ interface HTMLFrameSetElement : HTMLElement {
// 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/. */
// https://html.spec.whatwg.org/multipage/#htmlhyperlinkelementutils
[NoInterfaceObject]
interface HTMLHyperlinkElementUtils {
interface mixin HTMLHyperlinkElementUtils {
// [CEReactions]
// stringifier attribute USVString href;
[CEReactions]

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -14,4 +14,4 @@ interface ShadowRoot : DocumentFragment {
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
[NoInterfaceObject]
interface LinkStyle {
interface mixin LinkStyle {
readonly attribute StyleSheet? sheet;
};

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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