Module: wine Branch: master Commit: b6dff3f733120c33095b03cda68251987fb4abf0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6dff3f733120c33095b03cda6...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Sep 30 23:59:28 2009 +0200
mshtml: Return HTMLDocumentNode object in ScriptHost::QueryService for SID_SInternetHostSecurityManager.
---
dlls/mshtml/script.c | 10 ++++++++++ dlls/mshtml/tests/script.c | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index c242242..5c83e1e 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -557,6 +557,16 @@ static HRESULT WINAPI ASServiceProvider_QueryService(IServiceProvider *iface, RE REFIID riid, void **ppv) { ScriptHost *This = SERVPROV_THIS(iface); + + if(IsEqualGUID(&SID_SInternetHostSecurityManager, guidService)) { + TRACE("(%p)->(SID_SInternetHostSecurityManager)\n", This); + + if(!This->window || !This->window->doc) + return E_NOINTERFACE; + + return IInternetHostSecurityManager_QueryInterface(HOSTSECMGR(This->window->doc), riid, ppv); + } + FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); return E_NOINTERFACE; } diff --git a/dlls/mshtml/tests/script.c b/dlls/mshtml/tests/script.c index 6c6504b..92897a6 100644 --- a/dlls/mshtml/tests/script.c +++ b/dlls/mshtml/tests/script.c @@ -571,6 +571,23 @@ static const IObjectSafetyVtbl ObjectSafetyVtbl = {
static IObjectSafety ObjectSafety = { &ObjectSafetyVtbl };
+static void test_security(void) +{ + IInternetHostSecurityManager *sec_mgr; + IServiceProvider *sp; + HRESULT hres; + + hres = IActiveScriptSite_QueryInterface(site, &IID_IServiceProvider, (void**)&sp); + ok(hres == S_OK, "Could not get IServiceProvider iface: %08x\n", hres); + + hres = IServiceProvider_QueryService(sp, &SID_SInternetHostSecurityManager, + &IID_IInternetHostSecurityManager, (void**)&sec_mgr); + IServiceProvider_Release(sp); + ok(hres == S_OK, "QueryService failed: %08x\n", hres); + + IInternetHostSecurityManager_Release(sec_mgr); +} + static HRESULT WINAPI ActiveScriptProperty_QueryInterface(IActiveScriptProperty *iface, REFIID riid, void **ppv) { *ppv = NULL; @@ -960,6 +977,8 @@ static HRESULT WINAPI ActiveScriptParse_ParseScriptText(IActiveScriptParse *ifac CHECK_CALLED(GetScriptDispatch); CHECK_CALLED(script_testprop_i);
+ test_security(); + return S_OK; }