From 8ef6713acb5e3287c1b0c6ce6ff27485a427f482 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 14 Mar 2008 12:42:42 +0100 Subject: [PATCH] urlmon: Added special URLACTION_SCRIPT_OVERRIDE_SAFETY handling. --- dlls/urlmon/sec_mgr.c | 6 ++++++ dlls/urlmon/tests/misc.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/dlls/urlmon/sec_mgr.c b/dlls/urlmon/sec_mgr.c index 525a37aa39c..049ed2acbee 100644 --- a/dlls/urlmon/sec_mgr.c +++ b/dlls/urlmon/sec_mgr.c @@ -176,6 +176,12 @@ static HRESULT get_action_policy(DWORD zone, DWORD action, BYTE *policy, DWORD s LONG res; HRESULT hres; + switch(action) { + case URLACTION_SCRIPT_OVERRIDE_SAFETY: + *(DWORD*)policy = URLPOLICY_DISALLOW; + return S_OK; + } + switch(zone_reg) { case URLZONEREG_DEFAULT: case URLZONEREG_HKCU: diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c index 77b00ad9157..96612b076df 100644 --- a/dlls/urlmon/tests/misc.c +++ b/dlls/urlmon/tests/misc.c @@ -856,6 +856,23 @@ static void test_url_action(IInternetSecurityManager *secmgr, IInternetZoneManag } } +static void test_special_url_action(IInternetSecurityManager *secmgr, IInternetZoneManager *zonemgr, DWORD action) +{ + DWORD policy; + HRESULT hres; + + policy = 0xdeadbeef; + hres = IInternetZoneManager_GetZoneActionPolicy(zonemgr, 3, action, (BYTE*)&policy, + sizeof(DWORD), URLZONEREG_DEFAULT); + ok(hres == S_OK, "GetZoneActionPolicy failed: %08x\n", hres); + ok(policy == URLPOLICY_DISALLOW, "(%x) policy=%x, expected URLPOLIVY_DISALLOW\n", action, policy); + + policy = 0xdeadbeef; + hres = IInternetSecurityManager_ProcessUrlAction(secmgr, url1, action, (BYTE*)&policy, + sizeof(WCHAR), NULL, 0, 0, 0); + ok(hres == S_FALSE, "ProcessUrlAction(%x) failed: %08x, expected S_FALSE\n", action, hres); +} + static void test_polices(void) { IInternetZoneManager *zonemgr = NULL; @@ -872,6 +889,8 @@ static void test_polices(void) test_url_action(secmgr, zonemgr, URLACTION_CHANNEL_SOFTDIST_PERMISSIONS); test_url_action(secmgr, zonemgr, 0xdeadbeef); + test_special_url_action(secmgr, zonemgr, URLACTION_SCRIPT_OVERRIDE_SAFETY); + IInternetSecurityManager_Release(secmgr); IInternetZoneManager_Release(zonemgr); } -- 2.11.4.GIT