ieframe: Implement IWebBrowser2::get_LocationName().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=12457
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
(cherry picked from commit 92713253ab
)
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
This commit is contained in:
parent
6622aed36e
commit
1edb71ad07
|
@ -254,6 +254,19 @@ static void _test_LocationURL(unsigned line, IWebBrowser2 *wb, const WCHAR *exur
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define test_LocationName(a,b) _test_LocationName(__LINE__,a,b)
|
||||||
|
static void _test_LocationName(unsigned line, IWebBrowser2 *wb, const WCHAR *exname)
|
||||||
|
{
|
||||||
|
BSTR name = (void*)0xdeadbeef;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
hres = IWebBrowser2_get_LocationName(wb, &name);
|
||||||
|
ok_(__FILE__,line) (hres == (*exname ? S_OK : S_FALSE), "get_LocationName failed: %08x\n", hres);
|
||||||
|
ok_(__FILE__,line) (!lstrcmpW(name, exname) || broken(is_http && !lstrcmpW(name, current_url)) /* Win10 2004 */,
|
||||||
|
"expected %s, got %s\n", wine_dbgstr_w(exname), wine_dbgstr_w(name));
|
||||||
|
SysFreeString(name);
|
||||||
|
}
|
||||||
|
|
||||||
#define test_ready_state(a,b) _test_ready_state(__LINE__,a,b)
|
#define test_ready_state(a,b) _test_ready_state(__LINE__,a,b)
|
||||||
static void _test_ready_state(unsigned line, READYSTATE exstate, VARIANT_BOOL expect_busy)
|
static void _test_ready_state(unsigned line, READYSTATE exstate, VARIANT_BOOL expect_busy)
|
||||||
{
|
{
|
||||||
|
@ -2785,11 +2798,13 @@ static void test_ConnectionPoint(IWebBrowser2 *unk, BOOL init)
|
||||||
|
|
||||||
static void test_Navigate2(IWebBrowser2 *webbrowser, const WCHAR *nav_url)
|
static void test_Navigate2(IWebBrowser2 *webbrowser, const WCHAR *nav_url)
|
||||||
{
|
{
|
||||||
|
const WCHAR *title = L"WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X";
|
||||||
VARIANT url;
|
VARIANT url;
|
||||||
BOOL is_file;
|
BOOL is_file;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
test_LocationURL(webbrowser, is_first_load ? L"" : current_url);
|
test_LocationURL(webbrowser, is_first_load ? L"" : current_url);
|
||||||
|
test_LocationName(webbrowser, is_first_load ? L"" : (is_http ? title : current_url));
|
||||||
test_ready_state(is_first_load ? READYSTATE_UNINITIALIZED : READYSTATE_COMPLETE, VARIANT_FALSE);
|
test_ready_state(is_first_load ? READYSTATE_UNINITIALIZED : READYSTATE_COMPLETE, VARIANT_FALSE);
|
||||||
|
|
||||||
is_http = !memcmp(nav_url, "http:", 5);
|
is_http = !memcmp(nav_url, "http:", 5);
|
||||||
|
|
|
@ -539,8 +539,25 @@ static HRESULT WINAPI WebBrowser_put_Height(IWebBrowser2 *iface, LONG Height)
|
||||||
static HRESULT WINAPI WebBrowser_get_LocationName(IWebBrowser2 *iface, BSTR *LocationName)
|
static HRESULT WINAPI WebBrowser_get_LocationName(IWebBrowser2 *iface, BSTR *LocationName)
|
||||||
{
|
{
|
||||||
WebBrowser *This = impl_from_IWebBrowser2(iface);
|
WebBrowser *This = impl_from_IWebBrowser2(iface);
|
||||||
FIXME("(%p)->(%p)\n", This, LocationName);
|
IHTMLDocument2 *doc;
|
||||||
return E_NOTIMPL;
|
HRESULT hres;
|
||||||
|
|
||||||
|
TRACE("(%p)->(%p)\n", This, LocationName);
|
||||||
|
|
||||||
|
if(This->doc_host.document &&
|
||||||
|
SUCCEEDED(IUnknown_QueryInterface(This->doc_host.document, &IID_IHTMLDocument2, (void **)&doc))) {
|
||||||
|
hres = IHTMLDocument2_get_title(doc, LocationName);
|
||||||
|
if(hres == S_OK && !SysStringLen(*LocationName)) {
|
||||||
|
SysFreeString(*LocationName);
|
||||||
|
hres = get_location_url(&This->doc_host, LocationName);
|
||||||
|
}
|
||||||
|
IHTMLDocument2_Release(doc);
|
||||||
|
} else {
|
||||||
|
*LocationName = SysAllocString(L"");
|
||||||
|
hres = S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return hres;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI WebBrowser_get_LocationURL(IWebBrowser2 *iface, BSTR *LocationURL)
|
static HRESULT WINAPI WebBrowser_get_LocationURL(IWebBrowser2 *iface, BSTR *LocationURL)
|
||||||
|
|
Loading…
Reference in New Issue