1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 23:38:11 +00:00

LibWeb: Added get source functionality and hook event

This commit is contained in:
Brandon Scott 2021-02-23 06:17:23 -06:00 committed by Andreas Kling
parent 306501fd4a
commit 2f56a86a4e
5 changed files with 20 additions and 0 deletions

View file

@ -314,6 +314,12 @@ String OutOfProcessWebView::notify_server_did_request_prompt(Badge<WebContentCli
return {};
}
void OutOfProcessWebView::notify_server_did_get_source(const URL& url, const String& source)
{
if (on_get_source)
on_get_source(url, source);
}
void OutOfProcessWebView::did_scroll()
{
client().post_message(Messages::WebContentServer::SetViewportRect(visible_content_rect()));
@ -340,4 +346,9 @@ void OutOfProcessWebView::debug_request(const String& request, const String& arg
client().post_message(Messages::WebContentServer::DebugRequest(request, argument));
}
void OutOfProcessWebView::get_source()
{
client().post_message(Messages::WebContentServer::GetSource());
}
}

View file

@ -50,6 +50,7 @@ public:
void load_empty_document();
void debug_request(const String& request, const String& argument = {});
void get_source();
void notify_server_did_layout(Badge<WebContentClient>, const Gfx::IntSize& content_size);
void notify_server_did_paint(Badge<WebContentClient>, i32 bitmap_id);
@ -68,6 +69,7 @@ public:
void notify_server_did_request_alert(Badge<WebContentClient>, const String& message);
bool notify_server_did_request_confirm(Badge<WebContentClient>, const String& message);
String notify_server_did_request_prompt(Badge<WebContentClient>, const String& message, const String& default_);
void notify_server_did_get_source(const URL& url, const String& source);
private:
OutOfProcessWebView();

View file

@ -131,6 +131,11 @@ void WebContentClient::handle(const Messages::WebContentClient::DidRequestLinkCo
m_view.notify_server_did_request_link_context_menu({}, message.content_position(), message.url(), message.target(), message.modifiers());
}
void WebContentClient::handle(const Messages::WebContentClient::DidGetSource& message)
{
m_view.notify_server_did_get_source(message.url(), message.source());
}
OwnPtr<Messages::WebContentClient::DidRequestAlertResponse> WebContentClient::handle(const Messages::WebContentClient::DidRequestAlert& message)
{
m_view.notify_server_did_request_alert({}, message.message());

View file

@ -64,6 +64,7 @@ private:
virtual void handle(const Messages::WebContentClient::DidStartLoading&) override;
virtual void handle(const Messages::WebContentClient::DidRequestContextMenu&) override;
virtual void handle(const Messages::WebContentClient::DidRequestLinkContextMenu&) override;
virtual void handle(const Messages::WebContentClient::DidGetSource& message);
virtual OwnPtr<Messages::WebContentClient::DidRequestAlertResponse> handle(const Messages::WebContentClient::DidRequestAlert&) override;
virtual OwnPtr<Messages::WebContentClient::DidRequestConfirmResponse> handle(const Messages::WebContentClient::DidRequestConfirm&) override;
virtual OwnPtr<Messages::WebContentClient::DidRequestPromptResponse> handle(const Messages::WebContentClient::DidRequestPrompt&) override;

View file

@ -46,6 +46,7 @@ public:
Function<void(const Gfx::Bitmap&)> on_favicon_change;
Function<void(const URL&)> on_url_drop;
Function<void(DOM::Document*)> on_set_document;
Function<void(const URL&, const String&)> on_get_source;
};
}