فهرست منبع

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

Kyle McLean 5 سال پیش
والد
کامیت
1ad81e4833
2فایلهای تغییر یافته به همراه9 افزوده شده و 1 حذف شده
  1. 3 1
      Libraries/LibWeb/Parser/HTMLDocumentParser.cpp
  2. 6 0
      Libraries/LibWeb/Parser/HTMLToken.h

+ 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") {
     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")) {
     if (token.is_start_tag() && token.tag_name().is_one_of("area", "br", "embed", "img", "keygen", "wbr")) {
+    BRStartTag:
         reconstruct_the_active_formatting_elements();
         reconstruct_the_active_formatting_elements();
         insert_html_element(token);
         insert_html_element(token);
         m_stack_of_open_elements.pop();
         m_stack_of_open_elements.pop();

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

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