Bug 1631900 [wpt PR 23150] - Update interfaces/html.idl, a=testonly

Automatic update from web-platform-tests
Update interfaces/html.idl (#23150)

Includes necessary idlharness.js updates (handling XYZ --> LegacyXYZ
renames) for https://github.com/web-platform-tests/wpt/issues/23148

Closes https://github.com/web-platform-tests/wpt/pull/23124
--

wpt-commits: 513fe4fe493fd1215987460781345e9fc4cc7b0d
wpt-pr: 23150
This commit is contained in:
Stephen McGruer 2020-04-28 11:42:42 +00:00 коммит произвёл moz-wptsync-bot
Родитель 1f643583df
Коммит e0a8a45dda
2 изменённых файлов: 78 добавлений и 72 удалений

Просмотреть файл

@ -45,10 +45,10 @@ interface DOMStringList {
enum DocumentReadyState { "loading", "interactive", "complete" };
typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
[OverrideBuiltins]
[LegacyOverrideBuiltIns]
partial interface Document {
// resource metadata management
[PutForwards=href, Unforgeable] readonly attribute Location? location;
[PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;
attribute USVString domain;
readonly attribute USVString referrer;
attribute USVString cookie;
@ -89,7 +89,7 @@ partial interface Document {
DOMString queryCommandValue(DOMString commandId);
// special event handler IDL attributes that only apply to Document objects
[LenientThis] attribute EventHandler onreadystatechange;
[LegacyLenientThis] attribute EventHandler onreadystatechange;
// also has obsolete members
};
@ -119,7 +119,7 @@ interface HTMLElement : Element {
[CEReactions] attribute boolean spellcheck;
[CEReactions] attribute DOMString autocapitalize;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString innerText;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString innerText;
ElementInternals attachInternals();
};
@ -145,7 +145,7 @@ interface mixin HTMLOrSVGElement {
};
[Exposed=Window,
OverrideBuiltins]
LegacyOverrideBuiltIns]
interface DOMStringMap {
getter DOMString (DOMString name);
[CEReactions] setter void (DOMString name, DOMString value);
@ -365,7 +365,7 @@ interface HTMLSourceElement : HTMLElement {
};
[Exposed=Window,
NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
LegacyFactoryFunction=Image(optional unsigned long width, optional unsigned long height)]
interface HTMLImageElement : HTMLElement {
[HTMLConstructor] constructor();
@ -463,7 +463,7 @@ interface HTMLVideoElement : HTMLMediaElement {
};
[Exposed=Window,
NamedConstructor=Audio(optional DOMString src)]
LegacyFactoryFunction=Audio(optional DOMString src)]
interface HTMLAudioElement : HTMLMediaElement {
[HTMLConstructor] constructor();
};
@ -766,7 +766,7 @@ interface HTMLTableCellElement : HTMLElement {
};
[Exposed=Window,
OverrideBuiltins,
LegacyOverrideBuiltIns,
LegacyUnenumerableNamedProperties]
interface HTMLFormElement : HTMLElement {
[HTMLConstructor] constructor();
@ -840,7 +840,7 @@ interface HTMLInputElement : HTMLElement {
[CEReactions] attribute DOMString step;
[CEReactions] attribute DOMString type;
[CEReactions] attribute DOMString defaultValue;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString value;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString value;
attribute object? valueAsDate;
attribute unrestricted double valueAsNumber;
[CEReactions] attribute unsigned long width;
@ -944,7 +944,7 @@ interface HTMLOptGroupElement : HTMLElement {
};
[Exposed=Window,
NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
LegacyFactoryFunction=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
interface HTMLOptionElement : HTMLElement {
[HTMLConstructor] constructor();
@ -979,7 +979,7 @@ interface HTMLTextAreaElement : HTMLElement {
readonly attribute DOMString type;
[CEReactions] attribute DOMString defaultValue;
attribute [TreatNullAs=EmptyString] DOMString value;
attribute [LegacyNullToEmptyString] DOMString value;
readonly attribute unsigned long textLength;
readonly attribute boolean willValidate;
@ -1269,7 +1269,7 @@ interface mixin CanvasFillStrokeStyles {
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);
CanvasPattern? createPattern(CanvasImageSource image, [LegacyNullToEmptyString] DOMString repetition);
};
@ -1593,11 +1593,11 @@ dictionary DragEventInit : MouseEventInit {
LegacyUnenumerableNamedProperties]
interface Window : EventTarget {
// the current browsing context
[Unforgeable] readonly attribute WindowProxy window;
[LegacyUnforgeable] readonly attribute WindowProxy window;
[Replaceable] readonly attribute WindowProxy self;
[Unforgeable] readonly attribute Document document;
[LegacyUnforgeable] readonly attribute Document document;
attribute DOMString name;
[PutForwards=href, Unforgeable] readonly attribute Location location;
[PutForwards=href, LegacyUnforgeable] readonly attribute Location location;
readonly attribute History history;
readonly attribute CustomElementRegistry customElements;
[Replaceable] readonly attribute BarProp locationbar;
@ -1616,11 +1616,11 @@ interface Window : EventTarget {
// other browsing contexts
[Replaceable] readonly attribute WindowProxy frames;
[Replaceable] readonly attribute unsigned long length;
[Unforgeable] readonly attribute WindowProxy? top;
[LegacyUnforgeable] readonly attribute WindowProxy? top;
attribute any opener;
[Replaceable] readonly attribute WindowProxy? parent;
readonly attribute Element? frameElement;
WindowProxy? open(optional USVString url = "", optional DOMString target = "_blank", optional [TreatNullAs=EmptyString] DOMString features = "");
WindowProxy? open(optional USVString url = "", optional DOMString target = "_blank", optional [LegacyNullToEmptyString] 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.
@ -1668,21 +1668,21 @@ interface History {
[Exposed=Window]
interface Location { // but see also additional creation steps and overridden internal methods
[Unforgeable] stringifier attribute USVString href;
[Unforgeable] readonly attribute USVString origin;
[Unforgeable] attribute USVString protocol;
[Unforgeable] attribute USVString host;
[Unforgeable] attribute USVString hostname;
[Unforgeable] attribute USVString port;
[Unforgeable] attribute USVString pathname;
[Unforgeable] attribute USVString search;
[Unforgeable] attribute USVString hash;
[LegacyUnforgeable] stringifier attribute USVString href;
[LegacyUnforgeable] readonly attribute USVString origin;
[LegacyUnforgeable] attribute USVString protocol;
[LegacyUnforgeable] attribute USVString host;
[LegacyUnforgeable] attribute USVString hostname;
[LegacyUnforgeable] attribute USVString port;
[LegacyUnforgeable] attribute USVString pathname;
[LegacyUnforgeable] attribute USVString search;
[LegacyUnforgeable] attribute USVString hash;
[Unforgeable] void assign(USVString url);
[Unforgeable] void replace(USVString url);
[Unforgeable] void reload();
[LegacyUnforgeable] void assign(USVString url);
[LegacyUnforgeable] void replace(USVString url);
[LegacyUnforgeable] void reload();
[Unforgeable, SameObject] readonly attribute DOMStringList ancestorOrigins;
[LegacyUnforgeable, SameObject] readonly attribute DOMStringList ancestorOrigins;
};
[Exposed=Window,
@ -1787,15 +1787,15 @@ dictionary PromiseRejectionEventInit : EventInit {
any reason;
};
[TreatNonObjectAsNull]
[LegacyTreatNonObjectAsNull]
callback EventHandlerNonNull = any (Event event);
typedef EventHandlerNonNull? EventHandler;
[TreatNonObjectAsNull]
[LegacyTreatNonObjectAsNull]
callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long colno, optional any error);
typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
[TreatNonObjectAsNull]
[LegacyTreatNonObjectAsNull]
callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
@ -1836,8 +1836,8 @@ interface mixin GlobalEventHandlers {
attribute EventHandler onloadedmetadata;
attribute EventHandler onloadstart;
attribute EventHandler onmousedown;
[LenientThis] attribute EventHandler onmouseenter;
[LenientThis] attribute EventHandler onmouseleave;
[LegacyLenientThis] attribute EventHandler onmouseenter;
[LegacyLenientThis] attribute EventHandler onmouseleave;
attribute EventHandler onmousemove;
attribute EventHandler onmouseout;
attribute EventHandler onmouseover;
@ -1969,7 +1969,7 @@ interface mixin NavigatorLanguage {
};
interface mixin NavigatorContentUtils {
[SecureContext] void registerProtocolHandler(DOMString scheme, USVString url, DOMString title);
[SecureContext] void registerProtocolHandler(DOMString scheme, USVString url);
[SecureContext] void unregisterProtocolHandler(DOMString scheme, USVString url);
};
@ -2361,8 +2361,8 @@ interface HTMLFrameElement : HTMLElement {
readonly attribute Document? contentDocument;
readonly attribute WindowProxy? contentWindow;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString marginHeight;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString marginWidth;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
};
partial interface HTMLAnchorElement {
@ -2378,11 +2378,11 @@ partial interface HTMLAreaElement {
};
partial interface HTMLBodyElement {
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString text;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString link;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString vLink;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString aLink;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString bgColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString text;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString link;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString vLink;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString aLink;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
[CEReactions] attribute DOMString background;
};
@ -2426,7 +2426,7 @@ partial interface HTMLEmbedElement {
interface HTMLFontElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString color;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString color;
[CEReactions] attribute DOMString face;
[CEReactions] attribute DOMString size;
};
@ -2453,8 +2453,8 @@ partial interface HTMLIFrameElement {
[CEReactions] attribute DOMString frameBorder;
[CEReactions] attribute USVString longDesc;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString marginHeight;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString marginWidth;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString marginHeight;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString marginWidth;
};
partial interface HTMLImageElement {
@ -2465,7 +2465,7 @@ partial interface HTMLImageElement {
[CEReactions] attribute unsigned long vspace;
[CEReactions] attribute USVString longDesc;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString border;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString border;
};
partial interface HTMLInputElement {
@ -2506,7 +2506,7 @@ partial interface HTMLObjectElement {
[CEReactions] attribute DOMString codeBase;
[CEReactions] attribute DOMString codeType;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString border;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString border;
};
partial interface HTMLOListElement {
@ -2544,9 +2544,9 @@ partial interface HTMLTableElement {
[CEReactions] attribute DOMString summary;
[CEReactions] attribute DOMString width;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString bgColor;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString cellPadding;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString cellSpacing;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString cellPadding;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString cellSpacing;
};
partial interface HTMLTableSectionElement {
@ -2567,7 +2567,7 @@ partial interface HTMLTableCellElement {
[CEReactions] attribute boolean noWrap;
[CEReactions] attribute DOMString vAlign;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString bgColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
};
partial interface HTMLTableRowElement {
@ -2576,7 +2576,7 @@ partial interface HTMLTableRowElement {
[CEReactions] attribute DOMString chOff;
[CEReactions] attribute DOMString vAlign;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString bgColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
};
partial interface HTMLUListElement {
@ -2585,11 +2585,11 @@ partial interface HTMLUListElement {
};
partial interface Document {
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString fgColor;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString linkColor;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString vlinkColor;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString alinkColor;
[CEReactions] attribute [TreatNullAs=EmptyString] DOMString bgColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString fgColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString linkColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString vlinkColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString alinkColor;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString bgColor;
[SameObject] readonly attribute HTMLCollection anchors;
[SameObject] readonly attribute HTMLCollection applets;

Просмотреть файл

@ -1333,7 +1333,8 @@ function IdlInterface(obj, is_callback, is_mixin)
/** An array of IdlInterfaceMembers. */
this.members = obj.members.map(function(m){return new IdlInterfaceMember(m); });
if (this.has_extended_attribute("Unforgeable")) {
if (this.has_extended_attribute("Unforgeable") ||
this.has_extended_attribute("LegacyUnforgeable")) {
this.members
.filter(function(m) { return m.special !== "static" && (m.type == "attribute" || m.type == "operation"); })
.forEach(function(m) { return m.isUnforgeable = true; });
@ -1795,11 +1796,12 @@ IdlInterface.prototype.test_self = function()
}.bind(this), this.name + " interface: legacy window alias");
}
if (this.has_extended_attribute("NamedConstructor")) {
if (this.has_extended_attribute("NamedConstructor") ||
this.has_extended_attribute("LegacyFactoryFunction")) {
var constructors = this.extAttrs
.filter(function(attr) { return attr.name == "NamedConstructor"; });
.filter(function(attr) { return attr.name == "NamedConstructor" || attr.name == "LegacyFactoryFunction"; });
if (constructors.length !== 1) {
throw new IdlHarnessError("Internal error: missing support for multiple NamedConstructor extended attributes");
throw new IdlHarnessError("Internal error: missing support for multiple LegacyFactoryFunction extended attributes");
}
var constructor = constructors[0];
var min_length = minOverloadLength([constructor]);
@ -1808,10 +1810,10 @@ IdlInterface.prototype.test_self = function()
{
// This function tests WebIDL as of 2019-01-14.
// "for every [NamedConstructor] extended attribute on an exposed
// "for every [LegacyFactoryFunction] extended attribute on an exposed
// interface, a corresponding property must exist on the ECMAScript
// global object. The name of the property is the
// [NamedConstructor]'s identifier, and its value is an object
// [LegacyFactoryFunction]'s identifier, and its value is an object
// called a named constructor, ... . The property has the attributes
// { [[Writable]]: true, [[Enumerable]]: false,
// [[Configurable]]: true }."
@ -2371,7 +2373,8 @@ IdlInterface.prototype.test_member_attribute = function(member)
"The prototype object must have a property " +
format_value(member.name));
if (!member.has_extended_attribute("LenientThis")) {
if (!member.has_extended_attribute("LenientThis") &&
!member.has_extended_attribute("LegacyLenientThis")) {
if (member.idlType.generic !== "Promise") {
// this.get_interface_object() returns a thing in our global
assert_throws_js(TypeError, function() {
@ -3027,7 +3030,7 @@ IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member, a_
// "The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where:
// "configurable is false if the attribute was declared with the
// [Unforgeable] extended attribute and true otherwise;
// [LegacyUnforgeable] extended attribute and true otherwise;
// "G is the attribute getter, defined below; and
// "S is the attribute setter, also defined below."
var desc = Object.getOwnPropertyDescriptor(obj, member.name);
@ -3036,7 +3039,7 @@ IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member, a_
assert_true(desc.enumerable, "property should be enumerable");
if (member.isUnforgeable)
{
assert_false(desc.configurable, "[Unforgeable] property must not be configurable");
assert_false(desc.configurable, "[LegacyUnforgeable] property must not be configurable");
}
else
{
@ -3051,10 +3054,11 @@ IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member, a_
// "If the attribute is a regular attribute, then:"
if (member.special !== "static") {
// "If O is not a platform object that implements I, then:
// "If the attribute was specified with the [LenientThis] extended
// "If the attribute was specified with the [LegacyLenientThis] extended
// attribute, then return undefined.
// "Otherwise, throw a TypeError."
if (!member.has_extended_attribute("LenientThis")) {
if (!member.has_extended_attribute("LenientThis") &&
!member.has_extended_attribute("LegacyLenientThis")) {
if (member.idlType.generic !== "Promise") {
assert_throws_js(globalOf(desc.get).TypeError, function() {
desc.get.call({});
@ -3101,12 +3105,13 @@ IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member, a_
// "If the attribute is a regular attribute, then:"
if (member.special !== "static") {
// "If /validThis/ is false and the attribute was not specified
// with the [LenientThis] extended attribute, then throw a
// with the [LegacyLenientThis] extended attribute, then throw a
// TypeError."
// "If the attribute is declared with a [Replaceable] extended
// attribute, then: ..."
// "If validThis is false, then return."
if (!member.has_extended_attribute("LenientThis")) {
if (!member.has_extended_attribute("LenientThis") &&
!member.has_extended_attribute("LegacyLenientThis")) {
assert_throws_js(globalOf(desc.set).TypeError, function() {
desc.set.call({});
}.bind(this), "calling setter on wrong object type must throw TypeError");
@ -3146,7 +3151,8 @@ function IdlInterfaceMember(obj)
this.extAttrs = [];
}
this.isUnforgeable = this.has_extended_attribute("Unforgeable");
this.isUnforgeable = this.has_extended_attribute("Unforgeable") ||
this.has_extended_attribute("LegacyUnforgeable");
this.isUnscopable = this.has_extended_attribute("Unscopable");
}