From 78bf1b62ec2b75e41569ddda5a62647fa4efdf08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
Date: Mon, 25 Jul 2022 21:54:04 +0300
Subject: [PATCH] mshtml: Implement ProgressEvent's loaded prop.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
---
 dlls/mshtml/htmlevent.c  | 6 ++++--
 dlls/mshtml/tests/xhr.js | 4 ++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 3fac9c05309..55511f3ac79 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -2514,8 +2514,10 @@ static HRESULT WINAPI DOMProgressEvent_get_lengthComputable(IDOMProgressEvent *i
 static HRESULT WINAPI DOMProgressEvent_get_loaded(IDOMProgressEvent *iface, ULONGLONG *p)
 {
     DOMProgressEvent *This = impl_from_IDOMProgressEvent(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, p);
+
+    return map_nsresult(nsIDOMProgressEvent_GetLoaded(This->nsevent, p));
 }
 
 static HRESULT WINAPI DOMProgressEvent_get_total(IDOMProgressEvent *iface, ULONGLONG *p)
diff --git a/dlls/mshtml/tests/xhr.js b/dlls/mshtml/tests/xhr.js
index 9af44850a39..c60107c556f 100644
--- a/dlls/mshtml/tests/xhr.js
+++ b/dlls/mshtml/tests/xhr.js
@@ -48,6 +48,7 @@ function test_xhr() {
             for(var i = 0; i < props.length; i++)
                 ok(props[i] in e, props[i] + " not available in loadstart");
             ok(e.lengthComputable === false, "lengthComputable in loadstart = " + e.lengthComputable);
+            ok(e.loaded === 0, "loaded in loadstart = " + e.loaded);
             loadstart = true;
         };
         xhr.onloadend = function(e) {
@@ -57,6 +58,8 @@ function test_xhr() {
             for(var i = 0; i < props.length; i++)
                 ok(props[i] in e, props[i] + " not available in loadend");
             ok(e.lengthComputable === true, "lengthComputable in loadend = " + e.lengthComputable);
+            todo_wine.
+            ok(e.loaded === xml.length, "loaded in loadend = " + e.loaded);
             next_test();
         };
     }
@@ -175,6 +178,7 @@ function test_timeout() {
         }
         if(v >= 10) {
             ok(e.lengthComputable === false, "lengthComputable = " + e.lengthComputable);
+            ok(e.loaded === 0, "loaded = " + e.loaded);
         }
         next_test();
     }
-- 
GitLab