svg: Add mock SVGImageElement interface (#36975)

Add mock SVGImageElement interface to fix TIMEOUT WPT tests
which are related to ImageBitmap (html/canvas/*).
https://svgwg.org/svg2-draft/embedded.html#InterfaceSVGImageElement

Rationality of this change to fire event "error" on any attempt to fetch
image resource on href attribute change to not block WPT tests
execution.

Some WPT tests use the legacy namespace attribute "xlink:href", so
support for it was added to source code.
https://svgwg.org/svg2-draft/linking.html#XLinkHrefAttribute
 - setAttributeNS("http://www.w3.org/1999/xlink", 'xlink:href', src);

Testing: Covered by existed WPT tests
 - fetch/metadata/generated/svg-image*
 - html/canvas/element/manual/*
 - html/dom/idlharness.https.html
 - html/semantics/embedded-content/the-canvas-element/*
 - html/webappapis/scripting/events/event-handler-all-global-events.html
 - mozilla/interfaces.https.html

Fixes: https://github.com/servo/servo/issues/35881

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
This commit is contained in:
Andrei Volykhin 2025-05-13 13:43:10 +03:00 committed by GitHub
parent e4f62d5c16
commit 6468734aea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 262 additions and 811 deletions

View file

@ -8,7 +8,7 @@ use std::mem;
use devtools_traits::AttrInfo;
use dom_struct::dom_struct;
use html5ever::{LocalName, Namespace, Prefix, ns};
use html5ever::{LocalName, Namespace, Prefix, local_name, ns};
use style::attr::{AttrIdentifier, AttrValue};
use style::values::GenericAtomIdent;
use stylo_atoms::Atom;
@ -179,7 +179,7 @@ impl Attr {
assert_eq!(Some(owner), self.owner().as_deref());
owner.will_mutate_attr(self);
self.swap_value(&mut value);
if *self.namespace() == ns!() {
if is_relevant_attribute(self.namespace(), self.local_name()) {
vtable_for(owner.upcast()).attribute_mutated(
self,
AttributeMutation::Set(Some(&value)),
@ -283,3 +283,9 @@ impl<'dom> AttrHelpersForLayout<'dom> for LayoutDom<'dom, Attr> {
&self.unsafe_get().identifier.namespace.0
}
}
/// A helper function to check if attribute is relevant.
pub(crate) fn is_relevant_attribute(namespace: &Namespace, local_name: &LocalName) -> bool {
// <https://svgwg.org/svg2-draft/linking.html#XLinkHrefAttribute>
namespace == &ns!() || (namespace == &ns!(xlink) && local_name == &local_name!("href"))
}

View file

@ -85,6 +85,7 @@ use crate::dom::htmlulistelement::HTMLUListElement;
use crate::dom::htmlunknownelement::HTMLUnknownElement;
use crate::dom::htmlvideoelement::HTMLVideoElement;
use crate::dom::svgelement::SVGElement;
use crate::dom::svgimageelement::SVGImageElement;
use crate::dom::svgsvgelement::SVGSVGElement;
use crate::realms::{InRealm, enter_realm};
use crate::script_runtime::CanGc;
@ -114,6 +115,7 @@ fn create_svg_element(
}
match name.local {
local_name!("image") => make!(SVGImageElement),
local_name!("svg") => make!(SVGSVGElement),
_ => make!(SVGElement),
}

View file

@ -65,7 +65,7 @@ use xml5ever::serialize::TraversalScope::{
use crate::conversions::Convert;
use crate::dom::activation::Activatable;
use crate::dom::attr::{Attr, AttrHelpersForLayout};
use crate::dom::attr::{Attr, AttrHelpersForLayout, is_relevant_attribute};
use crate::dom::bindings::cell::{DomRefCell, Ref, RefMut, ref_filter_map};
use crate::dom::bindings::codegen::Bindings::AttrBinding::AttrMethods;
use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
@ -1705,7 +1705,7 @@ impl Element {
assert!(attr.GetOwnerElement().as_deref() == Some(self));
self.will_mutate_attr(attr);
self.attrs.borrow_mut().push(Dom::from_ref(attr));
if attr.namespace() == &ns!() {
if is_relevant_attribute(attr.namespace(), attr.local_name()) {
vtable_for(self.upcast()).attribute_mutated(attr, AttributeMutation::Set(None), can_gc);
}
}
@ -1847,7 +1847,7 @@ impl Element {
local_name: &LocalName,
value: DOMString,
) -> AttrValue {
if *namespace == ns!() {
if is_relevant_attribute(namespace, local_name) {
vtable_for(self.upcast()).parse_plain_attribute(local_name, value)
} else {
AttrValue::String(value.into())
@ -1902,7 +1902,7 @@ impl Element {
self.attrs.borrow_mut().remove(idx);
attr.set_owner(None);
if attr.namespace() == &ns!() {
if is_relevant_attribute(attr.namespace(), attr.local_name()) {
vtable_for(self.upcast()).attribute_mutated(
&attr,
AttributeMutation::Removed,
@ -2722,7 +2722,7 @@ impl ElementMethods<crate::DomTypeHolder> for Element {
attr.set_owner(Some(self));
self.attrs.borrow_mut()[position] = Dom::from_ref(attr);
old_attr.set_owner(None);
if attr.namespace() == &ns!() {
if is_relevant_attribute(attr.namespace(), attr.local_name()) {
vtable.attribute_mutated(
attr,
AttributeMutation::Set(Some(&old_attr.value())),

View file

@ -547,6 +547,7 @@ pub(crate) mod submitevent;
pub(crate) mod subtlecrypto;
pub(crate) mod svgelement;
pub(crate) mod svggraphicselement;
pub(crate) mod svgimageelement;
pub(crate) mod svgsvgelement;
pub(crate) mod testbinding;
pub(crate) mod testbindingiterable;

View file

@ -4206,6 +4206,9 @@ impl From<ElementTypeIdWrapper> for LayoutElementType {
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement) => {
LayoutElementType::HTMLTextAreaElement
},
ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGImageElement,
)) => LayoutElementType::SVGImageElement,
ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGSVGElement,
)) => LayoutElementType::SVGSVGElement,

View file

@ -82,6 +82,9 @@ impl SVGElementMethods<crate::DomTypeHolder> for SVGElement {
})
}
// <https://html.spec.whatwg.org/multipage/#globaleventhandlers>
global_event_handlers!();
// FIXME: The nonce should be stored in an internal slot instead of an
// attribute (https://html.spec.whatwg.org/multipage/#cryptographicnonce)
// https://html.spec.whatwg.org/multipage/#dom-noncedelement-nonce

View file

@ -0,0 +1,96 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use dom_struct::dom_struct;
use html5ever::{LocalName, Prefix, local_name, ns};
use js::rust::HandleObject;
use style::attr::AttrValue;
use crate::dom::attr::Attr;
use crate::dom::bindings::inheritance::Castable;
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::document::Document;
use crate::dom::element::AttributeMutation;
use crate::dom::node::{Node, NodeTraits};
use crate::dom::svggraphicselement::SVGGraphicsElement;
use crate::dom::virtualmethods::VirtualMethods;
use crate::script_runtime::CanGc;
/// <https://svgwg.org/svg2-draft/embedded.html#Placement>
const DEFAULT_WIDTH: u32 = 300;
const DEFAULT_HEIGHT: u32 = 150;
#[dom_struct]
pub(crate) struct SVGImageElement {
svggraphicselement: SVGGraphicsElement,
}
impl SVGImageElement {
fn new_inherited(
local_name: LocalName,
prefix: Option<Prefix>,
document: &Document,
) -> SVGImageElement {
SVGImageElement {
svggraphicselement: SVGGraphicsElement::new_inherited(local_name, prefix, document),
}
}
#[cfg_attr(crown, allow(crown::unrooted_must_root))]
pub(crate) fn new(
local_name: LocalName,
prefix: Option<Prefix>,
document: &Document,
proto: Option<HandleObject>,
can_gc: CanGc,
) -> DomRoot<SVGImageElement> {
Node::reflect_node_with_proto(
Box::new(SVGImageElement::new_inherited(local_name, prefix, document)),
document,
proto,
can_gc,
)
}
/// <https://svgwg.org/svg2-draft/linking.html#processingURL>
fn fetch_image_resource(&self) {
// TODO: Process and fetch the image resource (as HTMLImageElement).
// Reject any resource fetching request immediately.
self.owner_global()
.task_manager()
.dom_manipulation_task_source()
.queue_simple_event(self.upcast(), atom!("error"));
}
}
impl VirtualMethods for SVGImageElement {
fn super_type(&self) -> Option<&dyn VirtualMethods> {
Some(self.upcast::<SVGGraphicsElement>() as &dyn VirtualMethods)
}
fn attribute_mutated(&self, attr: &Attr, mutation: AttributeMutation, can_gc: CanGc) {
self.super_type()
.unwrap()
.attribute_mutated(attr, mutation, can_gc);
if attr.local_name() == &local_name!("href") &&
matches!(attr.namespace(), &ns!() | &ns!(xlink))
{
if let AttributeMutation::Set(_) = mutation {
self.fetch_image_resource();
}
}
}
fn parse_plain_attribute(&self, name: &LocalName, value: DOMString) -> AttrValue {
match *name {
local_name!("width") => AttrValue::from_u32(value.into(), DEFAULT_WIDTH),
local_name!("height") => AttrValue::from_u32(value.into(), DEFAULT_HEIGHT),
_ => self
.super_type()
.unwrap()
.parse_plain_attribute(name, value),
}
}
}

View file

@ -61,6 +61,7 @@ use crate::dom::htmlvideoelement::HTMLVideoElement;
use crate::dom::node::{BindContext, ChildrenMutation, CloneChildrenFlag, Node, UnbindContext};
use crate::dom::shadowroot::ShadowRoot;
use crate::dom::svgelement::SVGElement;
use crate::dom::svgimageelement::SVGImageElement;
use crate::dom::svgsvgelement::SVGSVGElement;
/// Trait to allow DOM nodes to opt-in to overriding (or adding to) common
@ -298,6 +299,9 @@ pub(crate) fn vtable_for(node: &Node) -> &dyn VirtualMethods {
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTitleElement)) => {
node.downcast::<HTMLTitleElement>().unwrap() as &dyn VirtualMethods
},
NodeTypeId::Element(ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGImageElement,
))) => node.downcast::<SVGImageElement>().unwrap() as &dyn VirtualMethods,
NodeTypeId::Element(ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGSVGElement,
))) => node.downcast::<SVGSVGElement>().unwrap() as &dyn VirtualMethods,

View file

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

View file

@ -0,0 +1,16 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://svgwg.org/svg2-draft/embedded.html#InterfaceSVGImageElement
[Exposed=Window, Pref="dom_svg_enabled"]
interface SVGImageElement : SVGGraphicsElement {
//[SameObject] readonly attribute SVGAnimatedLength x;
//[SameObject] readonly attribute SVGAnimatedLength y;
//[SameObject] readonly attribute SVGAnimatedLength width;
//[SameObject] readonly attribute SVGAnimatedLength height;
//[SameObject] readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
//attribute DOMString? crossOrigin;
};
//SVGImageElement includes SVGURIReference;

View file

@ -114,6 +114,7 @@ pub enum LayoutElementType {
HTMLTableRowElement,
HTMLTableSectionElement,
HTMLTextAreaElement,
SVGImageElement,
SVGSVGElement,
}

View file

@ -1,70 +1,69 @@
[svg-image.https.sub.html]
expected: TIMEOUT
[sec-fetch-site - Same origin no attributes]
expected: TIMEOUT
expected: FAIL
[sec-fetch-site - Cross-site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Origin -> Cross-Site -> Same-Origin redirect no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Origin -> Same-Site -> Same-Origin redirect no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Cross-Site -> Same Origin no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Cross-Site -> Same-Site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Cross-Site -> Cross-Site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Origin -> Same Origin no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Origin -> Same-Site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Origin -> Cross-Site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Site -> Same Origin no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Site -> Same-Site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Same-Site -> Cross-Site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - HTTPS downgrade-upgrade no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode attributes: crossorigin]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode attributes: crossorigin=anonymous]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode attributes: crossorigin=use-credentials]
expected: NOTRUN
expected: FAIL
[sec-fetch-dest no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-user no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-storage-access - Cross-site no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-storage-access - Same site no attributes]
expected: NOTRUN
expected: FAIL

View file

@ -1,55 +1,54 @@
[svg-image.sub.html]
expected: TIMEOUT
[sec-fetch-site - Not sent to non-trustworthy same-origin destination no attributes]
expected: TIMEOUT
expected: FAIL
[sec-fetch-site - Not sent to non-trustworthy same-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - Not sent to non-trustworthy cross-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode - Not sent to non-trustworthy same-origin destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode - Not sent to non-trustworthy same-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-mode - Not sent to non-trustworthy cross-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-dest - Not sent to non-trustworthy same-origin destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-dest - Not sent to non-trustworthy same-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-dest - Not sent to non-trustworthy cross-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-user - Not sent to non-trustworthy same-origin destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-user - Not sent to non-trustworthy same-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-user - Not sent to non-trustworthy cross-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - HTTPS downgrade (header not sent) no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - HTTPS upgrade no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-site - HTTPS downgrade-upgrade no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-storage-access - Not sent to non-trustworthy same-site destination no attributes]
expected: NOTRUN
expected: FAIL
[sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination no attributes]
expected: NOTRUN
expected: FAIL

View file

@ -1,13 +1,13 @@
[createImageBitmap-drawImage.html]
expected: ERROR
[createImageBitmap from an OffscreenCanvas resized, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector HTMLImageElement resized, and drawImage on the created ImageBitmap]
expected: FAIL
[createImageBitmap from an OffscreenCanvas, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLCanvasElement, and drawImage on the created ImageBitmap]
expected: FAIL
@ -22,34 +22,34 @@
expected: FAIL
[createImageBitmap from an ImageData scaled down, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an OffscreenCanvas scaled down, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement, and drawImage on the created ImageBitmap]
expected: TIMEOUT
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement resized, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLCanvasElement scaled down, and drawImage on the created ImageBitmap]
expected: FAIL
[createImageBitmap from a vector SVGImageElement, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageData scaled up, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLVideoElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement scaled up, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector SVGImageElement resized, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap HTMLImageElement scaled up, and drawImage on the created ImageBitmap]
expected: FAIL
@ -58,10 +58,10 @@
expected: FAIL
[createImageBitmap from a vector SVGImageElement scaled down, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector SVGImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap HTMLImageElement scaled down, and drawImage on the created ImageBitmap]
expected: FAIL
@ -73,16 +73,16 @@
expected: FAIL
[createImageBitmap from a Blob scaled down, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageData resized, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector HTMLImageElement scaled down, and drawImage on the created ImageBitmap]
expected: FAIL
[createImageBitmap from an ImageData, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLCanvasElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: FAIL
@ -91,16 +91,16 @@
expected: FAIL
[createImageBitmap from a vector SVGImageElement scaled up, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageBitmap, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a Blob scaled up, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement scaled down, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLVideoElement scaled up, and drawImage on the created ImageBitmap]
expected: FAIL
@ -109,7 +109,7 @@
expected: FAIL
[createImageBitmap from a Blob, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLVideoElement resized, and drawImage on the created ImageBitmap]
expected: FAIL
@ -118,31 +118,31 @@
expected: FAIL
[createImageBitmap from an ImageBitmap scaled down, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a Blob with negative sw/sh, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageData with negative sw/sh, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageBitmap scaled up, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageBitmap resized, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an OffscreenCanvas scaled up, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLCanvasElement scaled up, and drawImage on the created ImageBitmap]
expected: FAIL
[createImageBitmap from a Blob resized, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLVideoElement from a data URL, and drawImage on the created ImageBitmap]
expected: FAIL
@ -154,10 +154,10 @@
expected: FAIL
[createImageBitmap from an ImageBitmap with negative sw/sh, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an OffscreenCanvas with negative sw/sh, and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: FAIL

View file

@ -4,7 +4,7 @@
expected: NOTRUN
[createImageBitmap from a vector SVGImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLCanvasElement imageOrientation: "none", and drawImage on the created ImageBitmap]
expected: FAIL
@ -16,7 +16,7 @@
expected: FAIL
[createImageBitmap from an OffscreenCanvas imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector HTMLImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: FAIL
@ -25,7 +25,7 @@
expected: FAIL
[createImageBitmap from a Blob imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an HTMLCanvasElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: FAIL
@ -34,7 +34,7 @@
expected: FAIL
[createImageBitmap from an ImageData imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap HTMLImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: FAIL
@ -43,7 +43,7 @@
expected: NOTRUN
[createImageBitmap from an ImageBitmap imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a vector HTMLImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
expected: FAIL
@ -61,7 +61,7 @@
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
expected: TIMEOUT
@ -82,19 +82,19 @@
expected: FAIL
[createImageBitmap from a bitmap SVGImageElement imageOrientation: "from-image", and drawImage on the created ImageBitmap]
expected: TIMEOUT
expected: FAIL
[createImageBitmap from a vector SVGImageElement imageOrientation: "from-image", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an OffscreenCanvas imageOrientation: "from-image", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageData imageOrientation: "from-image", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from an ImageBitmap imageOrientation: "from-image", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL
[createImageBitmap from a Blob imageOrientation: "from-image", and drawImage on the created ImageBitmap]
expected: NOTRUN
expected: FAIL

View file

@ -1,5 +1,5 @@
[createImageBitmap-invalid-args.html]
expected: ERROR
expected: CRASH
[createImageBitmap with a vector HTMLImageElement source and sw set to 0]
expected: FAIL

View file

@ -1,34 +1,34 @@
[createImageBitmap-origin.sub.html]
expected: TIMEOUT
[redirected to cross-origin HTMLVideoElement: origin unclear 2dContext.drawImage]
expected: NOTRUN
expected: FAIL
[redirected to cross-origin HTMLVideoElement: origin unclear bitmaprenderer.transferFromImageBitmap]
expected: NOTRUN
expected: FAIL
[unclean HTMLCanvasElement: origin unclear bitmaprenderer.transferFromImageBitmap]
expected: NOTRUN
expected: FAIL
[unclean HTMLCanvasElement: origin unclear getImageData]
expected: NOTRUN
expected: FAIL
[cross-origin HTMLVideoElement: origin unclear getImageData]
expected: NOTRUN
expected: FAIL
[cross-origin SVGImageElement: origin unclear bitmaprenderer.transferFromImageBitmap]
expected: NOTRUN
expected: FAIL
[cross-origin HTMLVideoElement: origin unclear bitmaprenderer.transferFromImageBitmap]
expected: NOTRUN
expected: FAIL
[redirected to same-origin HTMLVideoElement: origin unclear getImageData]
expected: NOTRUN
expected: FAIL
[cross-origin HTMLImageElement: origin unclear 2dContext.drawImage]
expected: FAIL
[cross-origin SVGImageElement: origin unclear 2dContext.drawImage]
expected: NOTRUN
expected: FAIL
[cross-origin HTMLImageElement: origin unclear getImageData]
expected: FAIL
@ -37,28 +37,28 @@
expected: FAIL
[redirected to same-origin HTMLVideoElement: origin unclear 2dContext.drawImage]
expected: NOTRUN
expected: FAIL
[unclean ImageBitmap: origin unclear bitmaprenderer.transferFromImageBitmap]
expected: NOTRUN
expected: FAIL
[redirected to same-origin HTMLVideoElement: origin unclear bitmaprenderer.transferFromImageBitmap]
expected: NOTRUN
expected: FAIL
[redirected to cross-origin HTMLVideoElement: origin unclear getImageData]
expected: NOTRUN
expected: FAIL
[unclean ImageBitmap: origin unclear getImageData]
expected: NOTRUN
expected: FAIL
[unclean HTMLCanvasElement: origin unclear 2dContext.drawImage]
expected: NOTRUN
expected: FAIL
[cross-origin HTMLVideoElement: origin unclear 2dContext.drawImage]
expected: NOTRUN
expected: FAIL
[unclean ImageBitmap: origin unclear 2dContext.drawImage]
expected: NOTRUN
expected: FAIL
[cross-origin SVGImageElement: origin unclear getImageData]
expected: TIMEOUT
expected: FAIL

View file

@ -1,7 +1,6 @@
[createImageBitmap-serializable.html]
expected: TIMEOUT
[Serialize ImageBitmap created from a vector SVGImageElement]
expected: NOTRUN
expected: FAIL
[Serialize ImageBitmap created from an HTMLVideoElement]
expected: FAIL
@ -13,25 +12,25 @@
expected: FAIL
[Serialize ImageBitmap created from an OffscreenCanvas]
expected: NOTRUN
expected: FAIL
[Serialize ImageBitmap created from a vector HTMLImageElement]
expected: FAIL
[Serialize ImageBitmap created from a Blob]
expected: NOTRUN
expected: FAIL
[Serialize ImageBitmap created from a bitmap HTMLImageElement]
expected: FAIL
[Serializing a non-origin-clean ImageBitmap throws.]
expected: NOTRUN
expected: FAIL
[Serialize ImageBitmap created from an ImageData]
expected: NOTRUN
expected: FAIL
[Serialize ImageBitmap created from an ImageBitmap]
expected: NOTRUN
expected: FAIL
[Serialize ImageBitmap created from a bitmap SVGImageElement]
expected: TIMEOUT
expected: FAIL

View file

@ -1,22 +1,21 @@
[createImageBitmap-transfer.html]
expected: ERROR
[Transfer ImageBitmap created from a vector HTMLImageElement]
expected: FAIL
[Transfer ImageBitmap created from an ImageData]
expected: NOTRUN
expected: FAIL
[Transfer ImageBitmap created from a vector SVGImageElement]
expected: NOTRUN
expected: FAIL
[Transfer ImageBitmap created from a Blob]
expected: NOTRUN
expected: FAIL
[Transfer ImageBitmap created from an HTMLCanvasElement]
expected: FAIL
[Transfer ImageBitmap created from an OffscreenCanvas]
expected: NOTRUN
expected: FAIL
[Transfer ImageBitmap created from a bitmap HTMLImageElement]
expected: FAIL
@ -25,13 +24,13 @@
expected: FAIL
[Transfer ImageBitmap created from a bitmap SVGImageElement]
expected: TIMEOUT
expected: FAIL
[Transfer ImageBitmap created from an ImageBitmap]
expected: NOTRUN
expected: FAIL
[Transfer ImageBitmap created from an HTMLVideoElement]
expected: FAIL
[Transferring a non-origin-clean ImageBitmap throws.]
expected: NOTRUN
expected: FAIL

View file

@ -5123,231 +5123,6 @@
[External interface: window.external must inherit property "IsSearchProviderInstalled()" with the proper type]
expected: FAIL
[SVGElement interface: attribute onabort]
expected: FAIL
[SVGElement interface: attribute onauxclick]
expected: FAIL
[SVGElement interface: attribute onbeforeinput]
expected: FAIL
[SVGElement interface: attribute onbeforematch]
expected: FAIL
[SVGElement interface: attribute onbeforetoggle]
expected: FAIL
[SVGElement interface: attribute onblur]
expected: FAIL
[SVGElement interface: attribute oncancel]
expected: FAIL
[SVGElement interface: attribute oncanplay]
expected: FAIL
[SVGElement interface: attribute oncanplaythrough]
expected: FAIL
[SVGElement interface: attribute onchange]
expected: FAIL
[SVGElement interface: attribute onclick]
expected: FAIL
[SVGElement interface: attribute onclose]
expected: FAIL
[SVGElement interface: attribute oncontextlost]
expected: FAIL
[SVGElement interface: attribute oncontextmenu]
expected: FAIL
[SVGElement interface: attribute oncontextrestored]
expected: FAIL
[SVGElement interface: attribute oncopy]
expected: FAIL
[SVGElement interface: attribute oncuechange]
expected: FAIL
[SVGElement interface: attribute oncut]
expected: FAIL
[SVGElement interface: attribute ondblclick]
expected: FAIL
[SVGElement interface: attribute ondrag]
expected: FAIL
[SVGElement interface: attribute ondragend]
expected: FAIL
[SVGElement interface: attribute ondragenter]
expected: FAIL
[SVGElement interface: attribute ondragleave]
expected: FAIL
[SVGElement interface: attribute ondragover]
expected: FAIL
[SVGElement interface: attribute ondragstart]
expected: FAIL
[SVGElement interface: attribute ondrop]
expected: FAIL
[SVGElement interface: attribute ondurationchange]
expected: FAIL
[SVGElement interface: attribute onemptied]
expected: FAIL
[SVGElement interface: attribute onended]
expected: FAIL
[SVGElement interface: attribute onerror]
expected: FAIL
[SVGElement interface: attribute onfocus]
expected: FAIL
[SVGElement interface: attribute onformdata]
expected: FAIL
[SVGElement interface: attribute oninput]
expected: FAIL
[SVGElement interface: attribute oninvalid]
expected: FAIL
[SVGElement interface: attribute onkeydown]
expected: FAIL
[SVGElement interface: attribute onkeypress]
expected: FAIL
[SVGElement interface: attribute onkeyup]
expected: FAIL
[SVGElement interface: attribute onload]
expected: FAIL
[SVGElement interface: attribute onloadeddata]
expected: FAIL
[SVGElement interface: attribute onloadedmetadata]
expected: FAIL
[SVGElement interface: attribute onloadstart]
expected: FAIL
[SVGElement interface: attribute onmousedown]
expected: FAIL
[SVGElement interface: attribute onmouseenter]
expected: FAIL
[SVGElement interface: attribute onmouseleave]
expected: FAIL
[SVGElement interface: attribute onmousemove]
expected: FAIL
[SVGElement interface: attribute onmouseout]
expected: FAIL
[SVGElement interface: attribute onmouseover]
expected: FAIL
[SVGElement interface: attribute onmouseup]
expected: FAIL
[SVGElement interface: attribute onpaste]
expected: FAIL
[SVGElement interface: attribute onpause]
expected: FAIL
[SVGElement interface: attribute onplay]
expected: FAIL
[SVGElement interface: attribute onplaying]
expected: FAIL
[SVGElement interface: attribute onprogress]
expected: FAIL
[SVGElement interface: attribute onratechange]
expected: FAIL
[SVGElement interface: attribute onreset]
expected: FAIL
[SVGElement interface: attribute onresize]
expected: FAIL
[SVGElement interface: attribute onscroll]
expected: FAIL
[SVGElement interface: attribute onscrollend]
expected: FAIL
[SVGElement interface: attribute onsecuritypolicyviolation]
expected: FAIL
[SVGElement interface: attribute onseeked]
expected: FAIL
[SVGElement interface: attribute onseeking]
expected: FAIL
[SVGElement interface: attribute onselect]
expected: FAIL
[SVGElement interface: attribute onslotchange]
expected: FAIL
[SVGElement interface: attribute onstalled]
expected: FAIL
[SVGElement interface: attribute onsubmit]
expected: FAIL
[SVGElement interface: attribute onsuspend]
expected: FAIL
[SVGElement interface: attribute ontimeupdate]
expected: FAIL
[SVGElement interface: attribute ontoggle]
expected: FAIL
[SVGElement interface: attribute onvolumechange]
expected: FAIL
[SVGElement interface: attribute onwaiting]
expected: FAIL
[SVGElement interface: attribute onwebkitanimationend]
expected: FAIL
[SVGElement interface: attribute onwebkitanimationiteration]
expected: FAIL
[SVGElement interface: attribute onwebkitanimationstart]
expected: FAIL
[SVGElement interface: attribute onwebkittransitionend]
expected: FAIL
[SVGElement interface: attribute onwheel]
expected: FAIL
[SVGElement interface: attribute dataset]
expected: FAIL
@ -5444,9 +5219,6 @@
[CommandEvent interface: attribute command]
expected: FAIL
[SVGElement interface: attribute oncommand]
expected: FAIL
[CanvasRenderingContext2D interface: attribute lang]
expected: FAIL

View file

@ -1,16 +1,16 @@
[security.pattern.fillStyle.sub.html]
expected: TIMEOUT
[cross-origin SVGImageElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean]
expected: TIMEOUT
expected: FAIL
[cross-origin HTMLVideoElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean]
expected: NOTRUN
expected: FAIL
[redirected to cross-origin HTMLVideoElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean]
expected: NOTRUN
expected: FAIL
[redirected to same-origin HTMLVideoElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean]
expected: NOTRUN
expected: TIMEOUT
[unclean HTMLCanvasElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean]
expected: NOTRUN

View file

@ -1,460 +1,16 @@
[event-handler-all-global-events.html]
[onabort: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onabort: the default value must be null]
expected: FAIL
[onauxclick: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onauxclick: the default value must be null]
expected: FAIL
[onblur: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onblur: the default value must be null]
expected: FAIL
[oncancel: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncancel: the default value must be null]
expected: FAIL
[oncanplay: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncanplay: the default value must be null]
expected: FAIL
[oncanplaythrough: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncanplaythrough: the default value must be null]
expected: FAIL
[onchange: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onchange: the default value must be null]
expected: FAIL
[onclick: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onclick: the default value must be null]
expected: FAIL
[onclose: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onclose: the default value must be null]
expected: FAIL
[oncontextlost: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncontextlost: the default value must be null]
expected: FAIL
[oncontextmenu: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncontextmenu: the default value must be null]
expected: FAIL
[oncontextrestored: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncontextrestored: the default value must be null]
expected: FAIL
[oncuechange: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncuechange: the default value must be null]
expected: FAIL
[ondblclick: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondblclick: the default value must be null]
expected: FAIL
[ondrag: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondrag: the default value must be null]
expected: FAIL
[ondragend: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondragend: the default value must be null]
expected: FAIL
[ondragenter: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondragenter: the default value must be null]
expected: FAIL
[ondragleave: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondragleave: the default value must be null]
expected: FAIL
[ondragover: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondragover: the default value must be null]
expected: FAIL
[ondragstart: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondragstart: the default value must be null]
expected: FAIL
[ondrop: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondrop: the default value must be null]
expected: FAIL
[ondurationchange: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ondurationchange: the default value must be null]
expected: FAIL
[onemptied: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onemptied: the default value must be null]
expected: FAIL
[onended: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onended: the default value must be null]
expected: FAIL
[onfocus: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onfocus: the default value must be null]
expected: FAIL
[onformdata: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onformdata: the default value must be null]
expected: FAIL
[oninput: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oninput: the default value must be null]
expected: FAIL
[oninvalid: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oninvalid: the default value must be null]
expected: FAIL
[onkeydown: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onkeydown: the default value must be null]
expected: FAIL
[onkeypress: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onkeypress: the default value must be null]
expected: FAIL
[onkeyup: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onkeyup: the default value must be null]
expected: FAIL
[onload: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onload: the default value must be null]
expected: FAIL
[onloadeddata: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onloadeddata: the default value must be null]
expected: FAIL
[onloadedmetadata: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onloadedmetadata: the default value must be null]
expected: FAIL
[onloadstart: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onloadstart: the default value must be null]
expected: FAIL
[onmousedown: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmousedown: the default value must be null]
expected: FAIL
[onmouseenter: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmouseenter: the default value must be null]
expected: FAIL
[onmouseleave: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmouseleave: the default value must be null]
expected: FAIL
[onmousemove: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmousemove: the default value must be null]
expected: FAIL
[onmouseout: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmouseout: the default value must be null]
expected: FAIL
[onmouseover: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmouseover: the default value must be null]
expected: FAIL
[onmouseup: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onmouseup: the default value must be null]
expected: FAIL
[onpause: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onpause: the default value must be null]
expected: FAIL
[onplay: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onplay: the default value must be null]
expected: FAIL
[onplaying: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onplaying: the default value must be null]
expected: FAIL
[onprogress: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onprogress: the default value must be null]
expected: FAIL
[onratechange: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onratechange: the default value must be null]
expected: FAIL
[onreset: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onreset: the default value must be null]
expected: FAIL
[onresize: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onresize: the default value must be null]
expected: FAIL
[onscroll: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onscroll: the default value must be null]
expected: FAIL
[onsecuritypolicyviolation: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onsecuritypolicyviolation: the default value must be null]
expected: FAIL
[onseeked: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onseeked: the default value must be null]
expected: FAIL
[onseeking: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onseeking: the default value must be null]
expected: FAIL
[onselect: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onselect: the default value must be null]
expected: FAIL
[onslotchange: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onslotchange: the default value must be null]
expected: FAIL
[onstalled: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onstalled: the default value must be null]
expected: FAIL
[onsubmit: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onsubmit: the default value must be null]
expected: FAIL
[onsuspend: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onsuspend: the default value must be null]
expected: FAIL
[ontimeupdate: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ontimeupdate: the default value must be null]
expected: FAIL
[ontoggle: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[ontoggle: the default value must be null]
expected: FAIL
[onvolumechange: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onvolumechange: the default value must be null]
expected: FAIL
[onwaiting: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onwaiting: the default value must be null]
expected: FAIL
[onwebkitanimationend: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onwebkitanimationend: the default value must be null]
expected: FAIL
[onwebkitanimationend: the content attribute must execute when an event is dispatched]
expected: FAIL
[onwebkitanimationiteration: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onwebkitanimationiteration: the default value must be null]
expected: FAIL
[onwebkitanimationiteration: the content attribute must execute when an event is dispatched]
expected: FAIL
[onwebkitanimationstart: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onwebkitanimationstart: the default value must be null]
expected: FAIL
[onwebkitanimationstart: the content attribute must execute when an event is dispatched]
expected: FAIL
[onwebkittransitionend: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onwebkittransitionend: the default value must be null]
expected: FAIL
[onwebkittransitionend: the content attribute must execute when an event is dispatched]
expected: FAIL
[onwheel: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onwheel: the default value must be null]
expected: FAIL
[onbeforeinput: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onbeforeinput: the default value must be null]
expected: FAIL
[onbeforematch: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onbeforematch: the default value must be null]
expected: FAIL
[onscrollend: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onscrollend: the default value must be null]
expected: FAIL
[oncopy: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncopy: the default value must be null]
expected: FAIL
[oncut: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncut: the default value must be null]
expected: FAIL
[onpaste: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onpaste: the default value must be null]
expected: FAIL
[onbeforetoggle: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[onbeforetoggle: the default value must be null]
expected: FAIL
[onwebkitanimationend: dispatching an Event at a <meta> element must trigger element.onwebkitanimationend]
expected: FAIL
@ -466,9 +22,3 @@
[onwebkittransitionend: dispatching an Event at a <meta> element must trigger element.onwebkittransitionend]
expected: FAIL
[oncommand: must be on the appropriate locations for GlobalEventHandlers]
expected: FAIL
[oncommand: the default value must be null]
expected: FAIL

View file

@ -13582,7 +13582,7 @@
]
],
"interfaces.https.html": [
"72918e837726b58740a491a9223eeeb625055ae5",
"eee8c799727b91e00b512795756b693a5f121f86",
[
null,
{}

View file

@ -315,6 +315,7 @@ test_interfaces([
"SubtleCrypto",
"SVGElement",
"SVGGraphicsElement",
"SVGImageElement",
"SVGRect",
"SVGSVGElement",
"Text",