Browse Source

LibWeb: Const qualify many functions in EnvironmentSettingsObject

Which also allows us to remove a const_cast :^)
Shannon Booth 8 months ago
parent
commit
617b8eed75

+ 5 - 5
Libraries/LibWeb/HTML/Scripting/EnvironmentSettingsSnapshot.h

@@ -23,11 +23,11 @@ public:
     virtual ~EnvironmentSettingsSnapshot() override;
     virtual ~EnvironmentSettingsSnapshot() override;
 
 
     GC::Ptr<DOM::Document> responsible_document() override { return nullptr; }
     GC::Ptr<DOM::Document> responsible_document() override { return nullptr; }
-    String api_url_character_encoding() override { return m_api_url_character_encoding; }
-    URL::URL api_base_url() override { return m_url; }
-    URL::Origin origin() override { return m_origin; }
-    PolicyContainer policy_container() override { return m_policy_container; }
-    CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() override { return CanUseCrossOriginIsolatedAPIs::No; }
+    String api_url_character_encoding() const override { return m_api_url_character_encoding; }
+    URL::URL api_base_url() const override { return m_url; }
+    URL::Origin origin() const override { return m_origin; }
+    PolicyContainer policy_container() const override { return m_policy_container; }
+    CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() const override { return CanUseCrossOriginIsolatedAPIs::No; }
 
 
 private:
 private:
     String m_api_url_character_encoding;
     String m_api_url_character_encoding;

+ 5 - 5
Libraries/LibWeb/HTML/Scripting/Environments.h

@@ -73,19 +73,19 @@ public:
     virtual GC::Ptr<DOM::Document> responsible_document() = 0;
     virtual GC::Ptr<DOM::Document> responsible_document() = 0;
 
 
     // https://html.spec.whatwg.org/multipage/webappapis.html#api-url-character-encoding
     // https://html.spec.whatwg.org/multipage/webappapis.html#api-url-character-encoding
-    virtual String api_url_character_encoding() = 0;
+    virtual String api_url_character_encoding() const = 0;
 
 
     // https://html.spec.whatwg.org/multipage/webappapis.html#api-base-url
     // https://html.spec.whatwg.org/multipage/webappapis.html#api-base-url
-    virtual URL::URL api_base_url() = 0;
+    virtual URL::URL api_base_url() const = 0;
 
 
     // https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-origin
     // https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-origin
-    virtual URL::Origin origin() = 0;
+    virtual URL::Origin origin() const = 0;
 
 
     // A policy container https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-policy-container
     // A policy container https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-policy-container
-    virtual PolicyContainer policy_container() = 0;
+    virtual PolicyContainer policy_container() const = 0;
 
 
     // https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-cross-origin-isolated-capability
     // https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-cross-origin-isolated-capability
-    virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() = 0;
+    virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() const = 0;
 
 
     URL::URL parse_url(StringView);
     URL::URL parse_url(StringView);
 
 

+ 5 - 5
Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp

@@ -90,35 +90,35 @@ GC::Ptr<DOM::Document> WindowEnvironmentSettingsObject::responsible_document()
 }
 }
 
 
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:api-url-character-encoding
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:api-url-character-encoding
-String WindowEnvironmentSettingsObject::api_url_character_encoding()
+String WindowEnvironmentSettingsObject::api_url_character_encoding() const
 {
 {
     // Return the current character encoding of window's associated Document.
     // Return the current character encoding of window's associated Document.
     return m_window->associated_document().encoding_or_default();
     return m_window->associated_document().encoding_or_default();
 }
 }
 
 
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:api-base-url
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:api-base-url
-URL::URL WindowEnvironmentSettingsObject::api_base_url()
+URL::URL WindowEnvironmentSettingsObject::api_base_url() const
 {
 {
     // Return the current base URL of window's associated Document.
     // Return the current base URL of window's associated Document.
     return m_window->associated_document().base_url();
     return m_window->associated_document().base_url();
 }
 }
 
 
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-origin
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-origin
-URL::Origin WindowEnvironmentSettingsObject::origin()
+URL::Origin WindowEnvironmentSettingsObject::origin() const
 {
 {
     // Return the origin of window's associated Document.
     // Return the origin of window's associated Document.
     return m_window->associated_document().origin();
     return m_window->associated_document().origin();
 }
 }
 
 
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-policy-container
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-policy-container
-PolicyContainer WindowEnvironmentSettingsObject::policy_container()
+PolicyContainer WindowEnvironmentSettingsObject::policy_container() const
 {
 {
     // Return the policy container of window's associated Document.
     // Return the policy container of window's associated Document.
     return m_window->associated_document().policy_container();
     return m_window->associated_document().policy_container();
 }
 }
 
 
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-cross-origin-isolated-capability
 // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-cross-origin-isolated-capability
-CanUseCrossOriginIsolatedAPIs WindowEnvironmentSettingsObject::cross_origin_isolated_capability()
+CanUseCrossOriginIsolatedAPIs WindowEnvironmentSettingsObject::cross_origin_isolated_capability() const
 {
 {
     // FIXME: Return true if both of the following hold, and false otherwise:
     // FIXME: Return true if both of the following hold, and false otherwise:
     //          1. realm's agent cluster's cross-origin-isolation mode is "concrete", and
     //          1. realm's agent cluster's cross-origin-isolation mode is "concrete", and

+ 5 - 5
Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h

@@ -21,11 +21,11 @@ public:
     virtual ~WindowEnvironmentSettingsObject() override;
     virtual ~WindowEnvironmentSettingsObject() override;
 
 
     virtual GC::Ptr<DOM::Document> responsible_document() override;
     virtual GC::Ptr<DOM::Document> responsible_document() override;
-    virtual String api_url_character_encoding() override;
-    virtual URL::URL api_base_url() override;
-    virtual URL::Origin origin() override;
-    virtual PolicyContainer policy_container() override;
-    virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() override;
+    virtual String api_url_character_encoding() const override;
+    virtual URL::URL api_base_url() const override;
+    virtual URL::Origin origin() const override;
+    virtual PolicyContainer policy_container() const override;
+    virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() const override;
 
 
 private:
 private:
     WindowEnvironmentSettingsObject(Window&, NonnullOwnPtr<JS::ExecutionContext>);
     WindowEnvironmentSettingsObject(Window&, NonnullOwnPtr<JS::ExecutionContext>);

+ 4 - 4
Libraries/LibWeb/HTML/Scripting/WorkerEnvironmentSettingsObject.cpp

@@ -56,25 +56,25 @@ GC::Ref<WorkerEnvironmentSettingsObject> WorkerEnvironmentSettingsObject::setup(
     return settings_object;
     return settings_object;
 }
 }
 
 
-URL::URL WorkerEnvironmentSettingsObject::api_base_url()
+URL::URL WorkerEnvironmentSettingsObject::api_base_url() const
 {
 {
     // Return worker global scope's url.
     // Return worker global scope's url.
     return m_global_scope->url();
     return m_global_scope->url();
 }
 }
 
 
-URL::Origin WorkerEnvironmentSettingsObject::origin()
+URL::Origin WorkerEnvironmentSettingsObject::origin() const
 {
 {
     // FIXME: Return a unique opaque origin if worker global scope's url's scheme is "data", and inherited origin otherwise.
     // FIXME: Return a unique opaque origin if worker global scope's url's scheme is "data", and inherited origin otherwise.
     return m_origin;
     return m_origin;
 }
 }
 
 
-PolicyContainer WorkerEnvironmentSettingsObject::policy_container()
+PolicyContainer WorkerEnvironmentSettingsObject::policy_container() const
 {
 {
     // Return worker global scope's policy container.
     // Return worker global scope's policy container.
     return m_global_scope->policy_container();
     return m_global_scope->policy_container();
 }
 }
 
 
-CanUseCrossOriginIsolatedAPIs WorkerEnvironmentSettingsObject::cross_origin_isolated_capability()
+CanUseCrossOriginIsolatedAPIs WorkerEnvironmentSettingsObject::cross_origin_isolated_capability() const
 {
 {
     // FIXME: Return worker global scope's cross-origin isolated capability.
     // FIXME: Return worker global scope's cross-origin isolated capability.
     return CanUseCrossOriginIsolatedAPIs::No;
     return CanUseCrossOriginIsolatedAPIs::No;

+ 5 - 5
Libraries/LibWeb/HTML/Scripting/WorkerEnvironmentSettingsObject.h

@@ -29,11 +29,11 @@ public:
     virtual ~WorkerEnvironmentSettingsObject() override = default;
     virtual ~WorkerEnvironmentSettingsObject() override = default;
 
 
     GC::Ptr<DOM::Document> responsible_document() override { return nullptr; }
     GC::Ptr<DOM::Document> responsible_document() override { return nullptr; }
-    String api_url_character_encoding() override { return m_api_url_character_encoding; }
-    URL::URL api_base_url() override;
-    URL::Origin origin() override;
-    PolicyContainer policy_container() override;
-    CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() override;
+    String api_url_character_encoding() const override { return m_api_url_character_encoding; }
+    URL::URL api_base_url() const override;
+    URL::Origin origin() const override;
+    PolicyContainer policy_container() const override;
+    CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() const override;
 
 
 private:
 private:
     virtual void visit_edges(JS::Cell::Visitor&) override;
     virtual void visit_edges(JS::Cell::Visitor&) override;

+ 1 - 3
Libraries/LibWeb/StorageAPI/StorageKey.cpp

@@ -32,9 +32,7 @@ StorageKey obtain_a_storage_key_for_non_storage_purposes(HTML::Environment const
     // 1. Let origin be environment’s origin if environment is an environment settings object; otherwise environment’s creation URL’s origin.
     // 1. Let origin be environment’s origin if environment is an environment settings object; otherwise environment’s creation URL’s origin.
     if (is<HTML::EnvironmentSettingsObject>(environment)) {
     if (is<HTML::EnvironmentSettingsObject>(environment)) {
         auto const& settings = static_cast<HTML::EnvironmentSettingsObject const&>(environment);
         auto const& settings = static_cast<HTML::EnvironmentSettingsObject const&>(environment);
-        // FIXME: EnvironmentSettingsObject::origin() should be const :|
-        auto& mutable_settings = const_cast<HTML::EnvironmentSettingsObject&>(settings);
-        return { mutable_settings.origin() };
+        return { settings.origin() };
     }
     }
     return { environment.creation_url.origin() };
     return { environment.creation_url.origin() };
 }
 }