Jelajahi Sumber

LibHTML: Store the HTML parser input along with the created Document

This will allow us to "view source" later on, long after parsing has
finished and turned it into a DOM.
Andreas Kling 5 tahun lalu
induk
melakukan
5036b888ac

+ 5 - 0
Libraries/LibHTML/DOM/Document.h

@@ -89,6 +89,9 @@ public:
     const Element* get_element_by_id(const String&) const;
     Vector<const Element*> get_elements_by_name(const String&) const;
 
+    const String& source() const { return m_source; }
+    void set_source(const String& source) { m_source = source; }
+
 private:
     virtual RefPtr<LayoutNode> create_layout_node(const StyleProperties* parent_style) const override;
 
@@ -106,6 +109,8 @@ private:
     Color m_visited_link_color { Color::Magenta };
 
     RefPtr<CTimer> m_style_update_timer;
+
+    String m_source;
 };
 
 template<>

+ 1 - 0
Libraries/LibHTML/Parser/HTMLParser.cpp

@@ -334,6 +334,7 @@ RefPtr<Document> parse_html_document(const StringView& html, const URL& url)
 {
     auto document = adopt(*new Document);
     document->set_url(url);
+    document->set_source(html);
 
     if (!parse_html_document(html, *document, *document))
         return nullptr;