LibWebView+UI: Remove the clear-everything history store API

This was only used by the AppKit UI's history menu. We have more fine-
grained control over deleting history in about:settings#privacy.
This commit is contained in:
Timothy Flynn 2026-06-10 12:18:17 -04:00 committed by Andreas Kling
parent 496c88d0c9
commit f72a18095d
6 changed files with 2 additions and 52 deletions

View file

@ -1245,14 +1245,6 @@ void Application::clear_browsing_data(ClearBrowsingDataOptions const& options)
on_recently_closed_entries_changed();
}
void Application::clear_history()
{
dbgln_if(WEBVIEW_HISTORY_DEBUG, "[History] Clearing browsing history");
m_history_store->clear();
on_recently_closed_entries_changed();
}
void Application::initialize_actions()
{
auto debug_request = [this](auto request) {

View file

@ -77,14 +77,12 @@ public:
void tab_settings_changed(Badge<ApplicationSettingsObserver>);
static BookmarkStore& bookmark_store() { return the().m_bookmark_store; }
static HistoryStore& history_store() { return *the().m_history_store; }
void update_bookmark_action_for_current_web_view();
void bookmarks_changed(Badge<ApplicationBookmarkStoreObserver>);
void show_bookmarks_bar_changed(Badge<ApplicationSettingsObserver>);
void clear_history();
virtual void show_bookmark_context_menu(Gfx::IntPoint, Optional<BookmarkItem const&>, [[maybe_unused]] Optional<String const&> target_folder_id) { }
static HistoryStore& history_store() { return *the().m_history_store; }
static CookieJar& cookie_jar() { return *the().m_cookie_jar; }
static HSTSStore& hsts_store() { return *the().m_hsts_store; }
static StorageJar& storage_jar() { return *the().m_storage_jar; }

View file

@ -245,7 +245,6 @@ ErrorOr<NonnullOwnPtr<HistoryStore>> HistoryStore::create(Database::Database& da
ORDER BY last_visited_time DESC, url ASC
LIMIT ?3 OFFSET ?4;
)#"sv));
statements.clear_entries = TRY(database.prepare_statement("DELETE FROM History;"sv));
statements.delete_entry = TRY(database.prepare_statement("DELETE FROM History WHERE url = ?;"sv));
statements.delete_entries_accessed_since = TRY(database.prepare_statement("DELETE FROM History WHERE last_visited_time >= ?;"sv));
statements.all_urls = TRY(database.prepare_statement("SELECT url FROM History;"sv));
@ -476,16 +475,6 @@ Vector<HistoryEntry> HistoryStore::list_entries(StringView query, size_t offset,
return entries;
}
void HistoryStore::clear()
{
if (m_is_disabled)
return;
dbgln_if(WEBVIEW_HISTORY_DEBUG, "[History] Clearing {} history store", m_storage->name());
m_storage->clear();
m_recently_closed_entries.clear();
}
void HistoryStore::remove_entry_for_url(URL::URL const& url)
{
if (m_is_disabled)
@ -676,11 +665,6 @@ Vector<HistoryEntry> HistoryStore::TransientStorage::list_entries(StringView tit
return entries;
}
void HistoryStore::TransientStorage::clear()
{
m_entries.clear();
}
void HistoryStore::TransientStorage::remove_entry_for_url(String const& url)
{
m_entries.remove(url);
@ -818,11 +802,6 @@ Vector<HistoryEntry> HistoryStore::PersistedStorage::list_entries(StringView tit
return entries;
}
void HistoryStore::PersistedStorage::clear()
{
m_database.execute_statement(m_statements.clear_entries, {});
}
void HistoryStore::PersistedStorage::remove_entry_for_url(String const& url)
{
m_database.execute_statement(m_statements.delete_entry, {}, url);

View file

@ -59,7 +59,6 @@ public:
Vector<HistoryEntry> autocomplete_entries(StringView query, size_t limit = 8);
Vector<HistoryEntry> list_entries(StringView query = {}, size_t offset = 0, size_t limit = 50);
void clear();
void remove_entry_for_url(URL::URL const&);
void remove_entries_for_same_site(URL::URL const&);
void remove_entries_accessed_since(UnixDateTime since);
@ -72,7 +71,6 @@ private:
Database::StatementID get_entry { 0 };
Database::StatementID search_entries { 0 };
Database::StatementID list_entries { 0 };
Database::StatementID clear_entries { 0 };
Database::StatementID delete_entry { 0 };
Database::StatementID delete_entries_accessed_since { 0 };
Database::StatementID all_urls { 0 };
@ -92,7 +90,6 @@ private:
virtual Vector<HistoryEntry> autocomplete_entries(StringView title_query, StringView url_query, size_t limit) = 0;
virtual Vector<HistoryEntry> list_entries(StringView title_query, StringView url_query, size_t offset, size_t limit) = 0;
virtual void clear() = 0;
virtual void remove_entry_for_url(String const& url) = 0;
virtual void remove_entries_for_same_site(StringView site_key) = 0;
virtual void remove_entries_accessed_since(UnixDateTime since) = 0;
@ -112,7 +109,6 @@ private:
virtual Vector<HistoryEntry> autocomplete_entries(StringView title_query, StringView url_query, size_t limit) override;
virtual Vector<HistoryEntry> list_entries(StringView title_query, StringView url_query, size_t offset, size_t limit) override;
virtual void clear() override;
virtual void remove_entry_for_url(String const& url) override;
virtual void remove_entries_for_same_site(StringView site_key) override;
virtual void remove_entries_accessed_since(UnixDateTime since) override;
@ -136,7 +132,6 @@ private:
virtual Vector<HistoryEntry> autocomplete_entries(StringView title_query, StringView url_query, size_t limit) override;
virtual Vector<HistoryEntry> list_entries(StringView title_query, StringView url_query, size_t offset, size_t limit) override;
virtual void clear() override;
virtual void remove_entry_for_url(String const& url) override;
virtual void remove_entries_for_same_site(StringView site_key) override;
virtual void remove_entries_accessed_since(UnixDateTime since) override;

View file

@ -311,7 +311,7 @@ TEST_CASE(recently_closed_entries_are_cleared_with_history)
store->record_closed_tab(first_url, UnixDateTime::from_seconds_since_epoch(10));
store->record_closed_window({ second_url }, 0, UnixDateTime::from_seconds_since_epoch(20));
store->clear();
store->remove_entries_accessed_since(UnixDateTime::earliest());
EXPECT(!store->has_recently_closed_entries());
EXPECT(!store->most_recently_closed_entry().has_value());
@ -359,9 +359,6 @@ TEST_CASE(disabled_history_store_ignores_updates)
store->remove_entries_accessed_since(UnixDateTime::from_seconds_since_epoch(0));
check_is_empty();
store->clear();
check_is_empty();
}
TEST_CASE(history_entries_accessed_since_can_be_removed)

View file

@ -232,11 +232,6 @@
[current_window performClose:self];
}
- (void)clearHistory:(id)sender
{
WebView::Application::the().clear_history();
}
- (NSMenuItem*)createApplicationMenu
{
auto* menu = [[NSMenuItem alloc] init];
@ -349,12 +344,6 @@
[submenu setAutoenablesItems:NO];
[submenu addItem:Ladybird::create_application_menu_item(WebView::Application::the().reload_action())];
[submenu addItem:[NSMenuItem separatorItem]];
[submenu addItem:[[NSMenuItem alloc] initWithTitle:@"Clear History"
action:@selector(clearHistory:)
keyEquivalent:@""]];
[menu setSubmenu:submenu];
return menu;
}