From 76662d2f0169cb7397b4dc1837c0ab27b097cf1b Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sun, 22 Sep 2024 13:29:27 -0400 Subject: [PATCH] LibWebView+UI: Remove history traversal WebView callbacks We can handle these entirely within LibWebView. --- Ladybird/AppKit/UI/LadybirdWebView.mm | 24 ------------------- Ladybird/Qt/Tab.cpp | 12 ---------- Ladybird/Qt/WebContentView.cpp | 11 ++++----- .../Libraries/LibWebView/ViewImplementation.h | 3 --- .../Libraries/LibWebView/WebContentClient.cpp | 18 +++++--------- 5 files changed, 10 insertions(+), 58 deletions(-) diff --git a/Ladybird/AppKit/UI/LadybirdWebView.mm b/Ladybird/AppKit/UI/LadybirdWebView.mm index 89909fca2f0..8887cf20eca 100644 --- a/Ladybird/AppKit/UI/LadybirdWebView.mm +++ b/Ladybird/AppKit/UI/LadybirdWebView.mm @@ -554,30 +554,6 @@ static void copy_data_to_clipboard(StringView data, NSPasteboardType pasteboard_ [self updateViewportRect:Ladybird::WebViewBridge::ForResize::Yes]; }; - m_web_view_bridge->on_navigate_back = [weak_self]() { - LadybirdWebView* self = weak_self; - if (self == nil) { - return; - } - [self navigateBack]; - }; - - m_web_view_bridge->on_navigate_forward = [weak_self]() { - LadybirdWebView* self = weak_self; - if (self == nil) { - return; - } - [self navigateForward]; - }; - - m_web_view_bridge->on_refresh = [weak_self]() { - LadybirdWebView* self = weak_self; - if (self == nil) { - return; - } - [self reload]; - }; - m_web_view_bridge->on_request_tooltip_override = [weak_self](auto, auto const& tooltip) { LadybirdWebView* self = weak_self; if (self == nil) { diff --git a/Ladybird/Qt/Tab.cpp b/Ladybird/Qt/Tab.cpp index 61e61e20db4..724416dbd8e 100644 --- a/Ladybird/Qt/Tab.cpp +++ b/Ladybird/Qt/Tab.cpp @@ -330,18 +330,6 @@ Tab::Tab(BrowserWindow* window, RefPtr parent_client, view().request_style_sheet_source(identifier); }; - view().on_navigate_back = [this]() { - back(); - }; - - view().on_navigate_forward = [this]() { - forward(); - }; - - view().on_refresh = [this]() { - reload(); - }; - view().on_restore_window = [this]() { m_window->showNormal(); }; diff --git a/Ladybird/Qt/WebContentView.cpp b/Ladybird/Qt/WebContentView.cpp index a19c579c4a9..6919ec2ce04 100644 --- a/Ladybird/Qt/WebContentView.cpp +++ b/Ladybird/Qt/WebContentView.cpp @@ -431,13 +431,10 @@ void WebContentView::mouseReleaseEvent(QMouseEvent* event) { enqueue_native_event(Web::MouseEvent::Type::MouseUp, *event); - if (event->button() == Qt::MouseButton::BackButton) { - if (on_navigate_back) - on_navigate_back(); - } else if (event->button() == Qt::MouseButton::ForwardButton) { - if (on_navigate_forward) - on_navigate_forward(); - } + if (event->button() == Qt::MouseButton::BackButton) + traverse_the_history_by_delta(-1); + else if (event->button() == Qt::MouseButton::ForwardButton) + traverse_the_history_by_delta(1); } void WebContentView::wheelEvent(QWheelEvent* event) diff --git a/Userland/Libraries/LibWebView/ViewImplementation.h b/Userland/Libraries/LibWebView/ViewImplementation.h index 35103faa7c0..d2ddaea0a8f 100644 --- a/Userland/Libraries/LibWebView/ViewImplementation.h +++ b/Userland/Libraries/LibWebView/ViewImplementation.h @@ -171,9 +171,6 @@ public: Function on_load_start; Function on_load_finish; Function on_request_file; - Function on_navigate_back; - Function on_navigate_forward; - Function on_refresh; Function on_favicon_change; Function on_cursor_change; Function on_request_tooltip_override; diff --git a/Userland/Libraries/LibWebView/WebContentClient.cpp b/Userland/Libraries/LibWebView/WebContentClient.cpp index 163cc549f80..6fef8356485 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.cpp +++ b/Userland/Libraries/LibWebView/WebContentClient.cpp @@ -102,26 +102,20 @@ void WebContentClient::did_find_in_page(u64 page_id, size_t current_match_index, void WebContentClient::did_request_navigate_back(u64 page_id) { - if (auto view = view_for_page_id(page_id); view.has_value()) { - if (view->on_navigate_back) - view->on_navigate_back(); - } + if (auto view = view_for_page_id(page_id); view.has_value()) + view->traverse_the_history_by_delta(-1); } void WebContentClient::did_request_navigate_forward(u64 page_id) { - if (auto view = view_for_page_id(page_id); view.has_value()) { - if (view->on_navigate_forward) - view->on_navigate_forward(); - } + if (auto view = view_for_page_id(page_id); view.has_value()) + view->traverse_the_history_by_delta(1); } void WebContentClient::did_request_refresh(u64 page_id) { - if (auto view = view_for_page_id(page_id); view.has_value()) { - if (view->on_refresh) - view->on_refresh(); - } + if (auto view = view_for_page_id(page_id); view.has_value()) + view->reload(); } void WebContentClient::did_request_cursor_change(u64 page_id, i32 cursor_type)