Explorar o código

LibWeb: Add PageView::load_html() for loading HTML directly

When you're using Web::PageView as a GUI widget, you'll often just have
a chunk of HTML you want to show. So let's have an API for that.
Andreas Kling %!s(int64=5) %!d(string=hai) anos
pai
achega
6e27efe6c6
Modificáronse 2 ficheiros con 9 adicións e 0 borrados
  1. 8 0
      Libraries/LibWeb/PageView.cpp
  2. 1 0
      Libraries/LibWeb/PageView.h

+ 8 - 0
Libraries/LibWeb/PageView.cpp

@@ -48,6 +48,7 @@
 #include <LibWeb/Loader/ResourceLoader.h>
 #include <LibWeb/PageView.h>
 #include <LibWeb/Painting/PaintContext.h>
+#include <LibWeb/Parser/HTMLDocumentParser.h>
 #include <stdio.h>
 
 //#define SELECTION_DEBUG
@@ -272,6 +273,13 @@ void PageView::reload()
     load(page().main_frame().document()->url());
 }
 
+void PageView::load_html(const StringView& html, const URL& url)
+{
+    HTMLDocumentParser parser(html, "utf-8");
+    parser.run(url);
+    set_document(&parser.document());
+}
+
 bool PageView::load(const URL& url)
 {
     if (window())

+ 1 - 0
Libraries/LibWeb/PageView.h

@@ -44,6 +44,7 @@ public:
     // FIXME: Remove this once the new parser is ready.
     void set_use_old_parser(bool use_old_parser);
 
+    void load_html(const StringView&, const URL&);
     void load_empty_document();
 
     Document* document();