ソースを参照

LibWeb: Add principal settings object helper function

To more clearly represent the host binding which a principal setting
realm has.
Shannon Booth 9 ヶ月 前
コミット
1871b744ff

+ 8 - 1
Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp

@@ -347,12 +347,19 @@ JS::Realm& principal_realm(JS::Realm& realm)
     return realm;
 }
 
+// https://whatpr.org/html/9893/webappapis.html#concept-realm-settings-object
+EnvironmentSettingsObject& principal_realm_settings_object(JS::Realm& realm)
+{
+    // A principal realm has a [[HostDefined]] field, which contains the principal realm's settings object.
+    return Bindings::host_defined_environment_settings_object(realm);
+}
+
 // https://html.spec.whatwg.org/multipage/webappapis.html#current-settings-object
 // https://whatpr.org/html/9893/webappapis.html#current-principal-settings-object
 EnvironmentSettingsObject& current_principal_settings_object()
 {
     // Then, the current principal settings object is the environment settings object of the current principal realm.
-    return Bindings::host_defined_environment_settings_object(current_principal_realm());
+    return principal_realm_settings_object(current_principal_realm());
 }
 
 // https://html.spec.whatwg.org/multipage/webappapis.html#current-global-object

+ 1 - 0
Userland/Libraries/LibWeb/HTML/Scripting/Environments.h

@@ -147,6 +147,7 @@ JS::Realm& incumbent_realm();
 JS::Object& incumbent_global_object();
 
 JS::Realm& current_principal_realm();
+EnvironmentSettingsObject& principal_realm_settings_object(JS::Realm&);
 EnvironmentSettingsObject& current_principal_settings_object();
 
 JS::Realm& principal_realm(JS::Realm&);