Selaa lähdekoodia

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 vuotta sitten
vanhempi
commit
762617a028
2 muutettua tiedostoa jossa 6 lisäystä ja 0 poistoa
  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;
     Origin origin() const;
 
 
+    bool is_scripting_enabled() const { return true; }
+
     URL complete_url(const String&) const;
     URL complete_url(const String&) const;
 
 
     void fixup();
     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")
     if (display == "none")
         return nullptr;
         return nullptr;
+
+    if (tag_name() == "noscript" && document().is_scripting_enabled())
+        return nullptr;
+
     if (display == "block")
     if (display == "block")
         return adopt(*new LayoutBlock(this, move(style)));
         return adopt(*new LayoutBlock(this, move(style)));
     if (display == "inline")
     if (display == "inline")