From f60a2a1d8008dfbcdea3ace4978d79b49edf8672 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Wed, 30 Mar 2022 22:28:28 +0100 Subject: [PATCH] LibWeb: Remove Document::is_scripting_enabled() and use Node's There's no need to have a custom is_scripting_enabled() for the Document class, as it (indirectly) inherits from Node. Also, let's not hardcode false here :^) --- Userland/Libraries/LibWeb/DOM/Document.h | 2 -- Userland/Libraries/LibWeb/DOM/Node.cpp | 12 ++++++++++-- Userland/Libraries/LibWeb/DOM/Node.h | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/DOM/Document.h b/Userland/Libraries/LibWeb/DOM/Document.h index dc6211beed..341781f95f 100644 --- a/Userland/Libraries/LibWeb/DOM/Document.h +++ b/Userland/Libraries/LibWeb/DOM/Document.h @@ -70,8 +70,6 @@ public: Origin origin() const; void set_origin(const Origin& origin); - bool is_scripting_enabled() const { return true; } - AK::URL parse_url(String const&) const; CSS::StyleComputer& style_computer() { return *m_style_computer; } diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index 891323d018..96af914100 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -843,11 +843,19 @@ void Node::serialize_tree_as_json(JsonObjectSerializer& object) c } } +// https://html.spec.whatwg.org/multipage/webappapis.html#concept-n-script +bool Node::is_scripting_enabled() const +{ + // Scripting is enabled for a node node if node's node document's browsing context is non-null, and scripting is enabled for node's relevant settings object. + // FIXME: Check if scripting is enabled for the ESO. + return document().browsing_context(); +} + // https://html.spec.whatwg.org/multipage/webappapis.html#concept-n-noscript bool Node::is_scripting_disabled() const { - // FIXME: or when scripting is disabled for its relevant settings object. - return !document().browsing_context(); + // Scripting is disabled for a node when scripting is not enabled, i.e., when its node document's browsing context is null or when scripting is disabled for its relevant settings object. + return !is_scripting_enabled(); } // https://dom.spec.whatwg.org/#dom-node-contains diff --git a/Userland/Libraries/LibWeb/DOM/Node.h b/Userland/Libraries/LibWeb/DOM/Node.h index 4af2f3f720..44d63efb96 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.h +++ b/Userland/Libraries/LibWeb/DOM/Node.h @@ -188,6 +188,7 @@ public: bool is_host_including_inclusive_ancestor_of(const Node&) const; + bool is_scripting_enabled() const; bool is_scripting_disabled() const; bool contains(RefPtr) const;