mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-03 22:59:33 +00:00
LibDevTools: Stub out a layout inspector actor
The DevTools client will ask for this actor before trying to render any box model or computed style information. We can just stub out this actor for now.
This commit is contained in:
parent
c56bf8ac93
commit
3f8b65e45c
Notes:
github-actions[bot]
2025-02-24 17:06:47 +00:00
Author: https://github.com/trflynn89
Commit: 3f8b65e45c
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3666
Reviewed-by: https://github.com/AtkinsSJ
6 changed files with 89 additions and 0 deletions
45
Libraries/LibDevTools/Actors/LayoutInspectorActor.cpp
Normal file
45
Libraries/LibDevTools/Actors/LayoutInspectorActor.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright (c) 2025, Tim Flynn <trflynn89@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <AK/JsonArray.h>
|
||||
#include <AK/JsonObject.h>
|
||||
#include <LibDevTools/Actors/LayoutInspectorActor.h>
|
||||
|
||||
namespace DevTools {
|
||||
|
||||
NonnullRefPtr<LayoutInspectorActor> LayoutInspectorActor::create(DevToolsServer& devtools, String name)
|
||||
{
|
||||
return adopt_ref(*new LayoutInspectorActor(devtools, move(name)));
|
||||
}
|
||||
|
||||
LayoutInspectorActor::LayoutInspectorActor(DevToolsServer& devtools, String name)
|
||||
: Actor(devtools, move(name))
|
||||
{
|
||||
}
|
||||
|
||||
LayoutInspectorActor::~LayoutInspectorActor() = default;
|
||||
|
||||
void LayoutInspectorActor::handle_message(StringView type, JsonObject const&)
|
||||
{
|
||||
JsonObject response;
|
||||
response.set("from"sv, name());
|
||||
|
||||
if (type == "getCurrentFlexbox"sv) {
|
||||
response.set("flexbox"sv, JsonValue {});
|
||||
send_message(move(response));
|
||||
return;
|
||||
}
|
||||
|
||||
if (type == "getGrids"sv) {
|
||||
response.set("grids"sv, JsonArray {});
|
||||
send_message(move(response));
|
||||
return;
|
||||
}
|
||||
|
||||
send_unrecognized_packet_type_error(type);
|
||||
}
|
||||
|
||||
}
|
27
Libraries/LibDevTools/Actors/LayoutInspectorActor.h
Normal file
27
Libraries/LibDevTools/Actors/LayoutInspectorActor.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright (c) 2025, Tim Flynn <trflynn89@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/NonnullRefPtr.h>
|
||||
#include <LibDevTools/Actor.h>
|
||||
|
||||
namespace DevTools {
|
||||
|
||||
class LayoutInspectorActor final : public Actor {
|
||||
public:
|
||||
static constexpr auto base_name = "layout-inspector"sv;
|
||||
|
||||
static NonnullRefPtr<LayoutInspectorActor> create(DevToolsServer&, String name);
|
||||
virtual ~LayoutInspectorActor() override;
|
||||
|
||||
virtual void handle_message(StringView type, JsonObject const&) override;
|
||||
|
||||
private:
|
||||
LayoutInspectorActor(DevToolsServer&, String name);
|
||||
};
|
||||
|
||||
}
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <AK/JsonArray.h>
|
||||
#include <AK/StringUtils.h>
|
||||
#include <LibDevTools/Actors/LayoutInspectorActor.h>
|
||||
#include <LibDevTools/Actors/NodeActor.h>
|
||||
#include <LibDevTools/Actors/TabActor.h>
|
||||
#include <LibDevTools/Actors/WalkerActor.h>
|
||||
|
@ -59,6 +60,18 @@ void WalkerActor::handle_message(StringView type, JsonObject const& message)
|
|||
return;
|
||||
}
|
||||
|
||||
if (type == "getLayoutInspector"sv) {
|
||||
if (!m_layout_inspector)
|
||||
m_layout_inspector = devtools().register_actor<LayoutInspectorActor>();
|
||||
|
||||
JsonObject actor;
|
||||
actor.set("actor"sv, m_layout_inspector->name());
|
||||
|
||||
response.set("actor"sv, move(actor));
|
||||
send_message(move(response));
|
||||
return;
|
||||
}
|
||||
|
||||
if (type == "querySelector"sv) {
|
||||
auto node = message.get_string("node"sv);
|
||||
if (!node.has_value()) {
|
||||
|
|
|
@ -44,6 +44,8 @@ private:
|
|||
void populate_dom_tree_cache(JsonObject& node, JsonObject const* parent = nullptr);
|
||||
|
||||
WeakPtr<TabActor> m_tab;
|
||||
WeakPtr<LayoutInspectorActor> m_layout_inspector;
|
||||
|
||||
JsonObject m_dom_tree;
|
||||
|
||||
HashMap<JsonObject const*, JsonObject const*> m_dom_node_to_parent_map;
|
||||
|
|
|
@ -5,6 +5,7 @@ set(SOURCES
|
|||
Actors/FrameActor.cpp
|
||||
Actors/HighlighterActor.cpp
|
||||
Actors/InspectorActor.cpp
|
||||
Actors/LayoutInspectorActor.cpp
|
||||
Actors/NodeActor.cpp
|
||||
Actors/PageStyleActor.cpp
|
||||
Actors/PreferenceActor.cpp
|
||||
|
|
|
@ -17,6 +17,7 @@ class DevToolsServer;
|
|||
class FrameActor;
|
||||
class HighlighterActor;
|
||||
class InspectorActor;
|
||||
class LayoutInspectorActor;
|
||||
class NodeActor;
|
||||
class PageStyleActor;
|
||||
class PreferenceActor;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue