1
0
mirror of https://github.com/roytam1/UXP.git synced 2026-05-26 13:58:49 +00:00

Bug 1404842 - Implement Element.attachShadow and Element.slot

Tag #1375
This commit is contained in:
Matt A. Tobin
2020-04-17 07:04:42 -04:00
committed by Roy Tam
parent efb5979ad5
commit 67c4d022dc
48 changed files with 134 additions and 818 deletions
+82 -2
View File
@@ -1092,9 +1092,78 @@ Element::RemoveFromIdTable()
}
}
void
Element::SetSlot(const nsAString& aName, ErrorResult& aError)
{
aError = SetAttr(kNameSpaceID_None, nsGkAtoms::slot, aName, true);
}
void
Element::GetSlot(nsAString& aName)
{
GetAttr(kNameSpaceID_None, nsGkAtoms::slot, aName);
}
// https://dom.spec.whatwg.org/#dom-element-attachshadow
already_AddRefed<ShadowRoot>
Element::AttachShadow(const ShadowRootInit& aInit, ErrorResult& aError)
{
/**
* 1. If context objects namespace is not the HTML namespace,
* then throw a "NotSupportedError" DOMException.
*/
if (!IsHTMLElement()) {
aError.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
return nullptr;
}
/**
* 2. If context objects local name is not
* a valid custom element name, "article", "aside", "blockquote",
* "body", "div", "footer", "h1", "h2", "h3", "h4", "h5", "h6",
* "header", "main" "nav", "p", "section", or "span",
* then throw a "NotSupportedError" DOMException.
*/
nsIAtom* nameAtom = NodeInfo()->NameAtom();
if (!(nsContentUtils::IsCustomElementName(nameAtom) ||
nameAtom == nsGkAtoms::article ||
nameAtom == nsGkAtoms::aside ||
nameAtom == nsGkAtoms::blockquote ||
nameAtom == nsGkAtoms::body ||
nameAtom == nsGkAtoms::div ||
nameAtom == nsGkAtoms::footer ||
nameAtom == nsGkAtoms::h1 ||
nameAtom == nsGkAtoms::h2 ||
nameAtom == nsGkAtoms::h3 ||
nameAtom == nsGkAtoms::h4 ||
nameAtom == nsGkAtoms::h5 ||
nameAtom == nsGkAtoms::h6 ||
nameAtom == nsGkAtoms::header ||
nameAtom == nsGkAtoms::main ||
nameAtom == nsGkAtoms::nav ||
nameAtom == nsGkAtoms::p ||
nameAtom == nsGkAtoms::section ||
nameAtom == nsGkAtoms::span)) {
aError.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
return nullptr;
}
return AttachShadowInternal(aInit.mMode == ShadowRootMode::Closed, aError);
}
already_AddRefed<ShadowRoot>
Element::CreateShadowRoot(ErrorResult& aError)
{
return AttachShadowInternal(false, aError);
}
already_AddRefed<ShadowRoot>
Element::AttachShadowInternal(bool aClosed, ErrorResult& aError)
{
/**
* 3. If context object is a shadow host, then throw
* an "InvalidStateError" DOMException.
*/
if (GetShadowRoot()) {
aError.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
return nullptr;
@@ -1131,11 +1200,19 @@ Element::CreateShadowRoot(ErrorResult& aError)
// Calling SetPrototypeBinding takes ownership of protoBinding.
docInfo->SetPrototypeBinding(NS_LITERAL_CSTRING("shadowroot"), protoBinding);
RefPtr<ShadowRoot> shadowRoot = new ShadowRoot(this, nodeInfo.forget(),
protoBinding);
/**
* 4. Let shadow be a new shadow root whose node document is
* context objects node document, host is context object,
* and mode is inits mode.
*/
RefPtr<ShadowRoot> shadowRoot =
new ShadowRoot(this, aClosed, nodeInfo.forget(), protoBinding);
shadowRoot->SetIsComposedDocParticipant(IsInComposedDoc());
/**
* 5. Set context objects shadow root to shadow.
*/
SetShadowRoot(shadowRoot);
// xblBinding takes ownership of docInfo.
@@ -1145,6 +1222,9 @@ Element::CreateShadowRoot(ErrorResult& aError)
SetXBLBinding(xblBinding);
/**
* 6. Return shadow.
*/
return shadowRoot.forget();
}
+10
View File
@@ -471,6 +471,9 @@ protected:
mState &= ~aStates;
}
already_AddRefed<ShadowRoot> AttachShadowInternal(bool aClosed,
ErrorResult& aError);
private:
// Need to allow the ESM, nsGlobalWindow, and the focus manager to
// set our state
@@ -921,6 +924,13 @@ public:
already_AddRefed<DOMRectList> GetClientRects();
already_AddRefed<DOMRect> GetBoundingClientRect();
// Shadow DOM v1
already_AddRefed<ShadowRoot> AttachShadow(const ShadowRootInit& aInit,
ErrorResult& aError);
void SetSlot(const nsAString& aName, ErrorResult& aError);
void GetSlot(nsAString& aName);
// [deprecated] Shadow DOM v0
already_AddRefed<ShadowRoot> CreateShadowRoot(ErrorResult& aError);
already_AddRefed<DestinationInsertionPointList> GetDestinationInsertionPoints();
+2 -1
View File
@@ -51,7 +51,7 @@ NS_INTERFACE_MAP_END_INHERITING(DocumentFragment)
NS_IMPL_ADDREF_INHERITED(ShadowRoot, DocumentFragment)
NS_IMPL_RELEASE_INHERITED(ShadowRoot, DocumentFragment)
ShadowRoot::ShadowRoot(Element* aElement,
ShadowRoot::ShadowRoot(Element* aElement, bool aClosed,
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
nsXBLPrototypeBinding* aProtoBinding)
: DocumentFragment(aNodeInfo)
@@ -60,6 +60,7 @@ ShadowRoot::ShadowRoot(Element* aElement,
, mIsComposedDocParticipant(false)
{
SetHost(aElement);
mMode = aClosed ? ShadowRootMode::Closed : ShadowRootMode::Open;
// Nodes in a shadow tree should never store a value
// in the subtree root pointer, nodes in the shadow tree
+11 -2
View File
@@ -41,10 +41,18 @@ public:
NS_DECL_NSIMUTATIONOBSERVER_CONTENTINSERTED
NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED
ShadowRoot(Element* aElement,
ShadowRoot(Element* aElement, bool aClosed,
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
nsXBLPrototypeBinding* aProtoBinding);
// Shadow DOM v1
Element* Host();
ShadowRootMode Mode()
{
return mMode;
}
// [deprecated] Shadow DOM v0
void AddToIdTable(Element* aElement, nsIAtom* aId);
void RemoveFromIdTable(Element* aElement, nsIAtom* aId);
void InsertSheet(StyleSheet* aSheet, nsIContent* aLinkingContent);
@@ -121,7 +129,6 @@ public:
GetElementsByClassName(const nsAString& aClasses);
void GetInnerHTML(nsAString& aInnerHTML);
void SetInnerHTML(const nsAString& aInnerHTML, ErrorResult& aError);
Element* Host();
void StyleSheetChanged();
bool IsComposedDocParticipant() { return mIsComposedDocParticipant; }
@@ -133,6 +140,8 @@ public:
protected:
virtual ~ShadowRoot();
ShadowRootMode mMode;
// An array of content insertion points that are a descendant of the ShadowRoot
// sorted in tree order. Insertion points are responsible for notifying
// the ShadowRoot when they are removed or added as a descendant. The insertion
+17 -5
View File
@@ -228,16 +228,28 @@ partial interface Element {
NodeList querySelectorAll(DOMString selectors);
};
// http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-element-interface
// https://dom.spec.whatwg.org/#dictdef-shadowrootinit
dictionary ShadowRootInit {
required ShadowRootMode mode;
};
// https://dom.spec.whatwg.org/#element
partial interface Element {
[Throws,Func="nsDocument::IsWebComponentsEnabled"]
ShadowRoot createShadowRoot();
[Func="nsDocument::IsWebComponentsEnabled"]
NodeList getDestinationInsertionPoints();
// Shadow DOM v1
[Throws, Pref="nsDocument::IsWebComponentsEnabled"]
ShadowRoot attachShadow(ShadowRootInit shadowRootInitDict);
[Func="nsDocument::IsWebComponentsEnabled"]
readonly attribute ShadowRoot? shadowRoot;
[Pref="nsDocument::IsWebComponentsEnabled"]
readonly attribute HTMLSlotElement? assignedSlot;
[CEReactions, Unscopable, SetterThrows, Pref="nsDocument::IsWebComponentsEnabled"]
attribute DOMString slot;
// [deprecated] Shadow DOM v0
[Throws, Pref="nsDocument::IsWebComponentsEnabled"]
ShadowRoot createShadowRoot();
[Pref="nsDocument::IsWebComponentsEnabled"]
NodeList getDestinationInsertionPoints();
};
Element implements ChildNode;
+12 -1
View File
@@ -10,16 +10,27 @@
* liability, trademark and document use rules apply.
*/
// https://dom.spec.whatwg.org/#enumdef-shadowrootmode
enum ShadowRootMode {
"open",
"closed"
};
// https://dom.spec.whatwg.org/#shadowroot
[Func="nsDocument::IsWebComponentsEnabled"]
interface ShadowRoot : DocumentFragment
{
// Shadow DOM v1
readonly attribute ShadowRootMode mode;
readonly attribute Element host;
// [deprecated] Shadow DOM v0
Element? getElementById(DOMString elementId);
HTMLCollection getElementsByTagName(DOMString localName);
HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
HTMLCollection getElementsByClassName(DOMString classNames);
[CEReactions, SetterThrows, TreatNullAs=EmptyString]
attribute DOMString innerHTML;
readonly attribute Element host;
attribute boolean applyAuthorStyles;
readonly attribute StyleSheetList styleSheets;
};
@@ -1,8 +0,0 @@
[Document-prototype-adoptNode.html]
type: testharness
[adoptNode on a shadow root in open mode must throw a HierarchyRequestError]
expected: FAIL
[adoptNode on a shadow root in closed mode must throw a HierarchyRequestError]
expected: FAIL
@@ -1,8 +0,0 @@
[Document-prototype-importNode.html]
type: testharness
[importNode on a shadow root in open mode must throw a NotSupportedError]
expected: FAIL
[importNode on a shadow root in closed mode must throw a NotSupportedError]
expected: FAIL
@@ -1,14 +0,0 @@
[Element-interface-attachShadow.html]
type: testharness
[Check the existence of Element.attachShadow]
expected: FAIL
[Element.attachShadow must create an instance of ShadowRoot]
expected: FAIL
[Element.attachShadow must throw a InvalidStateError if the context object already hosts a shadow tree]
expected: FAIL
[Element.attachShadow must throw a NotSupportedError for button, details, input, marquee, meter, progress, select, textarea, and keygen elements]
expected: FAIL
@@ -1,26 +0,0 @@
[scroll-to-the-fragment-in-shadow-tree.html]
type: testharness
[The user agent should not scroll to an element with an ID exactly equal to the decoded fragid in an open shadow tree]
expected: FAIL
[The user agent should not scroll to an element with an ID exactly equal to the decoded fragid in a closed shadow tree]
expected: FAIL
[The user agent should not scroll to an anchor element with a name attribute exactly equal to the decoded fragid in an open shadow tree]
expected: FAIL
[The user agent should not scroll to an anchor element with a name attribute exactly equal to the decoded fragid in a closed shadow tree]
expected: FAIL
[The user agent should scroll to an element with an ID exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside an open shadow tree earlier in tree order]
expected: FAIL
[The user agent should scroll to an element with an ID exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside a closed shadow tree earlier in tree order]
expected: FAIL
[The user agent should scroll to an anchor element with a name attribute exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside an open shadow tree earlier in tree order]
expected: FAIL
[The user agent should scroll to an anchor element with a name attribute exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside a closed shadow tree earlier in tree order]
expected: FAIL
@@ -1,5 +0,0 @@
[test-001.html]
type: testharness
[A_10_02_02_01_T01]
expected: FAIL
@@ -1,5 +0,0 @@
[test-002.html]
type: testharness
[A_10_02_02_02_T01]
expected: FAIL
@@ -1,5 +0,0 @@
[test-009.html]
type: testharness
[A_10_01_01_04_01_T01]
expected: FAIL
@@ -1,8 +0,0 @@
[test-010.html]
type: testharness
[A_10_01_01_04_02_T01_01]
expected: FAIL
[A_10_01_01_04_02_T01_02]
expected: FAIL
@@ -1,8 +0,0 @@
[test-011.html]
type: testharness
[A_10_01_01_05_01_T01]
expected: FAIL
[A_10_01_01_05_01_T02]
expected: FAIL
@@ -1,5 +0,0 @@
[test-012.html]
type: testharness
[A_10_01_01_06_T01]
expected: FAIL
@@ -1,5 +0,0 @@
[test-013.html]
type: testharness
[A_10_01_01_07_T01]
expected: FAIL
@@ -1,8 +0,0 @@
[test-001.html]
type: testharness
[A_10_01_02_01_T01]
expected: FAIL
[A_10_01_02_01_T02]
expected: FAIL
@@ -1,5 +0,0 @@
[test-002.html]
type: testharness
[A_05_05_02_T01]
expected: FAIL
@@ -1,8 +0,0 @@
[test-001.html]
type: testharness
[A_05_01_01_T1]
expected: FAIL
[A_05_01_01_T2]
expected: FAIL
@@ -1,5 +0,0 @@
[test-003.html]
type: testharness
[A_05_01_03_T01]
expected: FAIL
@@ -1,20 +0,0 @@
[test-001.html]
type: testharness
[A_05_03_01_T01]
expected: FAIL
[A_05_03_01_T02]
expected: FAIL
[A_05_03_01_T03]
expected: FAIL
[A_05_03_01_T04]
expected: FAIL
[A_05_03_01_T05]
expected: FAIL
[A_05_03_01_T06]
expected: FAIL
@@ -1,5 +0,0 @@
[test-002.html]
type: testharness
[A_05_03_02_T01]
expected: FAIL
@@ -1,5 +0,0 @@
[test-003.html]
type: testharness
[A_05_03_03_T01]
expected: FAIL
@@ -1,5 +0,0 @@
[test-003.html]
type: testharness
[A_05_02_03_T01]
expected: FAIL
@@ -1,8 +0,0 @@
[test-001.html]
type: testharness
[A_08_02_01_T01]
expected: FAIL
[A_08_02_01_T02]
expected: FAIL
@@ -1,11 +0,0 @@
[test-002.html]
type: testharness
[A_08_02_02_T01]
expected: FAIL
[A_08_02_02_T02]
expected: FAIL
[A_08_02_02_T03]
expected: FAIL
@@ -1,3 +0,0 @@
[nested_tree_reftest.html]
type: reftest
expected: FAIL
@@ -1,3 +0,0 @@
[shadow-root-001.html]
type: reftest
expected: FAIL
@@ -1,44 +0,0 @@
[dom-tree-accessors-001.html]
type: testharness
[<head> and <body> in a shadow tree should not be accessible from owner document's "head" and "body" properties, respectively.]
expected: FAIL
[The content of title element in a shadow tree should not be accessible from owner document's "title" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "images" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "embeds" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "plugins" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "links" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "forms" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "scripts" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's getElementsByName() method.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "anchors" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's "all" attribute.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's getElementsByTagName() method.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's getElementsByTagNameNS() method.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's getElementById() method.]
expected: FAIL
@@ -1,11 +0,0 @@
[dom-tree-accessors-002.html]
type: testharness
[Elements in a shadow tree should be accessible via shadow root's querySelectorAll() DOM tree accessor.]
expected: FAIL
[Elements with a specific class in a shadow tree should be accessible viashadow root's querySelectorAll() DOM tree accessor.]
expected: FAIL
[Elements in a shadow tree should be accessible via shadow root's getElementById() DOM tree accessor.]
expected: FAIL
@@ -1,20 +0,0 @@
[ownerdocument-001.html]
type: testharness
[ownerDocument property of a shadow root should be the document of the shadow host, regardless of the location of the shadow host.]
expected: FAIL
[ownerDocument property of elements in a shadow tree should match the document of the shadow host, regardless of the element's location in a shadow tree.]
expected: FAIL
[Elements added to a shadow tree should automatically get a valid ownerDocument.]
expected: FAIL
[ownerDocument property of an element in a shadow tree should be the document of the shadow host, even if the host element is created from another document.]
expected: FAIL
[All children nodes of a shadow root get a valid ownerDocument when added to a shadow tree.]
expected: FAIL
[ownerDocument property of a node should remain the same, even if its child is adopted into a shadow tree.]
expected: FAIL
@@ -1,53 +0,0 @@
[ownerdocument-002.html]
type: testharness
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "article" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "aside" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "blockquote" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "body" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "div" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "footer" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "h1" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "h2" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "h3" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "h4" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "h5" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "h6" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "header" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "nav" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "p" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "section" element.]
expected: FAIL
[ownerDocument property of any elements in a shadow tree should match the document of the shadow host, when the host is a "span" element.]
expected: FAIL
@@ -1,8 +0,0 @@
[selectors-api-001.html]
type: testharness
[Elements in a shadow tree should not be accessible from owner document's querySelector() method.]
expected: FAIL
[Elements in a shadow tree should not be accessible from owner document's querySelectorAll() method.]
expected: FAIL
@@ -1,8 +0,0 @@
[selectors-api-002.html]
type: testharness
[Elements in a shadow tree should be accessible from shadow root's querySelector() method.]
expected: FAIL
[Elements in a shadow tree should be accessible from shadow root's querySelectorAll() method.]
expected: FAIL
@@ -1,14 +0,0 @@
[shadow-root-001.html]
type: testharness
[The parentNode attribute of a shadow root must always return null.]
expected: FAIL
[The parentElement attribute of a shadow root must always return null.]
expected: FAIL
[The parentNode attribute of a shadow root must always return null, even if the shadow root is nested inside another shadow root.]
expected: FAIL
[The parentElement attribute of a shadow root must always return null, even if the shadow root is nested inside another shadow root.]
expected: FAIL
@@ -1,8 +0,0 @@
[test-005.html]
type: testharness
[A_04_01_05_T02]
expected: FAIL
[A_04_01_05_T01]
expected: FAIL
@@ -1,8 +1,5 @@
[test-007.html]
type: testharness
[A_04_01_07_T01]
expected: FAIL
[A_04_01_07_T02]
expected: FAIL
@@ -1,44 +0,0 @@
[test-009.html]
type: testharness
[A_04_01_09_T12]
expected: FAIL
[A_04_01_09_T01]
expected: FAIL
[A_04_01_09_T03]
expected: FAIL
[A_04_01_09_T05]
expected: FAIL
[A_04_01_09_T06]
expected: FAIL
[A_04_01_09_T07]
expected: FAIL
[A_04_01_09_T08]
expected: FAIL
[A_04_01_09_T09]
expected: FAIL
[A_04_01_09_T10]
expected: FAIL
[A_04_01_09_T11]
expected: FAIL
[A_04_01_09_T13]
expected: FAIL
[A_04_01_09_T14]
expected: FAIL
[A_04_01_09_T15]
expected: FAIL
[A_04_01_09_T16]
expected: FAIL
@@ -1,5 +0,0 @@
[test-011.html]
type: testharness
[A_04_01_11_T2]
expected: FAIL
@@ -1,5 +0,0 @@
[window-named-properties-001.html]
type: testharness
[An iframe element in a shadow tree should not be accessible from window's named properties with its "name" attribute value.]
expected: FAIL
@@ -1,26 +0,0 @@
[window-named-properties-002.html]
type: testharness
["a" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["applet" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["area" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["embed" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["form" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["frameset" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["img" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["object" element with name attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
@@ -1,323 +0,0 @@
[window-named-properties-003.html]
type: testharness
["a" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["abbr" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["address" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["area" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["article" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["aside" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["audio" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["b" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["base" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["bdi" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["bdo" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["blockquote" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["body" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["br" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["button" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["canvas" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["caption" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["cite" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["code" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["col" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["colgroup" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["command" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["datalist" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["dd" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["del" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["details" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["dfn" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["dialog" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["div" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["dl" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["dt" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["em" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["embed" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["fieldset" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["figcaption" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["figure" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["footer" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["form" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["h1" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["h2" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["h3" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["h4" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["h5" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["h6" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["head" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["header" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["hgroup" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["hr" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["html" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["i" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["iframe" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["img" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["input" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["ins" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["kbd" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["keygen" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["label" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["legend" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["li" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["link" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["map" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["mark" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["menu" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["meta" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["meter" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["nav" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["noscript" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["object" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["ol" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["optgroup" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["option" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["output" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["p" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["param" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["pre" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["progress" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["q" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["rp" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["rt" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["ruby" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["s" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["samp" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["script" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["section" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["select" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["small" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["source" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["span" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["strong" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["style" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["sub" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["table" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["tbody" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["td" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["textarea" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["tfoot" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["th" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["thead" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["time" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["title" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["tr" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["track" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["u" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["ul" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["var" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["video" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
["wbr" element with id attribute in a shadow tree should not be accessible from window object's named property.]
expected: FAIL
@@ -1,14 +0,0 @@
[test-001.html]
type: testharness
[A_06_00_01_T01]
expected: FAIL
[A_06_00_01_T02]
expected: FAIL
[A_06_00_01_T03]
expected: FAIL
[A_06_00_01_T04]
expected: FAIL
@@ -1,11 +0,0 @@
[test-003.html]
type: testharness
[A_06_00_03_T01]
expected: FAIL
[A_06_00_03_T02]
expected: FAIL
[A_06_00_03_T03]
expected: FAIL
@@ -1,8 +0,0 @@
[test-008.html]
type: testharness
[A_06_00_09_T01]
expected: FAIL
[A_06_00_09_T02]
expected: FAIL
@@ -1,11 +0,0 @@
[inheritance-of-content-editable-001.html]
type: testharness
[contentEditable of shadow trees must be undefined when contentEditable attribute of shadow host is "true"]
expected: FAIL
[contentEditable of shadow trees must be undefined when contentEditable of shadow host is "false"]
expected: FAIL
[contentEditable of shadow trees must be undefined when contentEditable attribute of shadow host is "inherit"]
expected: FAIL
@@ -1,8 +0,0 @@
[test-001.html]
type: testharness
[A_07_07_01_T01]
expected: FAIL
[A_07_07_01_T02]
expected: FAIL