From 8b998a7dd7c0b5128eb3a7b02757f38e718620a1 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 29 Aug 2018 14:10:13 +0200 Subject: [PATCH] mshtml: Skip fixups in get_nsstyle_property in IE9+ mode. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/mshtml/htmlcurstyle.c | 2 +- dlls/mshtml/htmlstyle.c | 8 ++++---- dlls/mshtml/htmlstyle.h | 2 +- dlls/mshtml/tests/style.c | 2 -- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/dlls/mshtml/htmlcurstyle.c b/dlls/mshtml/htmlcurstyle.c index c2e3ee34a7f..007be6318aa 100644 --- a/dlls/mshtml/htmlcurstyle.c +++ b/dlls/mshtml/htmlcurstyle.c @@ -48,7 +48,7 @@ struct HTMLCurrentStyle { static inline HRESULT get_current_style_property(HTMLCurrentStyle *current_style, styleid_t sid, BSTR *p) { - return get_nsstyle_property(current_style->nsstyle, sid, p); + return get_nsstyle_property(current_style->nsstyle, sid, COMPAT_MODE_QUIRKS, p); } static inline HRESULT get_current_style_property_var(HTMLCurrentStyle *This, styleid_t sid, VARIANT *v) diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index 7fa126d523f..4ec24a3a5c2 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -667,7 +667,7 @@ static HRESULT nsstyle_to_bstr(const WCHAR *val, DWORD flags, BSTR *p) return S_OK; } -HRESULT get_nsstyle_property(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, BSTR *p) +HRESULT get_nsstyle_property(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, compat_mode_t compat_mode, BSTR *p) { nsAString str_value; const PRUnichar *value; @@ -678,7 +678,7 @@ HRESULT get_nsstyle_property(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t sid, get_nsstyle_attr_nsval(nsstyle, sid, &str_value); nsAString_GetData(&str_value, &value); - hres = nsstyle_to_bstr(value, style_tbl[sid].flags, p); + hres = nsstyle_to_bstr(value, compat_mode < COMPAT_MODE_IE9 ? style_tbl[sid].flags : 0, p); nsAString_Finish(&str_value); TRACE("%s -> %s\n", debugstr_w(style_tbl[sid].name), debugstr_w(*p)); @@ -738,7 +738,7 @@ HRESULT get_nsstyle_property_var(nsIDOMCSSStyleDeclaration *nsstyle, styleid_t s static inline HRESULT get_style_property(HTMLStyle *This, styleid_t sid, BSTR *p) { - return get_nsstyle_property(This->nsstyle, sid, p); + return get_nsstyle_property(This->nsstyle, sid, dispex_compat_mode(&This->dispex), p); } static inline HRESULT get_style_property_var(HTMLStyle *This, styleid_t sid, VARIANT *v) @@ -4796,7 +4796,7 @@ HRESULT get_elem_style(HTMLElement *elem, styleid_t styleid, BSTR *ret) if(FAILED(hres)) return hres; - hres = get_nsstyle_property(style, styleid, ret); + hres = get_nsstyle_property(style, styleid, COMPAT_MODE_IE11, ret); nsIDOMCSSStyleDeclaration_Release(style); return hres; } diff --git a/dlls/mshtml/htmlstyle.h b/dlls/mshtml/htmlstyle.h index 10f0de532dc..ac0db1c36f0 100644 --- a/dlls/mshtml/htmlstyle.h +++ b/dlls/mshtml/htmlstyle.h @@ -123,7 +123,7 @@ typedef enum { HRESULT HTMLStyle_Create(HTMLElement*,HTMLStyle**) DECLSPEC_HIDDEN; -HRESULT get_nsstyle_property(nsIDOMCSSStyleDeclaration*,styleid_t,BSTR*) DECLSPEC_HIDDEN; +HRESULT get_nsstyle_property(nsIDOMCSSStyleDeclaration*,styleid_t,compat_mode_t,BSTR*) DECLSPEC_HIDDEN; HRESULT get_nsstyle_property_var(nsIDOMCSSStyleDeclaration*,styleid_t,VARIANT*) DECLSPEC_HIDDEN; HRESULT get_elem_style(HTMLElement*,styleid_t,BSTR*) DECLSPEC_HIDDEN; diff --git a/dlls/mshtml/tests/style.c b/dlls/mshtml/tests/style.c index 1a22d54a5ac..51b44fb063d 100644 --- a/dlls/mshtml/tests/style.c +++ b/dlls/mshtml/tests/style.c @@ -704,7 +704,6 @@ static void test_style6(IHTMLStyle6 *style) if(compat_mode < COMPAT_IE9) ok(str && !*str, "outline = %s\n", wine_dbgstr_w(str)); else - todo_wine ok(!str, "outline = %s\n", wine_dbgstr_w(str)); SysFreeString(str); @@ -2524,7 +2523,6 @@ static void test_body_style(IHTMLStyle *style) hres = IHTMLStyle_get_clip(style, &str); ok(hres == S_OK, "get_clip failed: %08x\n", hres); - todo_wine_if(compat_mode >= COMPAT_IE9) ok(!strcmp_wa(str, compat_mode < COMPAT_IE9 ? "rect(0px 1px 500px 505px)" : "rect(0px, 1px, 500px, 505px)"), "clip = %s\n", wine_dbgstr_w(str)); SysFreeString(str); -- 2.11.4.GIT