diff options
6 files changed, 18 insertions, 0 deletions
diff --git a/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp b/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp index 337a20270d..cffee72b65 100644 --- a/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp +++ b/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp @@ -382,6 +382,13 @@ void OutOfProcessWebView::notify_server_did_change_favicon(Gfx::Bitmap const& fa on_favicon_change(favicon); } +Vector<Web::Cookie::Cookie> OutOfProcessWebView::notify_server_did_request_all_cookies(Badge<WebContentClient>, AK::URL const& url) +{ + if (on_get_all_cookies) + return on_get_all_cookies(url); + return {}; +} + String OutOfProcessWebView::notify_server_did_request_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::Source source) { if (on_get_cookie) diff --git a/Userland/Libraries/LibWebView/OutOfProcessWebView.h b/Userland/Libraries/LibWebView/OutOfProcessWebView.h index a8e68db925..36ec0dab56 100644 --- a/Userland/Libraries/LibWebView/OutOfProcessWebView.h +++ b/Userland/Libraries/LibWebView/OutOfProcessWebView.h @@ -92,6 +92,7 @@ public: Function<void(i32 node_id, String const& specified_style, String const& computed_style, String const& custom_properties, String const& node_box_sizing)> on_get_dom_node_properties; Function<void(i32 message_id)> on_js_console_new_message; Function<void(i32 start_index, Vector<String> const& message_types, Vector<String> const& messages)> on_get_js_console_messages; + Function<Vector<Web::Cookie::Cookie>(AK::URL const& url)> on_get_all_cookies; Function<String(const AK::URL& url, Web::Cookie::Source source)> on_get_cookie; Function<void(const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source)> on_set_cookie; Function<void(i32 count_waiting)> on_resource_status_change; @@ -154,6 +155,7 @@ private: virtual void notify_server_did_output_js_console_message(i32 message_index) override; virtual void notify_server_did_get_js_console_messages(i32 start_index, Vector<String> const& message_types, Vector<String> const& messages) override; virtual void notify_server_did_change_favicon(Gfx::Bitmap const& favicon) override; + virtual Vector<Web::Cookie::Cookie> notify_server_did_request_all_cookies(Badge<WebContentClient>, AK::URL const& url) override; virtual String notify_server_did_request_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::Source source) override; virtual void notify_server_did_set_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source) override; virtual void notify_server_did_update_resource_count(i32 count_waiting) override; diff --git a/Userland/Libraries/LibWebView/ViewImplementation.h b/Userland/Libraries/LibWebView/ViewImplementation.h index 6294114da7..bdd787a8b3 100644 --- a/Userland/Libraries/LibWebView/ViewImplementation.h +++ b/Userland/Libraries/LibWebView/ViewImplementation.h @@ -47,6 +47,7 @@ public: virtual void notify_server_did_output_js_console_message(i32 message_index) = 0; virtual void notify_server_did_get_js_console_messages(i32 start_index, Vector<String> const& message_types, Vector<String> const& messages) = 0; virtual void notify_server_did_change_favicon(Gfx::Bitmap const& favicon) = 0; + virtual Vector<Web::Cookie::Cookie> notify_server_did_request_all_cookies(Badge<WebContentClient>, AK::URL const& url) = 0; virtual String notify_server_did_request_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::Source source) = 0; virtual void notify_server_did_set_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source) = 0; virtual void notify_server_did_update_resource_count(i32 count_waiting) = 0; diff --git a/Userland/Libraries/LibWebView/WebContentClient.cpp b/Userland/Libraries/LibWebView/WebContentClient.cpp index c5bb0a8afd..46d9e83722 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.cpp +++ b/Userland/Libraries/LibWebView/WebContentClient.cpp @@ -185,6 +185,11 @@ void WebContentClient::did_change_favicon(Gfx::ShareableBitmap const& favicon) m_view.notify_server_did_change_favicon(*favicon.bitmap()); } +Messages::WebContentClient::DidRequestAllCookiesResponse WebContentClient::did_request_all_cookies(AK::URL const& url) +{ + return m_view.notify_server_did_request_all_cookies({}, url); +} + Messages::WebContentClient::DidRequestCookieResponse WebContentClient::did_request_cookie(AK::URL const& url, u8 source) { return m_view.notify_server_did_request_cookie({}, url, static_cast<Web::Cookie::Source>(source)); diff --git a/Userland/Libraries/LibWebView/WebContentClient.h b/Userland/Libraries/LibWebView/WebContentClient.h index b8ee9f4ab5..7e784b5adf 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.h +++ b/Userland/Libraries/LibWebView/WebContentClient.h @@ -58,6 +58,7 @@ private: virtual void did_request_alert(String const&) override; virtual Messages::WebContentClient::DidRequestConfirmResponse did_request_confirm(String const&) override; virtual Messages::WebContentClient::DidRequestPromptResponse did_request_prompt(String const&, String const&) override; + virtual Messages::WebContentClient::DidRequestAllCookiesResponse did_request_all_cookies(AK::URL const&) override; virtual Messages::WebContentClient::DidRequestCookieResponse did_request_cookie(AK::URL const&, u8) override; virtual void did_set_cookie(AK::URL const&, Web::Cookie::ParsedCookie const&, u8) override; virtual void did_update_resource_count(i32 count_waiting) override; diff --git a/Userland/Services/WebContent/WebContentClient.ipc b/Userland/Services/WebContent/WebContentClient.ipc index bfe319b0b8..72eb9ad973 100644 --- a/Userland/Services/WebContent/WebContentClient.ipc +++ b/Userland/Services/WebContent/WebContentClient.ipc @@ -1,6 +1,7 @@ #include <AK/URL.h> #include <LibCore/AnonymousBuffer.h> #include <LibGfx/ShareableBitmap.h> +#include <LibWeb/Cookie/Cookie.h> #include <LibWeb/Cookie/ParsedCookie.h> // FIXME: This isn't used here, but the generated IPC fails to compile without this include. @@ -35,6 +36,7 @@ endpoint WebContentClient did_get_dom_tree(String dom_tree) =| did_get_dom_node_properties(i32 node_id, String specified_style, String computed_style, String custom_properties, String node_box_sizing_json) =| did_change_favicon(Gfx::ShareableBitmap favicon) =| + did_request_all_cookies(URL url) => (Vector<Web::Cookie::Cookie> cookies) did_request_cookie(URL url, u8 source) => (String cookie) did_set_cookie(URL url, Web::Cookie::ParsedCookie cookie, u8 source) =| did_update_resource_count(i32 count_waiting) =| |