Kaynağa Gözat

LibWeb+Browser: Use the new HTML parser by default

You can still run the old parser with "br -O", but the new one is good
enough to be the default parser now. We'll fix issues as we go and
eventually remove the old one completely. :^)
Andreas Kling 5 yıl önce
ebeveyn
işleme
8766e49a7c

+ 2 - 2
Applications/Browser/Tab.cpp

@@ -59,7 +59,7 @@
 
 namespace Browser {
 
-extern bool g_use_new_html_parser;
+extern bool g_use_old_html_parser;
 extern String g_home_url;
 
 Tab::Tab()
@@ -71,7 +71,7 @@ Tab::Tab()
     auto& toolbar = m_toolbar_container->add<GUI::ToolBar>();
     m_page_view = widget.add<Web::PageView>();
 
-    m_page_view->set_use_new_parser(g_use_new_html_parser);
+    m_page_view->set_use_old_parser(g_use_old_html_parser);
 
     m_go_back_action = GUI::CommonActions::make_go_back_action([this](auto&) {
         m_history.go_back();

+ 2 - 2
Applications/Browser/main.cpp

@@ -45,7 +45,7 @@ namespace Browser {
 
 static const char* bookmarks_filename = "/home/anon/bookmarks.json";
 String g_home_url;
-bool g_use_new_html_parser = false;
+bool g_use_old_html_parser = false;
 
 }
 
@@ -64,7 +64,7 @@ int main(int argc, char** argv)
     const char* specified_url = nullptr;
 
     Core::ArgsParser args_parser;
-    args_parser.add_option(Browser::g_use_new_html_parser, "Use new HTML parser", "new-parser", 'n');
+    args_parser.add_option(Browser::g_use_old_html_parser, "Use old HTML parser", "old-parser", 'O');
     args_parser.add_positional_argument(specified_url, "URL to open", "url", Core::ArgsParser::Required::No);
     args_parser.parse(argc, argv);
 

+ 6 - 7
Libraries/LibWeb/PageView.cpp

@@ -44,9 +44,9 @@
 #include <LibWeb/DOM/Text.h>
 #include <LibWeb/Dump.h>
 #include <LibWeb/Frame.h>
-#include <LibWeb/PageView.h>
 #include <LibWeb/Layout/LayoutDocument.h>
 #include <LibWeb/Layout/LayoutNode.h>
+#include <LibWeb/PageView.h>
 #include <LibWeb/Parser/HTMLDocumentParser.h>
 #include <LibWeb/Parser/HTMLParser.h>
 #include <LibWeb/RenderingContext.h>
@@ -443,12 +443,11 @@ RefPtr<Document> PageView::create_document_from_mime_type(const ByteBuffer& data
     if (mime_type == "text/gemini")
         return create_gemini_document(data, url);
     if (mime_type == "text/html") {
-        if (m_use_new_parser) {
-            HTMLDocumentParser parser(data, encoding);
-            parser.run(url);
-            return parser.document();
-        }
-        return parse_html_document(data, url, encoding);
+        if (m_use_old_parser)
+            return parse_html_document(data, url, encoding);
+        HTMLDocumentParser parser(data, encoding);
+        parser.run(url);
+        return parser.document();
     }
     return nullptr;
 }

+ 2 - 2
Libraries/LibWeb/PageView.h

@@ -40,7 +40,7 @@ public:
     virtual ~PageView() override;
 
     // FIXME: Remove this once the new parser is ready.
-    void set_use_new_parser(bool use_new_parser) { m_use_new_parser = use_new_parser; }
+    void set_use_old_parser(bool use_old_parser) { m_use_old_parser = use_old_parser; }
 
     Document* document();
     const Document* document() const;
@@ -99,7 +99,7 @@ private:
     bool m_should_show_line_box_borders { false };
     bool m_in_mouse_selection { false };
 
-    bool m_use_new_parser { false };
+    bool m_use_old_parser { false };
 };
 
 }

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

@@ -24,7 +24,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#define PARSER_DEBUG
+//#define PARSER_DEBUG
 
 #include <AK/Utf32View.h>
 #include <LibWeb/DOM/Comment.h>