diff --git a/Ladybird/BrowserWindow.cpp b/Ladybird/BrowserWindow.cpp index cf73060466..1bddaa7822 100644 --- a/Ladybird/BrowserWindow.cpp +++ b/Ladybird/BrowserWindow.cpp @@ -297,6 +297,14 @@ void BrowserWindow::new_tab() QObject::connect(tab_ptr, &Tab::title_changed, this, &BrowserWindow::tab_title_changed); QObject::connect(tab_ptr, &Tab::favicon_changed, this, &BrowserWindow::tab_favicon_changed); + tab_ptr->view().on_get_all_cookies = [this](auto const& url) { + return m_cookie_jar.get_all_cookies(url); + }; + + tab_ptr->view().on_get_named_cookie = [this](auto const& url, auto const& name) { + return m_cookie_jar.get_named_cookie(url, name); + }; + tab_ptr->view().on_get_cookie = [this](auto& url, auto source) -> String { return m_cookie_jar.get_cookie(url, source); }; @@ -305,6 +313,10 @@ void BrowserWindow::new_tab() m_cookie_jar.set_cookie(url, cookie, source); }; + tab_ptr->view().on_update_cookie = [this](auto const& url, auto const& cookie) { + m_cookie_jar.update_cookie(url, cookie); + }; + tab_ptr->focus_location_editor(); } diff --git a/Ladybird/WebContentView.cpp b/Ladybird/WebContentView.cpp index dc8c365557..084c237bd2 100644 --- a/Ladybird/WebContentView.cpp +++ b/Ladybird/WebContentView.cpp @@ -914,13 +914,17 @@ void WebContentView::notify_server_did_change_favicon(Gfx::Bitmap const& bitmap) emit favicon_changed(QIcon(qpixmap)); } -Vector WebContentView::notify_server_did_request_all_cookies(Badge, AK::URL const&) +Vector WebContentView::notify_server_did_request_all_cookies(Badge, AK::URL const& url) { + if (on_get_all_cookies) + return on_get_all_cookies(url); return {}; } -Optional WebContentView::notify_server_did_request_named_cookie(Badge, AK::URL const&, String const&) +Optional WebContentView::notify_server_did_request_named_cookie(Badge, AK::URL const& url, String const& name) { + if (on_get_named_cookie) + return on_get_named_cookie(url, name); return {}; } @@ -937,8 +941,10 @@ void WebContentView::notify_server_did_set_cookie(Badge, AK::U on_set_cookie(url, cookie, source); } -void WebContentView::notify_server_did_update_cookie(Badge, AK::URL const&, Web::Cookie::Cookie const&) +void WebContentView::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 WebContentView::notify_server_did_update_resource_count(i32 count_waiting) diff --git a/Ladybird/WebContentView.h b/Ladybird/WebContentView.h index 587f3d6c7b..50183fa869 100644 --- a/Ladybird/WebContentView.h +++ b/Ladybird/WebContentView.h @@ -71,8 +71,11 @@ public: Function on_get_dom_node_properties; Function on_js_console_new_message; Function const& message_types, Vector const& messages)> on_get_js_console_messages; + Function(AK::URL const& url)> on_get_all_cookies; + 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; virtual void paintEvent(QPaintEvent*) override;