diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c index 8f640f92aee..cbf8db0f72d 100644 --- a/dlls/urlmon/tests/misc.c +++ b/dlls/urlmon/tests/misc.c @@ -339,10 +339,13 @@ static const WCHAR mimeImageXPng[] = {'i','m','a','g','e','/','x','-','p','n','g static const WCHAR mimeImageTiff[] = {'i','m','a','g','e','/','t','i','f','f',0}; static const WCHAR mimeVideoAvi[] = {'v','i','d','e','o','/','a','v','i',0}; static const WCHAR mimeVideoMpeg[] = {'v','i','d','e','o','/','m','p','e','g',0}; +static const WCHAR mimeAppXCompressed[] = {'a','p','p','l','i','c','a','t','i','o','n','/', + 'x','-','c','o','m','p','r','e','s','s','e','d',0}; static const WCHAR mimeAppXZip[] = {'a','p','p','l','i','c','a','t','i','o','n','/', 'x','-','z','i','p','-','c','o','m','p','r','e','s','s','e','d',0}; static const WCHAR mimeAppXGzip[] = {'a','p','p','l','i','c','a','t','i','o','n','/', 'x','-','g','z','i','p','-','c','o','m','p','r','e','s','s','e','d',0}; +static const WCHAR mimeAppJava[] = {'a','p','p','l','i','c','a','t','i','o','n','/','j','a','v','a',0}; static const struct { LPCWSTR url; @@ -418,6 +421,9 @@ static BYTE data58[] = {0x1f,0x8b}; static BYTE data59[] = {0x50,0x4b,'x'}; static BYTE data60[] = {0x50,0x4b}; static BYTE data61[] = {0x50,0x4b,'<','h','t','m','l','>',0}; +static BYTE data62[] = {0xca,0xfe,0xba,0xbe,'x'}; +static BYTE data63[] = {0xca,0xfe,0xba,0xbe}; +static BYTE data64[] = {0xca,0xfe,0xba,0xbe,'<','h','t','m','l','>',0}; static const struct { BYTE *data; @@ -484,7 +490,10 @@ static const struct { {data58, sizeof(data58), mimeAppOctetStream}, {data59, sizeof(data59), mimeAppXZip}, {data60, sizeof(data60), mimeTextPlain}, - {data61, sizeof(data61), mimeTextHtml} + {data61, sizeof(data61), mimeTextHtml}, + {data62, sizeof(data62), mimeAppJava}, + {data63, sizeof(data63), mimeTextPlain}, + {data64, sizeof(data64), mimeTextHtml} }; static void test_FindMimeFromData(void) diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c index 57e1e0fc4a4..ce80ba6e767 100644 --- a/dlls/urlmon/urlmon_main.c +++ b/dlls/urlmon/urlmon_main.c @@ -479,6 +479,11 @@ static BOOL application_xgzip_filter(const BYTE const *b, DWORD size) return size > 2 && b[0] == 0x1f && b[1] == 0x8b; } +static BOOL application_java_filter(const BYTE const *b, DWORD size) +{ + return size > 4 && b[0] == 0xca && b[1] == 0xfe && b[2] == 0xba && b[3] == 0xbe; +} + static BOOL text_plain_filter(const BYTE const *b, DWORD size) { const BYTE *ptr; @@ -543,6 +548,8 @@ HRESULT WINAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer, 'x','-','z','i','p','-','c','o','m','p','r','e','s','s','e','d',0}; static const WCHAR wszAppXGzip[] = {'a','p','p','l','i','c','a','t','i','o','n','/', 'x','-','g','z','i','p','-','c','o','m','p','r','e','s','s','e','d',0}; + static const WCHAR wszAppJava[] = {'a','p','p','l','i','c','a','t','i','o','n','/', + 'j','a','v','a',0}; static const WCHAR wszTextPlain[] = {'t','e','x','t','/','p','l','a','i','n','\0'}; static const WCHAR wszAppOctetStream[] = {'a','p','p','l','i','c','a','t','i','o','n','/', 'o','c','t','e','t','-','s','t','r','e','a','m','\0'}; @@ -561,6 +568,7 @@ HRESULT WINAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer, {wszVideoMpeg, video_mpeg_filter}, {wszAppXZip, application_xzip_filter}, {wszAppXGzip, application_xgzip_filter}, + {wszAppJava, application_java_filter}, {wszTextPlain, text_plain_filter}, {wszAppOctetStream, application_octet_stream_filter} };