diff --git a/dlls/mshtml/omnavigator.c b/dlls/mshtml/omnavigator.c index 7479180f80e..6e912d35e29 100644 --- a/dlls/mshtml/omnavigator.c +++ b/dlls/mshtml/omnavigator.c @@ -226,8 +226,16 @@ static HRESULT WINAPI OmNavigator_get_opsProfile(IOmNavigator *iface, IHTMLOpsPr static HRESULT WINAPI OmNavigator_toString(IOmNavigator *iface, BSTR *String) { OmNavigator *This = OMNAVIGATOR_THIS(iface); - FIXME("(%p)->(%p)\n", This, String); - return E_NOTIMPL; + + static const WCHAR objectW[] = {'[','o','b','j','e','c','t',']',0}; + + TRACE("(%p)->(%p)\n", This, String); + + if(!String) + return E_INVALIDARG; + + *String = SysAllocString(objectW); + return *String ? S_OK : E_OUTOFMEMORY; } static HRESULT WINAPI OmNavigator_get_cpuClass(IOmNavigator *iface, BSTR *p) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index e10e41a278b..e9dfef75e3f 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -2492,6 +2492,15 @@ static void test_navigator(IHTMLDocument2 *doc) ok(!memcmp(bstr, v40, sizeof(v40)), "appVersion is %s\n", wine_dbgstr_w(bstr)); SysFreeString(bstr); + hres = IOmNavigator_toString(navigator, NULL); + ok(hres == E_INVALIDARG, "toString failed: %08x\n", hres); + + bstr = NULL; + hres = IOmNavigator_toString(navigator, &bstr); + ok(hres == S_OK, "toString failed: %08x\n", hres); + ok(!strcmp_wa(bstr, "[object]"), "toString returned %s\n", wine_dbgstr_w(bstr)); + SysFreeString(bstr); + ref = IOmNavigator_Release(navigator); ok(!ref, "navigator should be destroyed here\n"); }