瀏覽代碼

LibWeb: Make the WebContentView::on_load_start hook actually work :^)

Andreas Kling 5 年之前
父節點
當前提交
9169c8ca94

+ 5 - 0
Libraries/LibWeb/WebContentClient.cpp

@@ -124,3 +124,8 @@ void WebContentClient::handle(const Messages::WebContentClient::DidMiddleClickLi
 {
 {
     m_view.notify_server_did_middle_click_link({}, message.url(), message.target(), message.modifiers());
     m_view.notify_server_did_middle_click_link({}, message.url(), message.target(), message.modifiers());
 }
 }
+
+void WebContentClient::handle(const Messages::WebContentClient::DidStartLoading& message)
+{
+    m_view.notify_server_did_start_loading({}, message.url());
+}

+ 1 - 0
Libraries/LibWeb/WebContentClient.h

@@ -55,6 +55,7 @@ private:
     virtual void handle(const Messages::WebContentClient::DidUnhoverLink&) override;
     virtual void handle(const Messages::WebContentClient::DidUnhoverLink&) override;
     virtual void handle(const Messages::WebContentClient::DidClickLink&) override;
     virtual void handle(const Messages::WebContentClient::DidClickLink&) override;
     virtual void handle(const Messages::WebContentClient::DidMiddleClickLink&) override;
     virtual void handle(const Messages::WebContentClient::DidMiddleClickLink&) override;
+    virtual void handle(const Messages::WebContentClient::DidStartLoading&) override;
 
 
     WebContentView& m_view;
     WebContentView& m_view;
 };
 };

+ 6 - 0
Libraries/LibWeb/WebContentView.cpp

@@ -150,6 +150,12 @@ void WebContentView::notify_server_did_middle_click_link(Badge<WebContentClient>
         on_link_middle_click(url, target, modifiers);
         on_link_middle_click(url, target, modifiers);
 }
 }
 
 
+void WebContentView::notify_server_did_start_loading(Badge<WebContentClient>, const URL& url)
+{
+    if (on_load_start)
+        on_load_start(url);
+}
+
 void WebContentView::did_scroll()
 void WebContentView::did_scroll()
 {
 {
     client().post_message(Messages::WebContentServer::SetViewportRect(visible_content_rect()));
     client().post_message(Messages::WebContentServer::SetViewportRect(visible_content_rect()));

+ 1 - 0
Libraries/LibWeb/WebContentView.h

@@ -54,6 +54,7 @@ public:
     void notify_server_did_unhover_link(Badge<WebContentClient>);
     void notify_server_did_unhover_link(Badge<WebContentClient>);
     void notify_server_did_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
     void notify_server_did_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
     void notify_server_did_middle_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
     void notify_server_did_middle_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers);
+    void notify_server_did_start_loading(Badge<WebContentClient>, const URL&);
 
 
 private:
 private:
     WebContentView();
     WebContentView();

+ 5 - 0
Services/WebContent/PageHost.cpp

@@ -154,4 +154,9 @@ void PageHost::page_did_middle_click_link(const URL& url, [[maybe_unused]] const
     m_client.post_message(Messages::WebContentClient::DidMiddleClickLink(url, target, modifiers));
     m_client.post_message(Messages::WebContentClient::DidMiddleClickLink(url, target, modifiers));
 }
 }
 
 
+void PageHost::page_did_start_loading(const URL& url)
+{
+    m_client.post_message(Messages::WebContentClient::DidStartLoading(url));
+}
+
 }
 }

+ 1 - 0
Services/WebContent/PageHost.h

@@ -60,6 +60,7 @@ private:
     virtual void page_did_unhover_link() override;
     virtual void page_did_unhover_link() override;
     virtual void page_did_click_link(const URL&, const String& target, unsigned modifiers) override;
     virtual void page_did_click_link(const URL&, const String& target, unsigned modifiers) override;
     virtual void page_did_middle_click_link(const URL&, const String& target, unsigned modifiers) override;
     virtual void page_did_middle_click_link(const URL&, const String& target, unsigned modifiers) override;
+    virtual void page_did_start_loading(const URL&) override;
 
 
     explicit PageHost(ClientConnection&);
     explicit PageHost(ClientConnection&);
 
 

+ 1 - 0
Services/WebContent/WebContentClient.ipc

@@ -11,4 +11,5 @@ endpoint WebContentClient = 90
     DidUnhoverLink() =|
     DidUnhoverLink() =|
     DidClickLink(URL url, String target, unsigned modifiers) =|
     DidClickLink(URL url, String target, unsigned modifiers) =|
     DidMiddleClickLink(URL url, String target, unsigned modifiers) =|
     DidMiddleClickLink(URL url, String target, unsigned modifiers) =|
+    DidStartLoading(URL url) =|
 }
 }