From 883dc9260d8e2b26d862a685fe14e2acba4a4ed2 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 8 Jun 2020 21:35:31 +0200 Subject: [PATCH] LibWeb: Unbreak favicon notifications after Page refactoring Favicon updates now get plumbed from FrameLoader to the PageClient. --- Libraries/LibWeb/Frame/Frame.h | 2 -- Libraries/LibWeb/Loader/FrameLoader.cpp | 3 +-- Libraries/LibWeb/Page.h | 1 + Libraries/LibWeb/PageView.cpp | 6 ++++++ Libraries/LibWeb/PageView.h | 1 + 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Libraries/LibWeb/Frame/Frame.h b/Libraries/LibWeb/Frame/Frame.h index 3233831e48..af259be517 100644 --- a/Libraries/LibWeb/Frame/Frame.h +++ b/Libraries/LibWeb/Frame/Frame.h @@ -60,8 +60,6 @@ public: void set_needs_display(const Gfx::Rect&); - Function on_favicon_change; - void set_viewport_rect(const Gfx::Rect&); Gfx::Rect viewport_rect() const { return m_viewport_rect; } diff --git a/Libraries/LibWeb/Loader/FrameLoader.cpp b/Libraries/LibWeb/Loader/FrameLoader.cpp index 54691e7eeb..f625a03e57 100644 --- a/Libraries/LibWeb/Loader/FrameLoader.cpp +++ b/Libraries/LibWeb/Loader/FrameLoader.cpp @@ -172,8 +172,7 @@ bool FrameLoader::load(const URL& url) return; } dbg() << "Decoded favicon, " << bitmap->size(); - if (frame().on_favicon_change) - frame().on_favicon_change(*bitmap); + frame().page().client().page_did_change_favicon(*bitmap); }); } diff --git a/Libraries/LibWeb/Page.h b/Libraries/LibWeb/Page.h index 9dd7bf14f5..af703deb68 100644 --- a/Libraries/LibWeb/Page.h +++ b/Libraries/LibWeb/Page.h @@ -82,6 +82,7 @@ public: virtual void page_did_unhover_link() { } virtual void page_did_request_scroll_to_anchor([[maybe_unused]] const String& fragment) { } virtual void page_did_invalidate(const Gfx::Rect&) { } + virtual void page_did_change_favicon(const Gfx::Bitmap&) { } }; } diff --git a/Libraries/LibWeb/PageView.cpp b/Libraries/LibWeb/PageView.cpp index 1a5dbafeda..ab85a1d4a5 100644 --- a/Libraries/LibWeb/PageView.cpp +++ b/Libraries/LibWeb/PageView.cpp @@ -145,6 +145,12 @@ void PageView::page_did_invalidate(const Gfx::Rect&) update(); } +void PageView::page_did_change_favicon(const Gfx::Bitmap& bitmap) +{ + if (on_favicon_change) + on_favicon_change(bitmap); +} + void PageView::layout_and_sync_size() { if (!document()) diff --git a/Libraries/LibWeb/PageView.h b/Libraries/LibWeb/PageView.h index bf646fd849..1e3de29f99 100644 --- a/Libraries/LibWeb/PageView.h +++ b/Libraries/LibWeb/PageView.h @@ -105,6 +105,7 @@ private: virtual void page_did_unhover_link() override; virtual void page_did_request_scroll_to_anchor(const String& fragment) override; virtual void page_did_invalidate(const Gfx::Rect&) override; + virtual void page_did_change_favicon(const Gfx::Bitmap&) override; void layout_and_sync_size();