فهرست منبع

LibWeb: Add OutOfProcessWebView::load_html()

Linus Groh 4 سال پیش
والد
کامیت
e40135fefd

+ 6 - 0
Libraries/LibWeb/OutOfProcessWebView.cpp

@@ -52,6 +52,12 @@ void OutOfProcessWebView::load(const URL& url)
     client().post_message(Messages::WebContentServer::LoadURL(url));
 }
 
+void OutOfProcessWebView::load_html(const StringView& html, const URL& url)
+{
+    m_url = url;
+    client().post_message(Messages::WebContentServer::LoadHTML(html, url));
+}
+
 void OutOfProcessWebView::paint_event(GUI::PaintEvent& event)
 {
     GUI::ScrollableWidget::paint_event(event);

+ 2 - 0
Libraries/LibWeb/OutOfProcessWebView.h

@@ -46,6 +46,8 @@ public:
     URL url() const { return m_url; }
     void load(const URL&);
 
+    void load_html(const StringView&, const URL&);
+
     void notify_server_did_layout(Badge<WebContentClient>, const Gfx::IntSize& content_size);
     void notify_server_did_paint(Badge<WebContentClient>, i32 shbuf_id);
     void notify_server_did_invalidate_content_rect(Badge<WebContentClient>, const Gfx::IntRect&);

+ 5 - 0
Libraries/LibWeb/Page/Page.cpp

@@ -62,6 +62,11 @@ void Page::load(const LoadRequest& request)
     main_frame().loader().load(request, FrameLoader::Type::Navigation);
 }
 
+void Page::load_html(const StringView& html, const URL& url)
+{
+    main_frame().loader().load_html(html, url);
+}
+
 Gfx::Palette Page::palette() const
 {
     return m_client.palette();

+ 2 - 0
Libraries/LibWeb/Page/Page.h

@@ -62,6 +62,8 @@ public:
     void load(const URL&);
     void load(const LoadRequest&);
 
+    void load_html(const StringView&, const URL&);
+
     bool handle_mouseup(const Gfx::IntPoint&, unsigned button, unsigned modifiers);
     bool handle_mousedown(const Gfx::IntPoint&, unsigned button, unsigned modifiers);
     bool handle_mousemove(const Gfx::IntPoint&, unsigned buttons, unsigned modifiers);

+ 8 - 0
Services/WebContent/ClientConnection.cpp

@@ -91,6 +91,14 @@ void ClientConnection::handle(const Messages::WebContentServer::LoadURL& message
     page().load(message.url());
 }
 
+void ClientConnection::handle(const Messages::WebContentServer::LoadHTML& message)
+{
+#ifdef DEBUG_SPAM
+    dbg() << "handle: WebContentServer::LoadHTML: html=" << message.html() << ", url=" << message.url();
+#endif
+    page().load_html(message.html(), message.url());
+}
+
 void ClientConnection::handle(const Messages::WebContentServer::SetViewportRect& message)
 {
 #ifdef DEBUG_SPAM

+ 1 - 0
Services/WebContent/ClientConnection.h

@@ -53,6 +53,7 @@ private:
     virtual OwnPtr<Messages::WebContentServer::GreetResponse> handle(const Messages::WebContentServer::Greet&) override;
     virtual void handle(const Messages::WebContentServer::UpdateSystemTheme&) override;
     virtual void handle(const Messages::WebContentServer::LoadURL&) override;
+    virtual void handle(const Messages::WebContentServer::LoadHTML&) override;
     virtual void handle(const Messages::WebContentServer::Paint&) override;
     virtual void handle(const Messages::WebContentServer::SetViewportRect&) override;
     virtual void handle(const Messages::WebContentServer::MouseDown&) override;

+ 1 - 0
Services/WebContent/WebContentServer.ipc

@@ -5,6 +5,7 @@ endpoint WebContentServer = 89
     UpdateSystemTheme(i32 shbuf_id) =|
 
     LoadURL(URL url) =|
+    LoadHTML(String html, URL url) =|
 
     Paint(Gfx::IntRect content_rect, i32 shbuf_id) =|
     SetViewportRect(Gfx::IntRect rect) =|