From 41ffc69c9da2d2c44b265f69bfa0a89760801346 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sun, 10 Dec 2023 09:32:26 -0500 Subject: [PATCH] LibWebView: Clear the Inspector DOM/accessibility trees upon reset This prevents rendering stale trees while navigating to a new page. The old non-WebView inspector widgets behaved this way. --- Base/res/ladybird/inspector.js | 13 +++++++++++++ Userland/Libraries/LibWebView/InspectorClient.cpp | 5 +++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Base/res/ladybird/inspector.js b/Base/res/ladybird/inspector.js index 5e8e210b04d..0485e397806 100644 --- a/Base/res/ladybird/inspector.js +++ b/Base/res/ladybird/inspector.js @@ -85,6 +85,19 @@ const scrollToElement = element => { window.scrollTo(0, position); }; +inspector.reset = () => { + let domTree = document.getElementById("dom-tree"); + domTree.innerHTML = ""; + + let accessibilityTree = document.getElementById("accessibility-tree"); + accessibilityTree.innerHTML = ""; + + selectedDOMNode = null; + pendingEditDOMNode = null; + + inspector.clearConsoleOutput(); +}; + inspector.loadDOMTree = tree => { let domTree = document.getElementById("dom-tree"); domTree.innerHTML = atob(tree); diff --git a/Userland/Libraries/LibWebView/InspectorClient.cpp b/Userland/Libraries/LibWebView/InspectorClient.cpp index 6ee8728b61c..e208b9a6d80 100644 --- a/Userland/Libraries/LibWebView/InspectorClient.cpp +++ b/Userland/Libraries/LibWebView/InspectorClient.cpp @@ -181,12 +181,13 @@ void InspectorClient::inspect() void InspectorClient::reset() { + static constexpr auto script = "inspector.reset();"sv; + m_inspector_web_view.run_javascript(script); + m_body_node_id.clear(); m_pending_selection.clear(); - m_dom_tree_loaded = false; - clear_console_output(); m_highest_notified_message_index = -1; m_highest_received_message_index = -1; m_waiting_for_messages = false;