From bccbad003f56d589545999fdc25898a5b9db7444 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sat, 5 Mar 2022 21:03:06 +0100 Subject: LibWeb: Implement the IsPlatformObjectSameOrigin AO --- .../Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp | 7 +++++++ Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h | 1 + 2 files changed, 8 insertions(+) (limited to 'Userland/Libraries/LibWeb') diff --git a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp index fc397a8707..f45129df91 100644 --- a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp +++ b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.cpp @@ -71,4 +71,11 @@ JS::ThrowCompletionOr cross_origin_property_fallback(JS: return vm.throw_completion(global_object, DOM::SecurityError::create(String::formatted("Can't access property '{}' on cross-origin object", property_key))); } +// 7.2.3.3 IsPlatformObjectSameOrigin ( O ), https://html.spec.whatwg.org/multipage/browsers.html#isplatformobjectsameorigin-(-o-) +bool is_platform_object_same_origin(JS::Object const& object) +{ + // 1. Return true if the current settings object's origin is same origin-domain with O's relevant settings object's origin, and false otherwise. + return HTML::current_settings_object().origin().is_same_origin_domain(HTML::relevant_settings_object(object).origin()); +} + } diff --git a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h index 748b055645..b5527833a1 100644 --- a/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h +++ b/Userland/Libraries/LibWeb/Bindings/CrossOriginAbstractOperations.h @@ -29,6 +29,7 @@ using CrossOriginPropertyDescriptorMap = HashMap cross_origin_properties(Variant const&); JS::ThrowCompletionOr cross_origin_property_fallback(JS::GlobalObject&, JS::PropertyKey const&); +bool is_platform_object_same_origin(JS::Object const&); } -- cgit v1.2.3