mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-09 02:56:10 +00:00
LibWeb: Implement the LegacyUnforgeable attribute
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
This fixes the frame-ancestors WPT tests from crashing when an iframe is blocked from loading. This is because it would get an undefined location.href from the cross-origin iframe, which causes a crash as it expects it to be there.
This commit is contained in:
parent
7853b757c2
commit
c7d25301d3
Notes:
github-actions[bot]
2025-03-28 00:10:01 +00:00
Author: https://github.com/Lubrsi
Commit: c7d25301d3
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3973
Reviewed-by: https://github.com/tcl3 ✅
15 changed files with 511 additions and 76 deletions
|
@ -504,7 +504,7 @@ void Parser::parse_stringifier(HashMap<ByteString, ByteString>& extended_attribu
|
|||
interface.has_stringifier = true;
|
||||
if (lexer.next_is("attribute"sv) || lexer.next_is("inherit"sv) || lexer.next_is("readonly"sv)) {
|
||||
parse_attribute(extended_attributes, interface);
|
||||
interface.stringifier_attribute = interface.attributes.last().name;
|
||||
interface.stringifier_attribute = interface.attributes.last();
|
||||
} else {
|
||||
assert_specific(';');
|
||||
}
|
||||
|
|
|
@ -280,7 +280,7 @@ public:
|
|||
Vector<Function> functions;
|
||||
Vector<Function> static_functions;
|
||||
bool has_stringifier { false };
|
||||
Optional<ByteString> stringifier_attribute;
|
||||
Optional<Attribute> stringifier_attribute;
|
||||
bool has_unscopable_member { false };
|
||||
|
||||
Optional<NonnullRefPtr<Type const>> value_iterator_type;
|
||||
|
|
|
@ -483,6 +483,7 @@ void Document::initialize(JS::Realm& realm)
|
|||
{
|
||||
Base::initialize(realm);
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Document);
|
||||
Bindings::DocumentPrototype::define_unforgeable_attributes(realm, *this);
|
||||
|
||||
m_selection = realm.create<Selection::Selection>(realm, *this);
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@ void Event::initialize(JS::Realm& realm)
|
|||
{
|
||||
Base::initialize(realm);
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Event);
|
||||
Bindings::EventPrototype::define_unforgeable_attributes(realm, *this);
|
||||
}
|
||||
|
||||
void Event::visit_edges(Visitor& visitor)
|
||||
|
|
|
@ -43,6 +43,7 @@ void Location::initialize(JS::Realm& realm)
|
|||
{
|
||||
Base::initialize(realm);
|
||||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Location);
|
||||
Bindings::LocationPrototype::define_unforgeable_attributes(realm, *this);
|
||||
|
||||
auto& vm = this->vm();
|
||||
|
||||
|
|
|
@ -731,6 +731,7 @@ WebIDL::ExceptionOr<void> Window::initialize_web_interfaces(Badge<WindowEnvironm
|
|||
WEB_SET_PROTOTYPE_FOR_INTERFACE(Window);
|
||||
|
||||
Bindings::WindowGlobalMixin::initialize(realm, *this);
|
||||
Bindings::WindowGlobalMixin::define_unforgeable_attributes(realm, *this);
|
||||
WindowOrWorkerGlobalScopeMixin::initialize(realm);
|
||||
|
||||
if (s_internals_object_exposed)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue