servo/components/script_bindings/webidls/HTMLScriptElement.webidl
Tim van der Lippe 6bb087e381
Implement trusted types url setter (#36596)
We now check the sink of script.src for trusted types. This is the first
attribute that we check, other sinks will be implemented in follow-up
changes.

The algorithms currently hardcode various parts. That's because I need
to refactor a couple of algorithms already present in TrustedTypePolicy.
They use callbacks at the moment, which made sense for their initial
use. However, for these new algorithms they don't work. Therefore, I
will align them with the specification by taking in an enum. However,
since that's a bigger refactoring, I left that out of this PR (which is
already quite big).

The other trusted types support (createScript and createHTML) will also
be implemented separately.

Part of #36258

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-04-21 06:56:40 +00:00

40 lines
1.2 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, Pure]
attribute DOMString text;
[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;
};