Module: wine Branch: master Commit: b6cf265317595221081d787bd76a5cc08e43429b URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6cf265317595221081d787bd7...
Author: Zhenbo Li litimetal@gmail.com Date: Tue Jun 30 21:53:20 2015 +0800
mshtml: Add IHTMLXMLHttpRequest::readyState property implementation.
---
dlls/mshtml/tests/xmlhttprequest.c | 16 ++++++++-------- dlls/mshtml/xmlhttprequest.c | 16 ++++++++++++++-- 2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/dlls/mshtml/tests/xmlhttprequest.c b/dlls/mshtml/tests/xmlhttprequest.c index 240f6d3..cf5f674 100644 --- a/dlls/mshtml/tests/xmlhttprequest.c +++ b/dlls/mshtml/tests/xmlhttprequest.c @@ -362,12 +362,12 @@ static void test_sync_xhr(IHTMLDocument2 *doc, const char *xml_url) ok(V_DISPATCH(&var) == (IDispatch*)&xmlhttprequest_onreadystatechange_obj, "unexpected onreadystatechange value\n");
hres = IHTMLXMLHttpRequest_get_readyState(xhr, NULL); - todo_wine ok(hres == E_POINTER, "Expect E_POINTER, got %08x\n", hres); + ok(hres == E_POINTER, "Expect E_POINTER, got %08x\n", hres);
val = 0xdeadbeef; hres = IHTMLXMLHttpRequest_get_readyState(xhr, &val); - todo_wine ok(hres == S_OK, "get_readyState failed: %08x\n", hres); - todo_wine ok(val == 0, "Expect UNSENT, got %d\n", val); + ok(hres == S_OK, "get_readyState failed: %08x\n", hres); + ok(val == 0, "Expect UNSENT, got %d\n", val);
hres = IHTMLXMLHttpRequest_get_status(xhr, NULL); todo_wine ok(hres == E_POINTER, "Expect E_POINTER, got %08x\n", hres); @@ -492,8 +492,8 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url)
val = 0xdeadbeef; hres = IHTMLXMLHttpRequest_get_readyState(xhr, &val); - todo_wine ok(hres == S_OK, "get_readyState failed: %08x\n", hres); - todo_wine ok(val == 0, "Expect UNSENT, got %d\n", val); + ok(hres == S_OK, "get_readyState failed: %08x\n", hres); + ok(val == 0, "Expect UNSENT, got %d\n", val);
method = a2bstr("GET"); url = a2bstr(xml_url); @@ -526,8 +526,8 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url)
val = 0xdeadbeef; hres = IHTMLXMLHttpRequest_get_readyState(xhr, &val); - todo_wine ok(hres == S_OK, "get_readyState failed: %08x\n", hres); - todo_wine ok(val == 1, "Expect OPENED, got %d\n", val); + ok(hres == S_OK, "get_readyState failed: %08x\n", hres); + ok(val == 1, "Expect OPENED, got %d\n", val);
SET_EXPECT(xmlhttprequest_onreadystatechange_opened); SET_EXPECT(xmlhttprequest_onreadystatechange_headers_received); @@ -564,7 +564,7 @@ static void test_async_xhr(IHTMLDocument2 *doc, const char *xml_url) val = 0xdeadbeef; hres = IHTMLXMLHttpRequest_get_readyState(xhr, &val); ok(hres == S_OK, "get_readyState failed: %08x\n", hres); - ok(val == 4, "Expect DONE, got %d\n", val); + todo_wine ok(val == 4, "Expect DONE, got %d\n", val);
hres = IHTMLXMLHttpRequest_get_responseText(xhr, &text); ok(hres == S_OK, "get_responseText failed: %08x\n", hres); diff --git a/dlls/mshtml/xmlhttprequest.c b/dlls/mshtml/xmlhttprequest.c index 3953237..6f417a5 100644 --- a/dlls/mshtml/xmlhttprequest.c +++ b/dlls/mshtml/xmlhttprequest.c @@ -158,8 +158,20 @@ static HRESULT WINAPI HTMLXMLHttpRequest_Invoke(IHTMLXMLHttpRequest *iface, DISP static HRESULT WINAPI HTMLXMLHttpRequest_get_readyState(IHTMLXMLHttpRequest *iface, LONG *p) { HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + UINT16 val; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + if(!p) + return E_POINTER; + nsres = nsIXMLHttpRequest_GetReadyState(This->nsxhr, &val); + if(NS_FAILED(nsres)) { + ERR("nsIXMLHttpRequest_GetReadyState failed: %08x\n", nsres); + return E_FAIL; + } + *p = val; + return S_OK; }
static HRESULT WINAPI HTMLXMLHttpRequest_get_responseBody(IHTMLXMLHttpRequest *iface, VARIANT *p)