mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
As a follow-up to the recent introduction of `script.src` as trusted sink, this PR refactors machinery to also support `TrustedScript`. In doing so, all trusted sinks in `HTMLScriptElement` are now covered. Instead of calling the callbacks in `policy.createX`, we now have a `TrustedType` enum that specifies which callback to invoke. Unfortunately we still have the `USVString` vs `DOMString` problem, which is why we need to `.map` twice to retrieve the backing `String` and avoid two different types. Additionally, I saw that `script.text` should have called the "String replace all" algorithm rather than setting the child contents. So that's also now fixed. Part of #36258 Requires servo/html5ever#608 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
44 lines
1.4 KiB
Text
44 lines
1.4 KiB
Text
/* 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://html.spec.whatwg.org/multipage/#htmlscriptelement
|
|
[Exposed=Window]
|
|
interface HTMLScriptElement : HTMLElement {
|
|
[HTMLConstructor] constructor();
|
|
|
|
[CEReactions, SetterThrows]
|
|
attribute (TrustedScriptURL or USVString) src;
|
|
[CEReactions]
|
|
attribute DOMString type;
|
|
[CEReactions]
|
|
attribute boolean noModule;
|
|
[CEReactions]
|
|
attribute DOMString charset;
|
|
[CEReactions]
|
|
attribute boolean async;
|
|
[CEReactions]
|
|
attribute boolean defer;
|
|
[CEReactions]
|
|
attribute DOMString? crossOrigin;
|
|
[CEReactions, SetterThrows]
|
|
attribute (TrustedScript or DOMString) innerText;
|
|
[CEReactions, Pure, SetterThrows]
|
|
attribute (TrustedScript or DOMString) text;
|
|
[CEReactions, SetterThrows]
|
|
attribute (TrustedScript or DOMString)? textContent;
|
|
[CEReactions]
|
|
attribute DOMString integrity;
|
|
[CEReactions]
|
|
attribute DOMString referrerPolicy;
|
|
|
|
// also has obsolete members
|
|
};
|
|
|
|
// https://html.spec.whatwg.org/multipage/#HTMLScriptElement-partial
|
|
partial interface HTMLScriptElement {
|
|
[CEReactions]
|
|
attribute DOMString event;
|
|
[CEReactions]
|
|
attribute DOMString htmlFor;
|
|
};
|