summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bindings/hubbub/parser.c12
-rw-r--r--include/dom/core/document.h32
-rw-r--r--include/dom/html/html_document.h32
-rw-r--r--src/core/document.c17
-rw-r--r--src/core/document.h14
-rw-r--r--src/html/html_document.c17
-rw-r--r--src/html/html_document.h14
7 files changed, 71 insertions, 67 deletions
diff --git a/bindings/hubbub/parser.c b/bindings/hubbub/parser.c
index 7b41c92..ab6fbbf 100644
--- a/bindings/hubbub/parser.c
+++ b/bindings/hubbub/parser.c
@@ -755,16 +755,16 @@ static hubbub_error set_quirks_mode(void *parser, hubbub_quirks_mode mode)
switch (mode) {
case HUBBUB_QUIRKS_MODE_NONE:
- dom_html_document_set_quirks_mode(dom_parser->doc,
- DOM_HTML_DOCUMENT_QUIRKS_MODE_NONE);
+ dom_document_set_quirks_mode(dom_parser->doc,
+ DOM_DOCUMENT_QUIRKS_MODE_NONE);
break;
case HUBBUB_QUIRKS_MODE_LIMITED:
- dom_html_document_set_quirks_mode(dom_parser->doc,
- DOM_HTML_DOCUMENT_QUIRKS_MODE_LIMITED);
+ dom_document_set_quirks_mode(dom_parser->doc,
+ DOM_DOCUMENT_QUIRKS_MODE_LIMITED);
break;
case HUBBUB_QUIRKS_MODE_FULL:
- dom_html_document_set_quirks_mode(dom_parser->doc,
- DOM_HTML_DOCUMENT_QUIRKS_MODE_FULL);
+ dom_document_set_quirks_mode(dom_parser->doc,
+ DOM_DOCUMENT_QUIRKS_MODE_FULL);
break;
}
diff --git a/include/dom/core/document.h b/include/dom/core/document.h
index 58d4639..31a46b3 100644
--- a/include/dom/core/document.h
+++ b/include/dom/core/document.h
@@ -34,6 +34,16 @@ struct lwc_string_s;
typedef struct dom_document dom_document;
+/**
+ * Quirks mode flag
+ */
+typedef enum dom_document_quirks_mode {
+ DOM_DOCUMENT_QUIRKS_MODE_NONE,
+ DOM_DOCUMENT_QUIRKS_MODE_LIMITED,
+ DOM_DOCUMENT_QUIRKS_MODE_FULL
+} dom_document_quirks_mode;
+
+
/* DOM Document vtable */
typedef struct dom_document_vtable {
struct dom_node_vtable base;
@@ -114,6 +124,10 @@ typedef struct dom_document_vtable {
dom_exception (*dom_document_rename_node)(struct dom_document *doc,
struct dom_node *node, dom_string *namespace,
dom_string *qname, struct dom_node **result);
+ dom_exception (*get_quirks_mode)(dom_document *doc,
+ dom_document_quirks_mode *result);
+ dom_exception (*set_quirks_mode)(dom_document *doc,
+ dom_document_quirks_mode quirks);
} dom_document_vtable;
static inline dom_exception dom_document_get_doctype(struct dom_document *doc,
@@ -440,4 +454,22 @@ static inline dom_exception dom_document_rename_node(struct dom_document *doc,
(dom_document *) (d), (dom_string *) (ns), \
(dom_string *) (q), (dom_node **) (r))
+static inline dom_exception dom_document_get_quirks_mode(
+ dom_document *doc, dom_document_quirks_mode *result)
+{
+ return ((dom_document_vtable *) ((dom_node *) doc)->vtable)->
+ get_quirks_mode(doc, result);
+}
+#define dom_document_get_quirks_mode(d, r) \
+ dom_document_get_quirks_mode((dom_document *) (d), (r))
+
+static inline dom_exception dom_document_set_quirks_mode(
+ dom_document *doc, dom_document_quirks_mode quirks)
+{
+ return ((dom_document_vtable *) ((dom_node *) doc)->vtable)->
+ set_quirks_mode(doc, quirks);
+}
+#define dom_document_set_quirks_mode(d, q) \
+ dom_document_set_quirks_mode((dom_document *) (d), (q))
+
#endif
diff --git a/include/dom/html/html_document.h b/include/dom/html/html_document.h
index 0f23bfa..6270f47 100644
--- a/include/dom/html/html_document.h
+++ b/include/dom/html/html_document.h
@@ -20,16 +20,6 @@ struct dom_nodelist;
typedef struct dom_html_document dom_html_document;
-/**
- * Quirks mode flag
- */
-typedef enum dom_html_document_quirks_mode {
- DOM_HTML_DOCUMENT_QUIRKS_MODE_NONE,
- DOM_HTML_DOCUMENT_QUIRKS_MODE_LIMITED,
- DOM_HTML_DOCUMENT_QUIRKS_MODE_FULL
-} dom_html_document_quirks_mode;
-
-
typedef struct dom_html_document_vtable {
struct dom_document_vtable base;
@@ -70,10 +60,6 @@ typedef struct dom_html_document_vtable {
dom_string *text);
dom_exception (*get_elements_by_name)(dom_html_document *doc,
dom_string *name, struct dom_nodelist **list);
- dom_exception (*get_quirks_mode)(dom_html_document *doc,
- dom_html_document_quirks_mode *result);
- dom_exception (*set_quirks_mode)(dom_html_document *doc,
- dom_html_document_quirks_mode quirks);
} dom_html_document_vtable;
static inline dom_exception dom_html_document_get_title(
@@ -264,23 +250,5 @@ static inline dom_exception dom_html_document_get_elements_by_name(dom_html_docu
dom_html_document_get_element_by_name((dom_html_document *) (d), \
(dom_string *) (n), (struct dom_nodelist **) (l))
-static inline dom_exception dom_html_document_get_quirks_mode(
- dom_html_document *doc, dom_html_document_quirks_mode *result)
-{
- return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
- get_quirks_mode(doc, result);
-}
-#define dom_html_document_get_quirks_mode(d, r) \
- dom_html_document_get_quirks_mode((dom_html_document *) (d), (r))
-
-static inline dom_exception dom_html_document_set_quirks_mode(
- dom_html_document *doc, dom_html_document_quirks_mode quirks)
-{
- return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
- set_quirks_mode(doc, quirks);
-}
-#define dom_html_document_set_quirks_mode(d, q) \
- dom_html_document_set_quirks_mode((dom_html_document *) (d), (q))
-
#endif
diff --git a/src/core/document.c b/src/core/document.c
index fbdaa7a..ef2a54e 100644
--- a/src/core/document.c
+++ b/src/core/document.c
@@ -131,6 +131,7 @@ dom_exception _dom_document_initialise(dom_document *doc,
list_init(&doc->pending_nodes);
doc->id_name = NULL;
+ doc->quirks = DOM_DOCUMENT_QUIRKS_MODE_NONE;
err = dom_string_create_interned((const uint8_t *) "class",
SLEN("class"), &doc->class_string);
@@ -1374,3 +1375,19 @@ void _dom_document_set_id_name(dom_document *doc, dom_string *name)
doc->id_name = dom_string_ref(name);
}
+/*-----------------------------------------------------------------------*/
+/* Semi-internal API extensions for NetSurf */
+
+dom_exception _dom_document_get_quirks_mode(dom_document *doc,
+ dom_document_quirks_mode *result)
+{
+ *result = doc->quirks;
+ return DOM_NO_ERR;
+}
+
+dom_exception _dom_document_set_quirks_mode(dom_document *doc,
+ dom_document_quirks_mode quirks)
+{
+ doc->quirks = quirks;
+ return DOM_NO_ERR;
+}
diff --git a/src/core/document.h b/src/core/document.h
index a53c358..d8e6945 100644
--- a/src/core/document.h
+++ b/src/core/document.h
@@ -55,7 +55,9 @@ struct dom_document {
dom_string *class_string; /**< The string "class". */
dom_document_event_internal dei;
- /**< The DocumentEVent interface */
+ /**< The DocumentEvent interface */
+ dom_document_quirks_mode quirks;
+ /**< Document is in quirks mode */
};
/* Create a DOM document */
@@ -139,6 +141,11 @@ dom_exception _dom_document_rename_node(dom_document *doc,
dom_node *node,
dom_string *namespace, dom_string *qname,
dom_node **result);
+dom_exception _dom_document_get_quirks_mode(dom_document *doc,
+ dom_document_quirks_mode *result);
+dom_exception _dom_document_set_quirks_mode(dom_document *doc,
+ dom_document_quirks_mode result);
+
dom_exception _dom_document_get_text_content(dom_node_internal *node,
dom_string **result);
@@ -176,7 +183,10 @@ dom_exception _dom_document_set_text_content(dom_node_internal *node,
_dom_document_adopt_node, \
_dom_document_get_dom_config, \
_dom_document_normalize, \
- _dom_document_rename_node
+ _dom_document_rename_node, \
+ _dom_document_get_quirks_mode, \
+ _dom_document_set_quirks_mode
+
/* End of vtable */
#define DOM_NODE_VTABLE_DOCUMENT \
diff --git a/src/html/html_document.c b/src/html/html_document.c
index 9bce128..52e0b9c 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -73,7 +73,6 @@ dom_exception _dom_html_document_initialise(dom_html_document *doc,
doc->domain = NULL;
doc->url = NULL;
doc->cookie = NULL;
- doc->quirks = false;
return DOM_NO_ERR;
}
@@ -348,19 +347,3 @@ dom_exception _dom_html_document_get_elements_by_name(dom_html_document *doc,
return DOM_NOT_SUPPORTED_ERR;
}
-/*-----------------------------------------------------------------------*/
-/* Semi-internal API extensions for NetSurf */
-
-dom_exception _dom_html_document_get_quirks_mode(dom_html_document *doc,
- dom_html_document_quirks_mode *result)
-{
- *result = doc->quirks;
- return DOM_NO_ERR;
-}
-
-dom_exception _dom_html_document_set_quirks_mode(dom_html_document *doc,
- dom_html_document_quirks_mode quirks)
-{
- doc->quirks = quirks;
- return DOM_NO_ERR;
-}
diff --git a/src/html/html_document.h b/src/html/html_document.h
index 6d60aa5..3b7ed58 100644
--- a/src/html/html_document.h
+++ b/src/html/html_document.h
@@ -23,8 +23,6 @@ struct dom_html_document {
dom_string *domain; /**< HTML document domain */
dom_string *url; /**< HTML document URL */
dom_string *cookie; /**< HTML document cookie */
- dom_html_document_quirks_mode quirks;
- /**< HTML document is in quirks mode */
};
/* Create a HTMLDocument */
@@ -82,10 +80,6 @@ dom_exception _dom_html_document_writeln(dom_html_document *doc,
dom_string *text);
dom_exception _dom_html_document_get_elements_by_name(dom_html_document *doc,
dom_string *name, struct dom_nodelist **list);
-dom_exception _dom_html_document_get_quirks_mode(dom_html_document *doc,
- dom_html_document_quirks_mode *result);
-dom_exception _dom_html_document_set_quirks_mode(dom_html_document *doc,
- dom_html_document_quirks_mode result);
#define DOM_HTML_DOCUMENT_VTABLE \
@@ -107,9 +101,7 @@ dom_exception _dom_html_document_set_quirks_mode(dom_html_document *doc,
_dom_html_document_close, \
_dom_html_document_write, \
_dom_html_document_writeln, \
- _dom_html_document_get_elements_by_name, \
- _dom_html_document_get_quirks_mode, \
- _dom_html_document_set_quirks_mode
+ _dom_html_document_get_elements_by_name
dom_exception _dom_html_document_create_element(dom_document *doc,
dom_string *tag_name, dom_element **result);
@@ -148,7 +140,9 @@ dom_exception _dom_html_document_create_element_ns(dom_document *doc,
_dom_document_adopt_node, \
_dom_document_get_dom_config, \
_dom_document_normalize, \
- _dom_document_rename_node
+ _dom_document_rename_node, \
+ _dom_document_get_quirks_mode, \
+ _dom_document_set_quirks_mode
#endif