diff --git a/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp b/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp index 26003ae997..90c3eeff4d 100644 --- a/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp +++ b/Userland/Libraries/LibWebView/OutOfProcessWebView.cpp @@ -409,6 +409,12 @@ void OutOfProcessWebView::notify_server_did_set_cookie(Badge, on_set_cookie(url, cookie, source); } +void OutOfProcessWebView::notify_server_did_update_cookie(Badge, AK::URL const& url, Web::Cookie::Cookie const& cookie) +{ + if (on_update_cookie) + on_update_cookie(url, cookie); +} + void OutOfProcessWebView::notify_server_did_update_resource_count(i32 count_waiting) { if (on_resource_status_change) diff --git a/Userland/Libraries/LibWebView/OutOfProcessWebView.h b/Userland/Libraries/LibWebView/OutOfProcessWebView.h index f53e2666af..f4b1aecd44 100644 --- a/Userland/Libraries/LibWebView/OutOfProcessWebView.h +++ b/Userland/Libraries/LibWebView/OutOfProcessWebView.h @@ -96,6 +96,7 @@ public: Function(AK::URL const& url, String const& name)> on_get_named_cookie; Function on_get_cookie; Function on_set_cookie; + Function on_update_cookie; Function on_resource_status_change; Function on_restore_window; Function on_reposition_window; @@ -160,6 +161,7 @@ private: virtual Optional notify_server_did_request_named_cookie(Badge, AK::URL const& url, String const& name) override; virtual String notify_server_did_request_cookie(Badge, const AK::URL& url, Web::Cookie::Source source) override; virtual void notify_server_did_set_cookie(Badge, const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source) override; + virtual void notify_server_did_update_cookie(Badge, AK::URL const& url, Web::Cookie::Cookie const& cookie) override; virtual void notify_server_did_update_resource_count(i32 count_waiting) override; virtual void notify_server_did_request_restore_window() override; virtual Gfx::IntPoint notify_server_did_request_reposition_window(Gfx::IntPoint const&) override; diff --git a/Userland/Libraries/LibWebView/ViewImplementation.h b/Userland/Libraries/LibWebView/ViewImplementation.h index f0580fb816..b685ffc0b1 100644 --- a/Userland/Libraries/LibWebView/ViewImplementation.h +++ b/Userland/Libraries/LibWebView/ViewImplementation.h @@ -51,6 +51,7 @@ public: virtual Optional notify_server_did_request_named_cookie(Badge, AK::URL const& url, String const& name) = 0; virtual String notify_server_did_request_cookie(Badge, const AK::URL& url, Web::Cookie::Source source) = 0; virtual void notify_server_did_set_cookie(Badge, const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source) = 0; + virtual void notify_server_did_update_cookie(Badge, AK::URL const& url, Web::Cookie::Cookie const& cookie) = 0; virtual void notify_server_did_update_resource_count(i32 count_waiting) = 0; virtual void notify_server_did_request_restore_window() = 0; virtual Gfx::IntPoint notify_server_did_request_reposition_window(Gfx::IntPoint const&) = 0; diff --git a/Userland/Libraries/LibWebView/WebContentClient.cpp b/Userland/Libraries/LibWebView/WebContentClient.cpp index b5d8a226b2..e8ed1b81e8 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.cpp +++ b/Userland/Libraries/LibWebView/WebContentClient.cpp @@ -205,6 +205,11 @@ void WebContentClient::did_set_cookie(AK::URL const& url, Web::Cookie::ParsedCoo m_view.notify_server_did_set_cookie({}, url, cookie, static_cast(source)); } +void WebContentClient::did_update_cookie(AK::URL const& url, Web::Cookie::Cookie const& cookie) +{ + m_view.notify_server_did_update_cookie({}, url, cookie); +} + void WebContentClient::did_update_resource_count(i32 count_waiting) { m_view.notify_server_did_update_resource_count(count_waiting); diff --git a/Userland/Libraries/LibWebView/WebContentClient.h b/Userland/Libraries/LibWebView/WebContentClient.h index aa4d3a5988..56e954132e 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.h +++ b/Userland/Libraries/LibWebView/WebContentClient.h @@ -62,6 +62,7 @@ private: virtual Messages::WebContentClient::DidRequestNamedCookieResponse did_request_named_cookie(AK::URL const&, String 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_cookie(AK::URL const&, Web::Cookie::Cookie const&) override; virtual void did_update_resource_count(i32 count_waiting) override; virtual void did_request_restore_window() override; virtual Messages::WebContentClient::DidRequestRepositionWindowResponse did_request_reposition_window(Gfx::IntPoint const&) override; diff --git a/Userland/Services/WebContent/WebContentClient.ipc b/Userland/Services/WebContent/WebContentClient.ipc index 3754e7bbaa..449d1c1704 100644 --- a/Userland/Services/WebContent/WebContentClient.ipc +++ b/Userland/Services/WebContent/WebContentClient.ipc @@ -40,6 +40,7 @@ endpoint WebContentClient did_request_named_cookie(URL url, String name) => (Optional cookie) did_request_cookie(URL url, u8 source) => (String cookie) did_set_cookie(URL url, Web::Cookie::ParsedCookie cookie, u8 source) =| + did_update_cookie(URL url, Web::Cookie::Cookie cookie) =| did_update_resource_count(i32 count_waiting) =| did_request_restore_window() =| did_request_reposition_window(Gfx::IntPoint position) => (Gfx::IntPoint window_position)