1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 21:28:14 +00:00

LibWeb: Give generated constructor functions a name

Required by code that brand checks native constructors.

For example, Wistia brand checks XMLHttpRequest by doing:
```
XMLHttpRequest.prototype.constructor.toString()
```

It then checks if it matches either one of:
```
function XMLHttpRequest() { [native code] }
```
```
[object XMLHttpRequestConstructor]
```

If neither matches, it disables HLS playback and prints:
"The XMLHttpRequest constructor has been tampered with. Because this
affects CORS/Range XHR requests, HLS playback has been disabled.
To enable HLS playback and other important features, please remove code
that changes the definition of window.XMLHttpRequest."

We hit this path due to not giving generated constructors a name, as
we would provide `function () { [native code] }`.
This commit is contained in:
Luke Wilde 2023-03-17 16:23:47 +00:00 committed by Linus Groh
parent d5577002d5
commit 782cdaeccf

View file

@ -2990,7 +2990,7 @@ using namespace Web::WebIDL;
namespace Web::Bindings {
@constructor_class@::@constructor_class@(JS::Realm& realm)
: NativeFunction(*realm.intrinsics().function_prototype())
: NativeFunction("@name@"sv, *realm.intrinsics().function_prototype())
{
}