Module: wine Branch: master Commit: 80ea5a01ef42b0e9e0b6c872f8f5bbbf393c0ae7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=80ea5a01ef42b0e9e0b6c872f8...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Jan 29 14:48:06 2016 +0100
mshtml: Use script versioning 2 if we're not in quirks mode.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/script.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index 2a47f8a..01e5d5b 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -110,6 +110,26 @@ static void set_script_prop(ScriptHost *script_host, DWORD property, VARIANT *va WARN("SetProperty(%x) failed: %08x\n", property, hres); }
+static BOOL is_quirks_mode(HTMLDocumentNode *doc) +{ + const WCHAR *compat_mode; + nsAString nsstr; + nsresult nsres; + BOOL ret = FALSE; + + static const WCHAR BackCompatW[] = {'B','a','c','k','C','o','m','p','a','t',0}; + + nsAString_Init(&nsstr, NULL); + nsres = nsIDOMHTMLDocument_GetCompatMode(doc->nsdoc, &nsstr); + if(NS_SUCCEEDED(nsres)) { + nsAString_GetData(&nsstr, &compat_mode); + if(!strcmpW(compat_mode, BackCompatW)) + ret = TRUE; + } + nsAString_Finish(&nsstr); + return ret; +} + static BOOL init_script_engine(ScriptHost *script_host) { IObjectSafety *safety; @@ -148,7 +168,7 @@ static BOOL init_script_engine(ScriptHost *script_host) return FALSE;
V_VT(&var) = VT_I4; - V_I4(&var) = 1; + V_I4(&var) = is_quirks_mode(script_host->window->doc) ? 1 : 2; set_script_prop(script_host, SCRIPTPROP_INVOKEVERSIONING, &var);
V_VT(&var) = VT_BOOL;