Jacek Caban : mshtml: Use script versioning 2 if we're not in quirks mode.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jan 29 09:10:09 CST 2016


Module: wine
Branch: master
Commit: 80ea5a01ef42b0e9e0b6c872f8f5bbbf393c0ae7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=80ea5a01ef42b0e9e0b6c872f8f5bbbf393c0ae7

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;




More information about the wine-cvs mailing list