1From c19debb4d26f731b39860f27073b69927aa611f0 Mon Sep 17 00:00:00 2001 2From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> 3Date: Wed, 23 Aug 2023 21:48:12 +0200 4Subject: [PATCH] Patch out CSS parser 5 6--- 7 source/lexbor/css/rule.h | 2 ++ 8 source/lexbor/html/interfaces/document.c | 16 ++++++++++ 9 source/lexbor/html/interfaces/element.c | 29 +++++++++++++++++++ 10 source/lexbor/html/interfaces/style_element.c | 6 ++++ 11 4 files changed, 53 insertions(+) 12 13diff --git a/source/lexbor/css/rule.h b/source/lexbor/css/rule.h 14index 7cc4f0b..f68491e 100644 15--- a/source/lexbor/css/rule.h 16+++ b/source/lexbor/css/rule.h 17@@ -344,7 +344,9 @@ lxb_css_rule_ref_dec_destroy(lxb_css_rule_t *rule) 18 } 19 20 if (rule->ref_count == 0) { 21+#if 0 22 (void) lxb_css_rule_destroy(rule, true); 23+#endif 24 } 25 } 26 27diff --git a/source/lexbor/html/interfaces/document.c b/source/lexbor/html/interfaces/document.c 28index 73184f0..b4de5b8 100755 29--- a/source/lexbor/html/interfaces/document.c 30+++ b/source/lexbor/html/interfaces/document.c 31@@ -72,8 +72,10 @@ static lxb_status_t 32 lxb_html_document_style_cb(lxb_dom_node_t *node, 33 lxb_css_selector_specificity_t spec, void *ctx); 34 35+#if 0 36 static lxb_status_t 37 lxb_html_document_done(lxb_html_document_t *document); 38+#endif 39 40 41 lxb_status_t 42@@ -86,6 +88,7 @@ lxb_html_document_parser_prepare(lxb_html_document_t *document); 43 static lexbor_action_t 44 lxb_html_document_title_walker(lxb_dom_node_t *node, void *ctx); 45 46+#if 0 47 static lxb_status_t 48 lxb_html_document_event_insert(lxb_dom_node_t *node); 49 50@@ -112,6 +115,7 @@ lxb_html_document_event_destroy(lxb_dom_node_t *node); 51 static lxb_status_t 52 lxb_html_document_event_set_value(lxb_dom_node_t *node, 53 const lxb_char_t *value, size_t length); 54+#endif 55 56 57 lxb_html_document_t * 58@@ -171,7 +175,9 @@ lxb_html_document_interface_destroy(lxb_html_document_t *document) 59 60 if (doc->node.owner_document == doc) { 61 (void) lxb_html_parser_unref(doc->parser); 62+#if 0 63 lxb_html_document_css_destroy(document); 64+#endif 65 } 66 67 (void) lxb_dom_document_destroy(doc); 68@@ -193,11 +199,14 @@ lxb_html_document_clean(lxb_html_document_t *document) 69 document->iframe_srcdoc = NULL; 70 document->ready_state = LXB_HTML_DOCUMENT_READY_STATE_UNDEF; 71 72+#if 0 73 lxb_html_document_css_clean(document); 74+#endif 75 76 lxb_dom_document_clean(lxb_dom_interface_document(document)); 77 } 78 79+#if 0 80 lxb_status_t 81 lxb_html_document_css_init(lxb_html_document_t *document) 82 { 83@@ -330,6 +339,7 @@ lxb_html_document_css_clean(lxb_html_document_t *document) 84 lexbor_dobject_clean(css->weak); 85 } 86 } 87+#endif 88 89 void 90 lxb_html_document_css_parser_attach(lxb_html_document_t *document, 91@@ -575,6 +585,7 @@ void 92 lxb_html_document_stylesheet_destroy_all(lxb_html_document_t *document, 93 bool destroy_memory) 94 { 95+#if 0 96 size_t length; 97 lxb_css_stylesheet_t *sst; 98 lxb_html_document_css_t *css = &document->css; 99@@ -586,6 +597,7 @@ lxb_html_document_stylesheet_destroy_all(lxb_html_document_t *document, 100 101 (void) lxb_css_stylesheet_destroy(sst, destroy_memory); 102 } 103+#endif 104 } 105 106 lxb_status_t 107@@ -849,6 +861,7 @@ lxb_html_document_parser_prepare(lxb_html_document_t *document) 108 return LXB_STATUS_OK; 109 } 110 111+#if 0 112 static lxb_status_t 113 lxb_html_document_done(lxb_html_document_t *document) 114 { 115@@ -873,6 +886,7 @@ lxb_html_document_done(lxb_html_document_t *document) 116 117 return LXB_STATUS_OK; 118 } 119+#endif 120 121 const lxb_char_t * 122 lxb_html_document_title(lxb_html_document_t *document, size_t *len) 123@@ -960,6 +974,7 @@ lxb_html_document_import_node(lxb_html_document_t *doc, lxb_dom_node_t *node, 124 return lxb_dom_document_import_node(&doc->dom_document, node, deep); 125 } 126 127+#if 0 128 static lxb_status_t 129 lxb_html_document_event_insert(lxb_dom_node_t *node) 130 { 131@@ -1231,6 +1246,7 @@ lxb_html_document_event_set_value(lxb_dom_node_t *node, 132 return lxb_html_element_style_parse(lxb_html_interface_element(node), 133 value, length); 134 } 135+#endif 136 137 /* 138 * No inline functions for ABI. 139diff --git a/source/lexbor/html/interfaces/element.c b/source/lexbor/html/interfaces/element.c 140index 229d3d7..363040c 100755 141--- a/source/lexbor/html/interfaces/element.c 142+++ b/source/lexbor/html/interfaces/element.c 143@@ -38,9 +38,11 @@ static lxb_status_t 144 lxb_html_element_style_serialize_cb(lexbor_avl_t *avl, lexbor_avl_node_t **root, 145 lexbor_avl_node_t *node, void *ctx); 146 147+#if 0 148 static lxb_status_t 149 lxb_html_element_style_serialize_str_cb(const lxb_char_t *data, 150 size_t len, void *ctx); 151+#endif 152 153 154 lxb_html_element_t * 155@@ -102,6 +104,7 @@ const lxb_css_rule_declaration_t * 156 lxb_html_element_style_by_name(lxb_html_element_t *element, 157 const lxb_char_t *name, size_t size) 158 { 159+#if 0 160 uintptr_t id; 161 lxb_html_style_node_t *node; 162 lxb_dom_document_t *ddoc = lxb_dom_interface_node(element)->owner_document; 163@@ -115,11 +118,14 @@ lxb_html_element_style_by_name(lxb_html_element_t *element, 164 node = (void *) lexbor_avl_search(doc->css.styles, element->style, id); 165 166 return (node != NULL) ? node->entry.value : NULL; 167+#endif 168+ return NULL; 169 } 170 171 const lxb_css_rule_declaration_t * 172 lxb_html_element_style_by_id(lxb_html_element_t *element, uintptr_t id) 173 { 174+#if 0 175 const lxb_html_style_node_t *node; 176 177 node = lxb_html_element_style_node_by_id(element, id); 178@@ -128,6 +134,8 @@ lxb_html_element_style_by_id(lxb_html_element_t *element, uintptr_t id) 179 } 180 181 return node->entry.value; 182+#endif 183+ return NULL; 184 } 185 186 const lxb_html_style_node_t * 187@@ -144,6 +152,7 @@ const lxb_html_style_node_t * 188 lxb_html_element_style_node_by_name(lxb_html_element_t *element, 189 const lxb_char_t *name, size_t size) 190 { 191+#if 0 192 uintptr_t id; 193 lxb_dom_document_t *ddoc = lxb_dom_interface_node(element)->owner_document; 194 lxb_html_document_t *doc = lxb_html_interface_document(ddoc); 195@@ -155,11 +164,14 @@ lxb_html_element_style_node_by_name(lxb_html_element_t *element, 196 197 return (lxb_html_style_node_t *) lexbor_avl_search(doc->css.styles, 198 element->style, id); 199+#endif 200+ return NULL; 201 } 202 203 const void * 204 lxb_html_element_css_property_by_id(lxb_html_element_t *element, uintptr_t id) 205 { 206+#if 0 207 lxb_css_rule_declaration_t *declr; 208 const lxb_html_style_node_t *node; 209 210@@ -171,6 +183,8 @@ lxb_html_element_css_property_by_id(lxb_html_element_t *element, uintptr_t id) 211 declr = node->entry.value; 212 213 return declr->u.user; 214+#endif 215+ return NULL; 216 } 217 218 lxb_status_t 219@@ -224,6 +238,7 @@ lxb_status_t 220 lxb_html_element_style_parse(lxb_html_element_t *element, 221 const lxb_char_t *style, size_t size) 222 { 223+#if 0 224 lxb_css_rule_declaration_list_t *list; 225 226 lxb_dom_document_t *ddoc = lxb_dom_interface_node(element)->owner_document; 227@@ -240,6 +255,8 @@ lxb_html_element_style_parse(lxb_html_element_t *element, 228 229 return lxb_html_element_style_list_append(element, list, 230 lxb_css_selector_sp_up_s(0)); 231+#endif 232+ return LXB_STATUS_ERROR; 233 } 234 235 lxb_status_t 236@@ -393,6 +410,7 @@ void 237 lxb_html_element_style_remove_by_name(lxb_html_element_t *element, 238 const lxb_char_t *name, size_t size) 239 { 240+#if 0 241 uintptr_t id; 242 lxb_dom_document_t *ddoc = lxb_dom_interface_node(element)->owner_document; 243 lxb_html_document_t *doc = lxb_html_interface_document(ddoc); 244@@ -403,11 +421,13 @@ lxb_html_element_style_remove_by_name(lxb_html_element_t *element, 245 } 246 247 lxb_html_element_style_remove_by_id(element, id); 248+#endif 249 } 250 251 void 252 lxb_html_element_style_remove_by_id(lxb_html_element_t *element, uintptr_t id) 253 { 254+#if 0 255 lxb_html_style_node_t *node; 256 lxb_dom_document_t *ddoc = lxb_dom_interface_node(element)->owner_document; 257 lxb_html_document_t *doc = lxb_html_interface_document(ddoc); 258@@ -417,6 +437,7 @@ lxb_html_element_style_remove_by_id(lxb_html_element_t *element, uintptr_t id) 259 if (node != NULL) { 260 lxb_html_element_style_remove_all(doc, &element->style, node); 261 } 262+#endif 263 } 264 265 lxb_html_style_node_t * 266@@ -576,6 +597,7 @@ static lxb_status_t 267 lxb_html_element_style_serialize_cb(lexbor_avl_t *avl, lexbor_avl_node_t **root, 268 lexbor_avl_node_t *node, void *ctx) 269 { 270+#if 0 271 lxb_status_t status; 272 lexbor_serialize_ctx_t *context = ctx; 273 274@@ -589,6 +611,8 @@ lxb_html_element_style_serialize_cb(lexbor_avl_t *avl, lexbor_avl_node_t **root, 275 context->count = 1; 276 277 return lxb_css_rule_serialize(node->value, context->cb, context->ctx); 278+#endif 279+ return LXB_STATUS_ERROR; 280 } 281 282 lxb_status_t 283@@ -596,6 +620,7 @@ lxb_html_element_style_serialize_str(lxb_html_element_t *element, 284 lexbor_str_t *str, 285 lxb_html_element_style_opt_t opt) 286 { 287+#if 0 288 lxb_dom_document_t *doc; 289 lxb_html_element_style_ctx_t context; 290 291@@ -614,8 +639,11 @@ lxb_html_element_style_serialize_str(lxb_html_element_t *element, 292 293 return lxb_html_element_style_serialize(element, opt, 294 lxb_html_element_style_serialize_str_cb, &context); 295+#endif 296+ return LXB_STATUS_ERROR; 297 } 298 299+#if 0 300 static lxb_status_t 301 lxb_html_element_style_serialize_str_cb(const lxb_char_t *data, 302 size_t len, void *ctx) 303@@ -630,3 +658,4 @@ lxb_html_element_style_serialize_str_cb(const lxb_char_t *data, 304 305 return LXB_STATUS_OK; 306 } 307+#endif 308diff --git a/source/lexbor/html/interfaces/style_element.c b/source/lexbor/html/interfaces/style_element.c 309index 66d55c4..9a402ef 100755 310--- a/source/lexbor/html/interfaces/style_element.c 311+++ b/source/lexbor/html/interfaces/style_element.c 312@@ -35,7 +35,9 @@ lxb_html_style_element_interface_destroy(lxb_html_style_element_t *style_element 313 (void) lxb_dom_node_interface_destroy(lxb_dom_interface_node(style_element)); 314 315 if (sst != NULL) { 316+#if 0 317 (void) lxb_css_stylesheet_destroy(sst, true); 318+#endif 319 } 320 321 return NULL; 322@@ -44,8 +46,10 @@ lxb_html_style_element_interface_destroy(lxb_html_style_element_t *style_element 323 lxb_status_t 324 lxb_html_style_element_parse(lxb_html_style_element_t *element) 325 { 326+#if 0 327 lexbor_str_t *str; 328 lxb_dom_text_t *text; 329+#endif 330 lxb_dom_node_t *node; 331 332 lxb_dom_document_t *ddoc = lxb_dom_interface_node(element)->owner_document; 333@@ -61,11 +65,13 @@ lxb_html_style_element_parse(lxb_html_style_element_t *element) 334 return LXB_STATUS_OK; 335 } 336 337+#if 0 338 text = lxb_dom_interface_text(lxb_dom_interface_node(element)->first_child); 339 str = &text->char_data.data; 340 341 element->stylesheet = lxb_css_stylesheet_parse(css->parser, str->data, 342 str->length); 343+#endif 344 if (element->stylesheet == NULL) { 345 return css->parser->status; 346 } 347-- 3482.41.0 349 350