Module: wine Branch: master Commit: ec13283af2af8e88872d4d31e2dee6aeebabe280 URL: https://source.winehq.org/git/wine.git/?a=commit;h=ec13283af2af8e88872d4d31e...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 29 14:09:15 2018 +0200
mshtml: Skip set_style_property fixups in IE9+ mode.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/htmlstyle.c | 5 +++-- dlls/mshtml/tests/style.c | 42 +++--------------------------------------- 2 files changed, 6 insertions(+), 41 deletions(-)
diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index 31d38c8..5c48a24 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -565,7 +565,7 @@ static inline HRESULT set_style_property(HTMLStyle *style, styleid_t sid, const WCHAR *val = NULL; HRESULT hres;
- if(value && *value) { + if(value && *value && dispex_compat_mode(&style->dispex) < COMPAT_MODE_IE9) { unsigned flags = style_tbl[sid].flags;
if(style_tbl[sid].allowed_values) { @@ -4780,7 +4780,8 @@ HRESULT HTMLStyle_Create(HTMLElement *elem, HTMLStyle **ret)
nsIDOMCSSStyleDeclaration_AddRef(nsstyle);
- init_dispex(&style->dispex, (IUnknown*)&style->IHTMLStyle_iface, &HTMLStyle_dispex); + init_dispex_with_compat_mode(&style->dispex, (IUnknown*)&style->IHTMLStyle_iface, &HTMLStyle_dispex, + dispex_compat_mode(&elem->node.event_target.dispex));
*ret = style; return S_OK; diff --git a/dlls/mshtml/tests/style.c b/dlls/mshtml/tests/style.c index 12877e9..1fc26c2 100644 --- a/dlls/mshtml/tests/style.c +++ b/dlls/mshtml/tests/style.c @@ -284,7 +284,6 @@ static void _test_border_styles(unsigned line, IHTMLStyle *pStyle, BSTR Name) if(compat_mode < COMPAT_IE9) ok_(__FILE__,line) (FAILED(hres), "invalid value passed.\n"); else - todo_wine ok_(__FILE__,line) (hres == S_OK, "invalid value returned: %08x\n", hres); VariantClear(&arg);
@@ -364,21 +363,6 @@ static void _test_text_decoration(unsigned line, IHTMLStyle *style, const char * SysFreeString(str); }
-#define test_text_decoration_todo(a,b) _test_text_decoration_todo(__LINE__,a,b) -static void _test_text_decoration_todo(unsigned line, IHTMLStyle *style, const char *exdec) -{ - BSTR str; - HRESULT hres; - - hres = IHTMLStyle_get_textDecoration(style, &str); - ok_(__FILE__,line)(hres == S_OK, "get_textDecoration failed: %08x\n", hres); - if(exdec) - todo_wine ok_(__FILE__,line)(!strcmp_wa(str, exdec), "textDecoration = %s, expected %s\n", wine_dbgstr_w(str), exdec); - else - todo_wine ok_(__FILE__,line)(!str, "textDecoration = %s, expected NULL\n", wine_dbgstr_w(str)); - SysFreeString(str); -} - static void test_set_csstext(IHTMLStyle *style) { VARIANT v; @@ -639,10 +623,7 @@ static void test_style5(IHTMLStyle5 *style5)
hres = IHTMLStyle5_get_minWidth(style5, &v); ok(hres == S_OK, "get_minWidth failed: %08x\n", hres); - if(compat_mode < COMPAT_IE9) - test_var_bstr(&v, "10px"); - else - test_var_bstr_todo(&v, "10%"); + test_var_bstr(&v, compat_mode < COMPAT_IE9 ? "10px" : "10%"); VariantClear(&v);
hres = IHTMLStyle5_put_minWidth(style5, vdefault); @@ -717,10 +698,7 @@ static void test_style5(IHTMLStyle5 *style5)
hres = IHTMLStyle5_get_maxHeight(style5, &v); ok(hres == S_OK, "get_maxHeight failed: %08x\n", hres); - if(compat_mode < COMPAT_IE9) - test_var_bstr(&v, "100px"); - else - test_var_bstr_todo(&v, "70%"); + test_var_bstr(&v, compat_mode < COMPAT_IE9 ? "100px" : "70%"); VariantClear(&v);
hres = IHTMLStyle5_put_maxHeight(style5, vdefault); @@ -873,7 +851,6 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("test"); hres = IHTMLStyle_put_fontWeight(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "put_fontWeight failed: %08x\n", hres); SysFreeString(str); @@ -971,7 +948,6 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("test"); hres = IHTMLStyle_put_fontVariant(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "fontVariant failed: %08x\n", hres); SysFreeString(str); @@ -1141,7 +1117,6 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("invalid"); hres = IHTMLStyle_put_textDecoration(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "put_textDecoration failed: %08x\n", hres); SysFreeString(str); @@ -1158,14 +1133,10 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("invalid"); hres = IHTMLStyle_put_textDecoration(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "put_textDecoration failed: %08x\n", hres); SysFreeString(str); - if(compat_mode < COMPAT_IE9) - test_text_decoration(style, NULL); - else - test_text_decoration_todo(style, "blink"); + test_text_decoration(style, compat_mode < COMPAT_IE9 ? NULL : "blink");
hres = IHTMLStyle_put_textDecoration(style, sDefault); ok(hres == S_OK, "put_textDecoration failed: %08x\n", hres); @@ -1799,7 +1770,6 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("test"); hres = IHTMLStyle_put_fontStyle(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "put_fontStyle failed: %08x\n", hres); SysFreeString(str); @@ -1832,7 +1802,6 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("test"); hres = IHTMLStyle_put_overflow(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "put_overflow failed: %08x\n", hres); SysFreeString(str); @@ -2111,7 +2080,6 @@ static void test_body_style(IHTMLStyle *style) if(compat_mode < COMPAT_IE9) ok(!strcmp_wa(V_BSTR(&v), "10px"), "paddingLeft = %s\n", wine_dbgstr_w(V_BSTR(&v))); else - todo_wine ok(!V_BSTR(&v), "paddingLeft = %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v);
@@ -2124,7 +2092,6 @@ static void test_body_style(IHTMLStyle *style)
str = a2bstr("invalid"); hres = IHTMLStyle_put_backgroundRepeat(style, str); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(hres == (compat_mode < COMPAT_IE9 ? E_INVALIDARG : S_OK), "put_backgroundRepeat failed: %08x\n", hres); SysFreeString(str); @@ -2410,7 +2377,6 @@ static void test_body_style(IHTMLStyle *style)
hres = IHTMLStyle_get_borderRightWidth(style, &v); ok(hres == S_OK, "get_borderRightWidth: %08x\n", hres); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(!strcmp_wa(V_BSTR(&v), compat_mode < COMPAT_IE9 ? "10px" : "1px"), "borderRightWidth = %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v); @@ -2431,7 +2397,6 @@ static void test_body_style(IHTMLStyle *style)
hres = IHTMLStyle_get_borderBottomWidth(style, &v); ok(hres == S_OK, "get_borderBottomWidth: %08x\n", hres); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(!strcmp_wa(V_BSTR(&v), compat_mode < COMPAT_IE9 ? "10px" : "1px"), "borderBottomWidth = %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v); @@ -2452,7 +2417,6 @@ static void test_body_style(IHTMLStyle *style)
hres = IHTMLStyle_get_borderLeftWidth(style, &v); ok(hres == S_OK, "get_borderLeftWidth: %08x\n", hres); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(!strcmp_wa(V_BSTR(&v), compat_mode < COMPAT_IE9 ? "10px" : "1px"), "expected 10px = %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v);