summaryrefslogtreecommitdiff
path: root/Userland/Applications/Browser
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@gmail.com>2021-09-01 12:50:47 +0100
committerAndreas Kling <kling@serenityos.org>2021-09-02 22:16:41 +0200
commit724f45c7841e18962184a5b486b62b8f98358d5f (patch)
tree4beb8d3ff270c95e121fcf28fcb827d47bb86fc9 /Userland/Applications/Browser
parent73c95bcd5f4031a7049ec5af515208e14d2ee7b8 (diff)
downloadserenity-724f45c7841e18962184a5b486b62b8f98358d5f.zip
Browser: Reload the DOM Inspector's JSON data when loading a new page
Of course, there are other reasons the DOM might change, but one thing at a time. :^)
Diffstat (limited to 'Userland/Applications/Browser')
-rw-r--r--Userland/Applications/Browser/InspectorWidget.cpp7
-rw-r--r--Userland/Applications/Browser/InspectorWidget.h1
-rw-r--r--Userland/Applications/Browser/Tab.cpp10
3 files changed, 17 insertions, 1 deletions
diff --git a/Userland/Applications/Browser/InspectorWidget.cpp b/Userland/Applications/Browser/InspectorWidget.cpp
index eaac3ae982..fb7ddd997a 100644
--- a/Userland/Applications/Browser/InspectorWidget.cpp
+++ b/Userland/Applications/Browser/InspectorWidget.cpp
@@ -117,6 +117,13 @@ void InspectorWidget::set_dom_json(String json)
}
}
+void InspectorWidget::clear_dom_json()
+{
+ m_dom_json.clear();
+ m_dom_tree_view->set_model(nullptr);
+ clear_style_json();
+}
+
void InspectorWidget::set_dom_node_properties_json(i32 node_id, String specified_values_json, String computed_values_json)
{
if (node_id != m_inspected_node_id) {
diff --git a/Userland/Applications/Browser/InspectorWidget.h b/Userland/Applications/Browser/InspectorWidget.h
index 5c36d27ae5..58e1464ccc 100644
--- a/Userland/Applications/Browser/InspectorWidget.h
+++ b/Userland/Applications/Browser/InspectorWidget.h
@@ -19,6 +19,7 @@ public:
void set_web_view(NonnullRefPtr<Web::OutOfProcessWebView> web_view) { m_web_view = web_view; }
void set_dom_json(String);
+ void clear_dom_json();
void set_dom_node_properties_json(i32 node_id, String specified_values_json, String computed_values_json);
void set_inspected_node(i32 node_id);
diff --git a/Userland/Applications/Browser/Tab.cpp b/Userland/Applications/Browser/Tab.cpp
index cee913d7c4..570d7a82b6 100644
--- a/Userland/Applications/Browser/Tab.cpp
+++ b/Userland/Applications/Browser/Tab.cpp
@@ -175,6 +175,14 @@ Tab::Tab(BrowserWindow& window)
update_actions();
update_bookmark_button(url.to_string());
+
+ if (m_dom_inspector_widget)
+ m_dom_inspector_widget->clear_dom_json();
+ };
+
+ hooks().on_load_finish = [this](auto&) {
+ if (m_dom_inspector_widget)
+ m_web_content_view->inspect_dom_tree();
};
hooks().on_link_click = [this](auto& url, auto& target, unsigned modifiers) {
@@ -478,8 +486,8 @@ void Tab::show_inspector_window(Browser::Tab::InspectorTarget inspector_target)
};
m_dom_inspector_widget = window->set_main_widget<InspectorWidget>();
m_dom_inspector_widget->set_web_view(*m_web_content_view);
+ m_web_content_view->inspect_dom_tree();
}
- m_web_content_view->inspect_dom_tree();
if (inspector_target == InspectorTarget::HoveredElement) {
Optional<i32> hovered_node = m_web_content_view->get_hovered_node_id();