diff --git a/Ladybird/Qt/BrowserWindow.cpp b/Ladybird/Qt/BrowserWindow.cpp index 3e66e82b1b..e34c3fde61 100644 --- a/Ladybird/Qt/BrowserWindow.cpp +++ b/Ladybird/Qt/BrowserWindow.cpp @@ -278,6 +278,12 @@ BrowserWindow::BrowserWindow(Optional const& initial_url, Browser::CookieJa debug_request("collect-garbage"); }); + auto* dump_gc_graph_action = new QAction("Dump GC graph", this); + debug_menu->addAction(dump_gc_graph_action); + QObject::connect(dump_gc_graph_action, &QAction::triggered, this, [this] { + debug_request("dump-gc-graph"); + }); + auto* clear_cache_action = new QAction("Clear &Cache", this); clear_cache_action->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_C)); clear_cache_action->setIcon(QIcon(QString("%1/res/icons/browser/clear-cache.png").arg(s_serenity_resource_root.characters()))); diff --git a/Userland/Services/WebContent/ConnectionFromClient.cpp b/Userland/Services/WebContent/ConnectionFromClient.cpp index 7a4207207a..9dce9a7d66 100644 --- a/Userland/Services/WebContent/ConnectionFromClient.cpp +++ b/Userland/Services/WebContent/ConnectionFromClient.cpp @@ -410,6 +410,10 @@ void ConnectionFromClient::debug_request(DeprecatedString const& request, Deprec Web::Bindings::main_thread_vm().heap().collect_garbage(JS::Heap::CollectionType::CollectGarbage, true); } + if (request == "dump-gc-graph") { + Web::Bindings::main_thread_vm().heap().dump_graph(); + } + if (request == "set-line-box-borders") { bool state = argument == "on"; m_page_host->set_should_show_line_box_borders(state);