Jacek Caban : mshtml: Added support for non-HTML elements.
Alexandre Julliard
julliard at winehq.org
Tue Feb 13 13:57:55 CST 2018
Module: wine
Branch: master
Commit: b947229fa92e53aa7fa2f6c9b57cdfdd868164cf
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b947229fa92e53aa7fa2f6c9b57cdfdd868164cf
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Feb 12 23:29:04 2018 +0100
mshtml: Added support for non-HTML elements.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mshtml/htmlelem.c | 27 ++++++++++++++-------------
dlls/mshtml/mshtml_private.h | 5 ++---
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index cc6f542..06e91bc 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -5570,7 +5570,6 @@ void HTMLElement_Init(HTMLElement *This, HTMLDocumentNode *doc, nsIDOMElement *n
assert((nsIDOMNode*)html_element == This->node.nsnode);
nsIDOMHTMLElement_Release(html_element);
}
- This->nselem = This->html_element;
}
ConnectionPointContainer_Init(&This->cp_container, (IUnknown*)&This->IHTMLElement_iface, This->node.vtbl->cpc_entries);
@@ -5578,24 +5577,26 @@ void HTMLElement_Init(HTMLElement *This, HTMLDocumentNode *doc, nsIDOMElement *n
HRESULT HTMLElement_Create(HTMLDocumentNode *doc, nsIDOMNode *nsnode, BOOL use_generic, HTMLElement **ret)
{
- nsIDOMHTMLElement *nselem;
- nsAString class_name_str;
- const PRUnichar *class_name;
+ nsIDOMElement *nselem;
+ nsAString tag_name_str;
+ const PRUnichar *tag_name;
const tag_desc_t *tag;
HTMLElement *elem;
nsresult nsres;
HRESULT hres;
- nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIDOMHTMLElement, (void**)&nselem);
- if(NS_FAILED(nsres))
+ nsres = nsIDOMNode_QueryInterface(nsnode, &IID_nsIDOMElement, (void**)&nselem);
+ if(NS_FAILED(nsres)) {
+ ERR("no nsIDOMElement iface\n");
return E_FAIL;
+ }
- nsAString_Init(&class_name_str, NULL);
- nsIDOMHTMLElement_GetTagName(nselem, &class_name_str);
+ nsAString_Init(&tag_name_str, NULL);
+ nsIDOMElement_GetTagName(nselem, &tag_name_str);
- nsAString_GetData(&class_name_str, &class_name);
+ nsAString_GetData(&tag_name_str, &tag_name);
- tag = get_tag_desc(class_name);
+ tag = get_tag_desc(tag_name);
if(tag) {
hres = tag->constructor(doc, (nsIDOMElement*)nselem, &elem);
}else if(use_generic) {
@@ -5611,10 +5612,10 @@ HRESULT HTMLElement_Create(HTMLDocumentNode *doc, nsIDOMNode *nsnode, BOOL use_g
}
}
- TRACE("%s ret %p\n", debugstr_w(class_name), elem);
+ TRACE("%s ret %p\n", debugstr_w(tag_name), elem);
- nsIDOMHTMLElement_Release(nselem);
- nsAString_Finish(&class_name_str);
+ nsIDOMElement_Release(nselem);
+ nsAString_Finish(&tag_name_str);
if(FAILED(hres))
return hres;
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index a0d9221..de200cf 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -779,9 +779,8 @@ typedef struct {
IElementTraversal IElementTraversal_iface;
IProvideMultipleClassInfo IProvideMultipleClassInfo_iface;
- nsIDOMHTMLElement *nselem;
- nsIDOMElement *dom_element;
- nsIDOMHTMLElement *html_element;
+ nsIDOMElement *dom_element; /* NULL for legacy comments represented as HTML elements */
+ nsIDOMHTMLElement *html_element; /* NULL for non-HTML elements (like SVG elements) */
HTMLStyle *style;
HTMLStyle *runtime_style;
HTMLAttributeCollection *attrs;
More information about the wine-cvs
mailing list