ソースを参照

LibWeb: Don't create a layout node for <noscript> when scripting enabled

This makes stuff inside <noscript> correctly not show up since we run
with scripting enabled.

In the future, we can add a way to disable scripting, but for now,
Document::is_scripting_enabled() just returns true.
Andreas Kling 5 年 前
コミット
762617a028
2 ファイル変更6 行追加0 行削除
  1. 2 0
      Libraries/LibWeb/DOM/Document.h
  2. 4 0
      Libraries/LibWeb/DOM/Element.cpp

+ 2 - 0
Libraries/LibWeb/DOM/Document.h

@@ -57,6 +57,8 @@ public:
 
     Origin origin() const;
 
+    bool is_scripting_enabled() const { return true; }
+
     URL complete_url(const String&) const;
 
     void fixup();

+ 4 - 0
Libraries/LibWeb/DOM/Element.cpp

@@ -114,6 +114,10 @@ RefPtr<LayoutNode> Element::create_layout_node(const StyleProperties* parent_sty
 
     if (display == "none")
         return nullptr;
+
+    if (tag_name() == "noscript" && document().is_scripting_enabled())
+        return nullptr;
+
     if (display == "block")
         return adopt(*new LayoutBlock(this, move(style)));
     if (display == "inline")