Module: wine Branch: master Commit: 8b998a7dd7c0b5128eb3a7b02757f38e718620a1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=8b998a7dd7c0b5128eb3a7b02...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 29 14:10:13 2018 +0200
mshtml: Skip fixups in get_nsstyle_property in IE9+ mode.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 c2e3ee3..007be63 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 7fa126d..4ec24a3 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 10f0de5..ac0db1c 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 1a22d54..51b44fb 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);