Ver código fonte

LibWeb: Parse "br" end tags during "in body"

Kyle McLean 5 anos atrás
pai
commit
1ad81e4833

+ 3 - 1
Libraries/LibWeb/Parser/HTMLDocumentParser.cpp

@@ -1195,10 +1195,12 @@ void HTMLDocumentParser::handle_in_body(HTMLToken& token)
     }
 
     if (token.is_end_tag() && token.tag_name() == "br") {
-        TODO();
+        token.drop_attributes();
+        goto BRStartTag;
     }
 
     if (token.is_start_tag() && token.tag_name().is_one_of("area", "br", "embed", "img", "keygen", "wbr")) {
+    BRStartTag:
         reconstruct_the_active_formatting_elements();
         insert_html_element(token);
         m_stack_of_open_elements.pop();

+ 6 - 0
Libraries/LibWeb/Parser/HTMLToken.h

@@ -123,6 +123,12 @@ public:
         return {};
     }
 
+    void drop_attributes()
+    {
+        ASSERT(is_start_tag() || is_end_tag());
+        m_tag.attributes.clear();
+    }
+
     Type type() const { return m_type; }
 
     String to_string() const;