From b4adbb4dc08d385e3c490496b1652431df617557 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gabriel=20Iv=C4=83ncescu?= Date: Wed, 27 Jul 2022 21:33:35 +0300 Subject: [PATCH] mshtml: Implement childElementCount for Elements. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Ivăncescu --- dlls/mshtml/htmlelem.c | 11 +++++++++-- dlls/mshtml/tests/dom.js | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 76de1a0337c..826d131df77 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -6611,8 +6611,15 @@ static HRESULT WINAPI ElementTraversal_get_nextElementSibling(IElementTraversal static HRESULT WINAPI ElementTraversal_get_childElementCount(IElementTraversal *iface, LONG *p) { HTMLElement *This = impl_from_IElementTraversal(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + UINT32 count = 0; + + TRACE("(%p)->(%p)\n", This, p); + + if(This->dom_element) + nsIDOMElement_GetChildElementCount(This->dom_element, &count); + + *p = count; + return S_OK; } static const IElementTraversalVtbl ElementTraversalVtbl = { diff --git a/dlls/mshtml/tests/dom.js b/dlls/mshtml/tests/dom.js index 93b4dc196ec..231633b0712 100644 --- a/dlls/mshtml/tests/dom.js +++ b/dlls/mshtml/tests/dom.js @@ -90,6 +90,7 @@ sync_test("textContent", function() { sync_test("ElementTraversal", function() { var div = document.createElement("div"); div.innerHTML = "abcbold
text
def"; + ok(div.childElementCount === 3, "div.childElementCount = " + div.childElementCount); ok(div.firstElementChild.outerHTML === "bold", "div.firstElementChild.outerHTML = " + div.firstElementChild.outerHTML); ok(div.lastElementChild.outerHTML === "
text
", @@ -104,9 +105,11 @@ sync_test("ElementTraversal", function() { "div.firstElementChild.previousElementSibling = " + div.firstElementChild.previousElementSibling); div.innerHTML = "abc"; + ok(div.childElementCount === 0, "div.childElementCount = " + div.childElementCount); ok(div.firstElementChild === null, "div.firstElementChild = " + div.firstElementChild); ok(div.lastElementChild === null, "div.lastElementChild = " + div.lastElementChild); + ok(!("childElementCount" in document), "childElementCount found in document"); ok(!("firstElementChild" in document), "firstElementChild found in document"); ok(!("nextElementSibling" in document), "nextElementSibling found in document"); }); -- 2.11.4.GIT