Hi all,
It's time to do another update of Wine Gecko, so I prepared a new beta
build. It's already on Sourceforge [1]. Until server-side support for
auto install of the package is committed [2], its manual installation is
required [3]. I attached a patch to Wine that is required for the new Gecko.
Anything that uses MSHTML is worth testing. All help with testing is
appreciated!
Cheers,
Jacek
[1] https://sourceforge.net/projects/wine/files/Wine%20Gecko/2.24-beta1/
[2] http://source.winehq.org/patches/data/97881
[3] http://wiki.winehq.org/Gecko
diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c
index be6fb6d..c5070dc 100644
--- a/dlls/appwiz.cpl/addons.c
+++ b/dlls/appwiz.cpl/addons.c
@@ -53,14 +53,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl);
-#define GECKO_VERSION 2.21
+#define GECKO_VERSION 2.24-beta1
#ifdef __i386__
#define ARCH_STRING x86
-#define GECKO_SHA a514fc4d53783a586c7880a676c415695fe934a3
+#define GECKO_SHA 659cce1a0e2f4c6768aedf7bcbb4072e8a465c43
#elif defined(__x86_64__)
#define ARCH_STRING x86_64
-#define GECKO_SHA c6f249ff2c6eb7dfe423ef246aba54e1a3b26934
+#define GECKO_SHA 31f182f0e2003537aadb27328d3bcd8f3598b722
#else
#define ARCH_STRING
#define GECKO_SHA ???
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index db4b8e7..73e8f55 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -1728,8 +1728,8 @@ static HRESULT HTMLElement_invoke(DispatchEx *dispex,
DISPID id, LCID lcid,
static HRESULT HTMLElement_populate_props(DispatchEx *dispex)
{
HTMLElement *This = impl_from_DispatchEx(dispex);
-nsIDOMNamedNodeMap *attrs;
-nsIDOMNode *node;
+nsIDOMMozNamedAttrMap *attrs;
+nsIDOMAttr *attr;
nsAString nsstr;
const PRUnichar *str;
BSTR name;
@@ -1747,40 +1747,40 @@ static HRESULT HTMLElement_populate_props(DispatchEx
*dispex)
if(NS_FAILED(nsres))
return E_FAIL;
-nsres = nsIDOMNamedNodeMap_GetLength(attrs, len);
+nsres = nsIDOMMozNamedAttrMap_GetLength(attrs, len);
if(NS_FAILED(nsres)) {
-nsIDOMNamedNodeMap_Release(attrs);
+nsIDOMMozNamedAttrMap_Release(attrs);
return E_FAIL;
}
nsAString_Init(nsstr, NULL);
for(i=0; ilen; i++) {
-nsres = nsIDOMNamedNodeMap_Item(attrs, i, node);
+nsres = nsIDOMMozNamedAttrMap_Item(attrs, i, attr);
if(NS_FAILED(nsres))
continue;
-nsres = nsIDOMNode_GetNodeName(node, nsstr);
+nsres = nsIDOMAttr_GetNodeName(attr, nsstr);
if(NS_FAILED(nsres)) {
-nsIDOMNode_Release(node);
+nsIDOMAttr_Release(attr);
continue;
}
nsAString_GetData(nsstr, str);
name = SysAllocString(str);
if(!name) {
-nsIDOMNode_Release(node);
+nsIDOMAttr_Release(attr);
continue;
}
hres = IDispatchEx_GetDispID(dispex-IDispatchEx_iface, name,
fdexNameCaseInsensitive, id);
if(hres != DISP_E_UNKNOWNNAME) {
-nsIDOMNode_Release(node);
+nsIDOMAttr_Release(attr);
SysFreeString(name);
continue;
}
-nsres = nsIDOMNode_GetNodeValue(node, nsstr);
-nsIDOMNode_Release(node);
+nsres = nsIDOMAttr_GetNodeValue(attr, nsstr);
+nsIDOMAttr_Release(attr);
if(NS_FAILED(nsres)) {
SysFreeString(name);
continue;
@@ -1803,7 +1803,7 @@ static HRESULT HTMLElement_populate_props(DispatchEx
*dispex)
}
nsAString_Finish(nsstr);
-nsIDOMNamedNodeMap_Release(attrs);
+nsIDOMMozNamedAttrMap_Release(attrs);
return S_OK;
}
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index 5c40f41..65161fd 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -38,6 +38,7 @@
#include mshtml_private.h
#include htmlevent.h
#include htmlscript.h
+#include pluginhost.h
#include binding.h
#include resource.h
@@ -114,8 +115,12 @@ static void detach_inner_window(HTMLInnerWindow *window)
if(outer_window outer_window-doc_obj outer_window ==
outer_window-doc_obj-basedoc.window)
window-doc-basedoc.cp_container.forward_container = NULL;
-if(window-doc)
+if(window-doc) {
detach_events(window-doc);
+while(!list_empty(window-doc-plugin_hosts))
+
detach_plugin_host(LIST_ENTRY(list_head(window-doc-plugin_hosts),
PluginHost, entry));
+}
+
abort_window_bindings(window);
remove_target_tasks(window-task_magic);
release_script_hosts(window);
diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c
index 4e72464..7fa13e5 100644
--- a/dlls/mshtml/nsembed.c
+++ b/dlls/mshtml/nsembed.c
@@ -486,7 +486,7 @@ static BOOL load_xul(const PRUnichar *gre_path)
}
#define NS_DLSYM(func) \
-func = (void *)GetProcAddress(xul_handle, #func _P); \
+func = (void *)GetProcAddress(xul_handle, #func); \
if(!func) \
ERR(Could not