diff --git a/spec/index.bs b/spec/index.bs
index ddd5c23..ccec893 100644
--- a/spec/index.bs
+++ b/spec/index.bs
@@ -671,15 +671,29 @@ initially empty.
1. Set |localName| to |tagName| in [=ASCII lowercase=].
1. If |elementNs| is an empty string, set |elementNs| to [=HTML namespace=].
+ 1. If |property| starts with "on", then return {{TrustedScript}}.
1. Let |interface| be the [=element interface=] for |localName| and |elementNs|.
- 1. If |interface| has an IDL attribute member which identifier is |attribute|, and
- {{StringContext}} IDL extended attribute appears on that attribute, return
- stringified {{StringContext}}'s identifier and abort further steps.
-
- Note: This also takes into account all members of [=interface mixins=] that
- |interface| [=includes=].
-
- 1. Return null.
+ 1. Let |expectedType| be null.
+ 1. Find the row in the following table, where the first column is "*" or |interface|'s name, and |property| is in the second column.
+ If a matching row is found, set |expectedType| to the value of the third column.
+
+
+
+ Element | Property name | TrustedType
+ |
+ {{HTMLEmbedElement}} | "src" | {{TrustedScriptURL}}
+ |
{{HTMLIFrameElement}} | "srcdoc" | {{TrustedHTML}}
+ |
{{HTMLObjectElement}} | "codebase" | {{TrustedScriptURL}}
+ |
{{HTMLObjectElement}} | "data" | {{TrustedScriptURL}}
+ |
{{HTMLScriptElement}} | "innerText" | {{TrustedScript}}
+ |
{{HTMLScriptElement}} | "src" | {{TrustedScriptURL}}
+ |
{{HTMLScriptElement}} | "text" | {{TrustedScript}}
+ |
{{HTMLScriptElement}} | "textContent" | {{TrustedScript}}
+ |
"*" | "innerHTML" | {{TrustedHTML}}
+ |
"*" | "outerHTML" | {{TrustedHTML}}
+ |
+
+ 1. Return |expectedType|.
@@ -698,15 +712,28 @@ initially empty.
1. Set |localName| to |tagName| in [=ASCII lowercase=].
1. Set |attribute| to |attribute| in [=ASCII lowercase=].
+ 1. If |attribute| starts with "on", then return {{TrustedScript}}.
1. If |elementNs| is an empty string, set |elementNs| to [=HTML namespace=].
1. If |attrNs| is an empty string, set |attrNs| to null.
1. Let |interface| be the [=element interface=] for |localName| and |elementNs|.
- 1. If |interface| does not have an IDL attribute that [=reflects=] a content attribute with
- |localName| local name and |attrNs| namespace,
- return undefined and abort further steps. Otherwise, let |idlAttribute| be that IDL attribute.
- 1. If {{StringContext}} IDL extended attribute appears on |idlAttribute|, return
- stringified {{StringContext}}'s identifier and abort further steps.
- 1. Return null.
+ 1. Let |expectedType| be null.
+ 1. Find the row in the following table, where |interface|'s name is in the first column, and |attribute|'s namespace and local name match the values in the second and third column, respectively.
+ If a matching row is found, set |expectedType| to the value of the fourth.
+
+
+
+ Element | Attribute namespace | Attribute local name | TrustedType
+ |
+ {{HTMLIFrameElement}} | null | "srcdoc" | {{TrustedHTML}}
+ |
{{HTMLEmbedElement}} | null | "src" | {{TrustedScriptURL}}
+ |
{{HTMLScriptElement}} | null | "src" | {{TrustedScriptURL}}
+ |
{{HTMLObjectElement}} | null | "data" | {{TrustedScriptURL}}
+ |
{{HTMLObjectElement}} | null | "codebase" | {{TrustedScriptURL}}
+ |
{{SVGScriptElement}} | null | "href" | {{TrustedScriptURL}}
+ |
{{SVGScriptElement}} | XLink namespace | "href" | {{TrustedScriptURL}}
+ |
+
+ 1. Return |expectedType|.