From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmltextnode.c | 24 ++++++++++++++++++------ dlls/mshtml/tests/documentmode.js | 2 ++ 2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/dlls/mshtml/htmltextnode.c b/dlls/mshtml/htmltextnode.c index c9149ac54c8..ddd3095d3e7 100644 --- a/dlls/mshtml/htmltextnode.c +++ b/dlls/mshtml/htmltextnode.c @@ -175,6 +175,17 @@ static const IWineHTMLCharacterDataVtbl CharacterDataVtbl = { CharacterData_replaceData };
+static void CharacterData_init_dispex_info(dispex_data_t *info, compat_mode_t mode) +{ + dispex_info_add_interface(info, IWineHTMLCharacterData_tid, NULL); +} + +dispex_static_data_t CharacterData_dispex = { + .id = PROT_CharacterData, + .prototype_id = PROT_Node, + .init_info = CharacterData_init_dispex_info, +}; + static void init_char_data(HTMLDOMNode *node, struct CharacterData *ret) { nsresult nsres = nsIDOMNode_QueryInterface(node->nsnode, &IID_nsIDOMCharacterData, (void**)&ret->nschardata); @@ -364,11 +375,6 @@ static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = { .clone = HTMLDOMTextNode_clone };
-dispex_static_data_t CharacterData_dispex = { - .id = PROT_CharacterData, - .prototype_id = PROT_Node, -}; - static const dispex_static_data_vtbl_t Text_dispex_vtbl = { .query_interface = HTMLDOMTextNode_query_interface, .destructor = HTMLDOMNode_destructor, @@ -376,6 +382,12 @@ static const dispex_static_data_vtbl_t Text_dispex_vtbl = { .unlink = HTMLDOMNode_unlink };
+static void Text_init_dispex_info(dispex_data_t *info, compat_mode_t mode) +{ + HTMLDOMNode_init_dispex_info(info, mode); + CharacterData_init_dispex_info(info, mode); +} + static const tid_t Text_iface_tids[] = { IHTMLDOMNode_tid, IHTMLDOMNode2_tid, @@ -389,7 +401,7 @@ dispex_static_data_t Text_dispex = { .vtbl = &Text_dispex_vtbl, .disp_tid = DispHTMLDOMTextNode_tid, .iface_tids = Text_iface_tids, - .init_info = HTMLDOMNode_init_dispex_info, + .init_info = Text_init_dispex_info, };
HRESULT HTMLDOMTextNode_Create(HTMLDocumentNode *doc, nsIDOMNode *nsnode, HTMLDOMNode **node) diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index fea12ce1f1a..d187efd32f0 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -3665,6 +3665,7 @@ sync_test("prototype props", function() { test_own_props(constr.prototype, name, props, todos, flaky); }
+ check(CharacterData, [ "appendData", "data", "deleteData", "insertData", "length", "replaceData", "substringData" ]); check(CSSStyleRule, [ "readOnly", "selectorText", "style" ]); check(CustomEvent, [ "detail", "initCustomEvent" ]); check(DocumentType, [ "entities", "internalSubset", "name", "notations", "publicId", "systemId" ]); @@ -3698,5 +3699,6 @@ sync_test("prototype props", function() { "PROCESSING_INSTRUCTION_NODE", "TEXT_NODE", "hasAttributes", "normalize" ]); check(StorageEvent, [ "initStorageEvent", "key", "newValue", "oldValue", "storageArea", "url" ]); + check(Text, [ "removeNode", "replaceNode", "replaceWholeText", "splitText", "swapNode", "wholeText" ], [ "replaceWholeText", "toString", "wholeText" ]); check(UIEvent, [ "detail", "initUIEvent", "view" ], null, [ "deviceSessionId" ]); });