mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 20:29:18 +00:00
LibWebView: Add context menu support to the Inspector's cookie table
The menu can currently support deleting a specific cookie or all cookies for the current page.
This commit is contained in:
parent
3c5650f846
commit
fc809f9755
Notes:
github-actions[bot]
2024-09-07 09:11:36 +00:00
Author: https://github.com/trflynn89
Commit: fc809f9755
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1302
13 changed files with 73 additions and 0 deletions
|
@ -213,6 +213,16 @@ InspectorClient::InspectorClient(ViewImplementation& content_web_view, ViewImple
|
|||
m_content_web_view.replace_dom_node_attribute(node_id, attribute.name, replacement_attributes);
|
||||
};
|
||||
|
||||
m_inspector_web_view.on_inspector_requested_cookie_context_menu = [this](auto cookie_index, auto position) {
|
||||
if (cookie_index >= m_cookies.size())
|
||||
return;
|
||||
|
||||
m_cookie_context_menu_index = cookie_index;
|
||||
|
||||
if (on_requested_cookie_context_menu)
|
||||
on_requested_cookie_context_menu(position, m_cookies[cookie_index]);
|
||||
};
|
||||
|
||||
m_inspector_web_view.on_inspector_requested_style_sheet_source = [this](auto const& identifier) {
|
||||
m_content_web_view.request_style_sheet_source(identifier);
|
||||
};
|
||||
|
@ -468,6 +478,33 @@ void InspectorClient::context_menu_copy_dom_node_attribute_value()
|
|||
m_context_menu_data.clear();
|
||||
}
|
||||
|
||||
void InspectorClient::context_menu_delete_cookie()
|
||||
{
|
||||
VERIFY(m_cookie_context_menu_index.has_value());
|
||||
VERIFY(*m_cookie_context_menu_index < m_cookies.size());
|
||||
|
||||
auto& cookie = m_cookies[*m_cookie_context_menu_index];
|
||||
cookie.expiry_time = UnixDateTime::earliest();
|
||||
|
||||
Application::cookie_jar().update_cookie(move(cookie));
|
||||
load_cookies();
|
||||
|
||||
m_cookie_context_menu_index.clear();
|
||||
}
|
||||
|
||||
void InspectorClient::context_menu_delete_all_cookies()
|
||||
{
|
||||
for (auto& cookie : m_cookies) {
|
||||
cookie.expiry_time = UnixDateTime::earliest();
|
||||
|
||||
Application::cookie_jar().update_cookie(move(cookie));
|
||||
}
|
||||
|
||||
load_cookies();
|
||||
|
||||
m_cookie_context_menu_index.clear();
|
||||
}
|
||||
|
||||
void InspectorClient::load_inspector()
|
||||
{
|
||||
auto inspector_html = MUST(Core::Resource::load_from_uri(INSPECTOR_HTML));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue