ladybird/Libraries/LibDevTools/Actors/PageStyleActor.h
Sam Atkins 52e1d30404 LibWeb+LibDevTools: Report applied style rules to Firefox
Collect the style rules that apply to an inspected element and expose
them through the existing DOM node inspection path. This gives Firefox's
Rules panel real rule forms instead of the previous empty getApplied
response.
2026-06-04 20:54:33 +01:00

41 lines
1.1 KiB
C++

/*
* Copyright (c) 2025, Tim Flynn <trflynn89@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/NonnullRefPtr.h>
#include <LibDevTools/Actor.h>
#include <LibDevTools/Forward.h>
#include <LibWebView/DOMNodeProperties.h>
namespace DevTools {
class DEVTOOLS_API PageStyleActor final : public Actor {
public:
static constexpr auto base_name = "page-style"sv;
static NonnullRefPtr<PageStyleActor> create(DevToolsServer&, String name, WeakPtr<InspectorActor>);
virtual ~PageStyleActor() override;
JsonValue serialize_style() const;
private:
PageStyleActor(DevToolsServer&, String name, WeakPtr<InspectorActor>);
virtual void handle_message(Message const&) override;
void inspect_dom_node(Message const&, WebView::DOMNodeProperties::Type);
void clear_style_rule_actors();
void received_applied_style_rules(JsonObject&, JsonValue const&);
void received_dom_node_properties(WebView::DOMNodeProperties const&);
WeakPtr<InspectorActor> m_inspector;
Vector<Message, 1> m_pending_inspect_requests;
Vector<String> m_style_rule_actors;
};
}