2024-08-23 10:42:35 +01:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2024, Sam Atkins <sam@ladybird.org>
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <LibIPC/Forward.h>
|
|
|
|
#include <LibURL/URL.h>
|
2025-07-19 19:35:33 -07:00
|
|
|
#include <LibWeb/Export.h>
|
2024-10-20 10:37:44 +02:00
|
|
|
#include <LibWeb/Forward.h>
|
2024-08-23 10:42:35 +01:00
|
|
|
|
|
|
|
namespace Web::CSS {
|
|
|
|
|
|
|
|
struct StyleSheetIdentifier {
|
|
|
|
enum class Type : u8 {
|
|
|
|
StyleElement,
|
|
|
|
LinkElement,
|
|
|
|
ImportRule,
|
|
|
|
UserAgent,
|
|
|
|
UserStyle,
|
2025-03-12 14:34:23 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
Type type;
|
2024-10-20 10:37:44 +02:00
|
|
|
Optional<UniqueNodeID> dom_element_unique_id {};
|
2024-08-23 10:42:35 +01:00
|
|
|
Optional<String> url {};
|
2025-03-12 14:34:23 -04:00
|
|
|
size_t rule_count { 0 };
|
2025-09-26 17:24:18 +01:00
|
|
|
|
|
|
|
bool operator==(StyleSheetIdentifier const& other) const
|
|
|
|
{
|
|
|
|
return type == other.type && dom_element_unique_id == other.dom_element_unique_id && url == other.url;
|
|
|
|
}
|
2024-08-23 10:42:35 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
StringView style_sheet_identifier_type_to_string(StyleSheetIdentifier::Type);
|
|
|
|
Optional<StyleSheetIdentifier::Type> style_sheet_identifier_type_from_string(StringView);
|
2025-05-13 07:06:33 -04:00
|
|
|
|
2024-08-23 10:42:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
namespace IPC {
|
|
|
|
|
|
|
|
template<>
|
2025-07-19 19:35:33 -07:00
|
|
|
WEB_API ErrorOr<void> encode(Encoder&, Web::CSS::StyleSheetIdentifier const&);
|
2024-08-23 10:42:35 +01:00
|
|
|
|
|
|
|
template<>
|
2025-07-19 19:35:33 -07:00
|
|
|
WEB_API ErrorOr<Web::CSS::StyleSheetIdentifier> decode(Decoder&);
|
2024-08-23 10:42:35 +01:00
|
|
|
|
|
|
|
}
|