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 devtools_traits::AttrInfo;
use dom_struct::dom_struct; 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::attr::{AttrIdentifier, AttrValue};
use style::values::GenericAtomIdent; use style::values::GenericAtomIdent;
use stylo_atoms::Atom; use stylo_atoms::Atom;
@ -179,7 +179,7 @@ impl Attr {
assert_eq!(Some(owner), self.owner().as_deref()); assert_eq!(Some(owner), self.owner().as_deref());
owner.will_mutate_attr(self); owner.will_mutate_attr(self);
self.swap_value(&mut value); self.swap_value(&mut value);
if *self.namespace() == ns!() { if is_relevant_attribute(self.namespace(), self.local_name()) {
vtable_for(owner.upcast()).attribute_mutated( vtable_for(owner.upcast()).attribute_mutated(
self, self,
AttributeMutation::Set(Some(&value)), AttributeMutation::Set(Some(&value)),
@ -283,3 +283,9 @@ impl<'dom> AttrHelpersForLayout<'dom> for LayoutDom<'dom, Attr> {
&self.unsafe_get().identifier.namespace.0 &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::htmlunknownelement::HTMLUnknownElement;
use crate::dom::htmlvideoelement::HTMLVideoElement; use crate::dom::htmlvideoelement::HTMLVideoElement;
use crate::dom::svgelement::SVGElement; use crate::dom::svgelement::SVGElement;
use crate::dom::svgimageelement::SVGImageElement;
use crate::dom::svgsvgelement::SVGSVGElement; use crate::dom::svgsvgelement::SVGSVGElement;
use crate::realms::{InRealm, enter_realm}; use crate::realms::{InRealm, enter_realm};
use crate::script_runtime::CanGc; use crate::script_runtime::CanGc;
@ -114,6 +115,7 @@ fn create_svg_element(
} }
match name.local { match name.local {
local_name!("image") => make!(SVGImageElement),
local_name!("svg") => make!(SVGSVGElement), local_name!("svg") => make!(SVGSVGElement),
_ => make!(SVGElement), _ => make!(SVGElement),
} }

View file

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

View file

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

View file

@ -4206,6 +4206,9 @@ impl From<ElementTypeIdWrapper> for LayoutElementType {
ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement) => { ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement) => {
LayoutElementType::HTMLTextAreaElement LayoutElementType::HTMLTextAreaElement
}, },
ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGImageElement,
)) => LayoutElementType::SVGImageElement,
ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement( ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGSVGElement, SVGGraphicsElementTypeId::SVGSVGElement,
)) => LayoutElementType::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 // FIXME: The nonce should be stored in an internal slot instead of an
// attribute (https://html.spec.whatwg.org/multipage/#cryptographicnonce) // attribute (https://html.spec.whatwg.org/multipage/#cryptographicnonce)
// https://html.spec.whatwg.org/multipage/#dom-noncedelement-nonce // 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::node::{BindContext, ChildrenMutation, CloneChildrenFlag, Node, UnbindContext};
use crate::dom::shadowroot::ShadowRoot; use crate::dom::shadowroot::ShadowRoot;
use crate::dom::svgelement::SVGElement; use crate::dom::svgelement::SVGElement;
use crate::dom::svgimageelement::SVGImageElement;
use crate::dom::svgsvgelement::SVGSVGElement; use crate::dom::svgsvgelement::SVGSVGElement;
/// Trait to allow DOM nodes to opt-in to overriding (or adding to) common /// 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)) => { NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTitleElement)) => {
node.downcast::<HTMLTitleElement>().unwrap() as &dyn VirtualMethods 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( NodeTypeId::Element(ElementTypeId::SVGElement(SVGElementTypeId::SVGGraphicsElement(
SVGGraphicsElementTypeId::SVGSVGElement, SVGGraphicsElementTypeId::SVGSVGElement,
))) => node.downcast::<SVGSVGElement>().unwrap() as &dyn VirtualMethods, ))) => node.downcast::<SVGSVGElement>().unwrap() as &dyn VirtualMethods,

View file

@ -18,7 +18,7 @@ interface SVGElement : Element {
//void blur(); //void blur();
}; };
//SVGElement includes GlobalEventHandlers; SVGElement includes GlobalEventHandlers;
//SVGElement includes SVGElementInstance; //SVGElement includes SVGElementInstance;
SVGElement includes ElementCSSInlineStyle; SVGElement includes ElementCSSInlineStyle;
SVGElement includes HTMLOrSVGElement; 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, HTMLTableRowElement,
HTMLTableSectionElement, HTMLTableSectionElement,
HTMLTextAreaElement, HTMLTextAreaElement,
SVGImageElement,
SVGSVGElement, SVGSVGElement,
} }

View file

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

View file

@ -1,55 +1,54 @@
[svg-image.sub.html] [svg-image.sub.html]
expected: TIMEOUT
[sec-fetch-site - Not sent to non-trustworthy same-origin destination no attributes] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [sec-fetch-site - HTTPS downgrade (header not sent) no attributes]
expected: NOTRUN expected: FAIL
[sec-fetch-site - HTTPS upgrade no attributes] [sec-fetch-site - HTTPS upgrade no attributes]
expected: NOTRUN expected: FAIL
[sec-fetch-site - HTTPS downgrade-upgrade no attributes] [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] [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] [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] [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] [createImageBitmap-drawImage.html]
expected: ERROR expected: ERROR
[createImageBitmap from an OffscreenCanvas resized, and drawImage on the created ImageBitmap] [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] [createImageBitmap from a vector HTMLImageElement resized, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
[createImageBitmap from an OffscreenCanvas, and drawImage on the created ImageBitmap] [createImageBitmap from an OffscreenCanvas, and drawImage on the created ImageBitmap]
expected: NOTRUN expected: FAIL
[createImageBitmap from an HTMLCanvasElement, and drawImage on the created ImageBitmap] [createImageBitmap from an HTMLCanvasElement, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -22,34 +22,34 @@
expected: FAIL expected: FAIL
[createImageBitmap from an ImageData scaled down, and drawImage on the created ImageBitmap] [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] [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] [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] [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] [createImageBitmap from an HTMLCanvasElement scaled down, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
[createImageBitmap from a vector SVGImageElement, and drawImage on the created ImageBitmap] [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] [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] [createImageBitmap from an HTMLVideoElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
[createImageBitmap from a bitmap SVGImageElement scaled up, and drawImage on the created ImageBitmap] [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] [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] [createImageBitmap from a bitmap HTMLImageElement scaled up, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -58,10 +58,10 @@
expected: FAIL expected: FAIL
[createImageBitmap from a vector SVGImageElement scaled down, and drawImage on the created ImageBitmap] [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] [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] [createImageBitmap from a bitmap HTMLImageElement scaled down, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -73,16 +73,16 @@
expected: FAIL expected: FAIL
[createImageBitmap from a Blob scaled down, and drawImage on the created ImageBitmap] [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] [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] [createImageBitmap from a vector HTMLImageElement scaled down, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
[createImageBitmap from an ImageData, and drawImage on the created ImageBitmap] [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] [createImageBitmap from an HTMLCanvasElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -91,16 +91,16 @@
expected: FAIL expected: FAIL
[createImageBitmap from a vector SVGImageElement scaled up, and drawImage on the created ImageBitmap] [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] [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] [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] [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] [createImageBitmap from an HTMLVideoElement scaled up, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -109,7 +109,7 @@
expected: FAIL expected: FAIL
[createImageBitmap from a Blob, and drawImage on the created ImageBitmap] [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] [createImageBitmap from an HTMLVideoElement resized, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -118,31 +118,31 @@
expected: FAIL expected: FAIL
[createImageBitmap from an ImageBitmap scaled down, and drawImage on the created ImageBitmap] [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] [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] [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] [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] [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] [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] [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] [createImageBitmap from an HTMLCanvasElement scaled up, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
[createImageBitmap from a Blob resized, and drawImage on the created ImageBitmap] [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] [createImageBitmap from an HTMLVideoElement from a data URL, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -154,10 +154,10 @@
expected: FAIL expected: FAIL
[createImageBitmap from an ImageBitmap with negative sw/sh, and drawImage on the created ImageBitmap] [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] [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] [createImageBitmap from a vector HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL

View file

@ -4,7 +4,7 @@
expected: NOTRUN expected: NOTRUN
[createImageBitmap from a vector SVGImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap] [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] [createImageBitmap from an HTMLCanvasElement imageOrientation: "none", and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -16,7 +16,7 @@
expected: FAIL expected: FAIL
[createImageBitmap from an OffscreenCanvas imageOrientation: "flipY", and drawImage on the created ImageBitmap] [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] [createImageBitmap from a vector HTMLImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -25,7 +25,7 @@
expected: FAIL expected: FAIL
[createImageBitmap from a Blob imageOrientation: "flipY", and drawImage on the created ImageBitmap] [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] [createImageBitmap from an HTMLCanvasElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -34,7 +34,7 @@
expected: FAIL expected: FAIL
[createImageBitmap from an ImageData imageOrientation: "flipY", and drawImage on the created ImageBitmap] [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] [createImageBitmap from a bitmap HTMLImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -43,7 +43,7 @@
expected: NOTRUN expected: NOTRUN
[createImageBitmap from an ImageBitmap imageOrientation: "flipY", and drawImage on the created ImageBitmap] [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] [createImageBitmap from a vector HTMLImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
expected: FAIL expected: FAIL
@ -61,7 +61,7 @@
expected: FAIL expected: FAIL
[createImageBitmap from a bitmap SVGImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap] [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] [createImageBitmap from a bitmap SVGImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
expected: TIMEOUT expected: TIMEOUT
@ -82,19 +82,19 @@
expected: FAIL expected: FAIL
[createImageBitmap from a bitmap SVGImageElement imageOrientation: "from-image", and drawImage on the created ImageBitmap] [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] [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] [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] [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] [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] [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] [createImageBitmap-invalid-args.html]
expected: ERROR expected: CRASH
[createImageBitmap with a vector HTMLImageElement source and sw set to 0] [createImageBitmap with a vector HTMLImageElement source and sw set to 0]
expected: FAIL expected: FAIL

View file

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

View file

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

View file

@ -1,22 +1,21 @@
[createImageBitmap-transfer.html] [createImageBitmap-transfer.html]
expected: ERROR
[Transfer ImageBitmap created from a vector HTMLImageElement] [Transfer ImageBitmap created from a vector HTMLImageElement]
expected: FAIL expected: FAIL
[Transfer ImageBitmap created from an ImageData] [Transfer ImageBitmap created from an ImageData]
expected: NOTRUN expected: FAIL
[Transfer ImageBitmap created from a vector SVGImageElement] [Transfer ImageBitmap created from a vector SVGImageElement]
expected: NOTRUN expected: FAIL
[Transfer ImageBitmap created from a Blob] [Transfer ImageBitmap created from a Blob]
expected: NOTRUN expected: FAIL
[Transfer ImageBitmap created from an HTMLCanvasElement] [Transfer ImageBitmap created from an HTMLCanvasElement]
expected: FAIL expected: FAIL
[Transfer ImageBitmap created from an OffscreenCanvas] [Transfer ImageBitmap created from an OffscreenCanvas]
expected: NOTRUN expected: FAIL
[Transfer ImageBitmap created from a bitmap HTMLImageElement] [Transfer ImageBitmap created from a bitmap HTMLImageElement]
expected: FAIL expected: FAIL
@ -25,13 +24,13 @@
expected: FAIL expected: FAIL
[Transfer ImageBitmap created from a bitmap SVGImageElement] [Transfer ImageBitmap created from a bitmap SVGImageElement]
expected: TIMEOUT expected: FAIL
[Transfer ImageBitmap created from an ImageBitmap] [Transfer ImageBitmap created from an ImageBitmap]
expected: NOTRUN expected: FAIL
[Transfer ImageBitmap created from an HTMLVideoElement] [Transfer ImageBitmap created from an HTMLVideoElement]
expected: FAIL expected: FAIL
[Transferring a non-origin-clean ImageBitmap throws.] [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] [External interface: window.external must inherit property "IsSearchProviderInstalled()" with the proper type]
expected: FAIL 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] [SVGElement interface: attribute dataset]
expected: FAIL expected: FAIL
@ -5444,9 +5219,6 @@
[CommandEvent interface: attribute command] [CommandEvent interface: attribute command]
expected: FAIL expected: FAIL
[SVGElement interface: attribute oncommand]
expected: FAIL
[CanvasRenderingContext2D interface: attribute lang] [CanvasRenderingContext2D interface: attribute lang]
expected: FAIL expected: FAIL

View file

@ -1,16 +1,16 @@
[security.pattern.fillStyle.sub.html] [security.pattern.fillStyle.sub.html]
expected: TIMEOUT expected: TIMEOUT
[cross-origin SVGImageElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean] [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] [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] [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] [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] [unclean HTMLCanvasElement: Setting fillStyle to an origin-unclean pattern makes the canvas origin-unclean]
expected: NOTRUN expected: NOTRUN

View file

@ -1,460 +1,16 @@
[event-handler-all-global-events.html] [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] [onwebkitanimationend: the content attribute must execute when an event is dispatched]
expected: FAIL 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] [onwebkitanimationiteration: the content attribute must execute when an event is dispatched]
expected: FAIL 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] [onwebkitanimationstart: the content attribute must execute when an event is dispatched]
expected: FAIL 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] [onwebkittransitionend: the content attribute must execute when an event is dispatched]
expected: FAIL 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] [onwebkitanimationend: dispatching an Event at a <meta> element must trigger element.onwebkitanimationend]
expected: FAIL expected: FAIL
@ -466,9 +22,3 @@
[onwebkittransitionend: dispatching an Event at a <meta> element must trigger element.onwebkittransitionend] [onwebkittransitionend: dispatching an Event at a <meta> element must trigger element.onwebkittransitionend]
expected: FAIL 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": [ "interfaces.https.html": [
"72918e837726b58740a491a9223eeeb625055ae5", "eee8c799727b91e00b512795756b693a5f121f86",
[ [
null, null,
{} {}

View file

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