diff --git a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp index 764716621f..868bded595 100644 --- a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp +++ b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp @@ -55,6 +55,16 @@ Vector cross_origin_properties(Variant property_names { + "window"sv, "self"sv, "location"sv, "close"sv, "closed"sv, "focus"sv, "blur"sv, "frames"sv, "length"sv, "top"sv, "opener"sv, "parent"sv, "postMessage"sv + }; + return (property_key.is_string() && any_of(property_names, [&](auto const& name) { return property_key.as_string() == name; })) || property_key.is_number(); +} + // 7.2.3.2 CrossOriginPropertyFallback ( P ), https://html.spec.whatwg.org/multipage/browsers.html#crossoriginpropertyfallback-(-p-) JS::ThrowCompletionOr cross_origin_property_fallback(JS::GlobalObject& global_object, JS::PropertyKey const& property_key) { diff --git a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h index fab6a14993..8c0081d5af 100644 --- a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h +++ b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h @@ -28,6 +28,7 @@ struct CrossOriginKey { using CrossOriginPropertyDescriptorMap = HashMap; Vector cross_origin_properties(Variant const&); +bool is_cross_origin_accessible_window_property_name(JS::PropertyKey const&); JS::ThrowCompletionOr cross_origin_property_fallback(JS::GlobalObject&, JS::PropertyKey const&); bool is_platform_object_same_origin(JS::Object const&); Optional cross_origin_get_own_property_helper(Variant const&, JS::PropertyKey const&);