Hi all,
We're nearing the time for the next Gecko update. Beta builds are done
and available on Sourceforge [1]. To use them, you need to download the
.cab file, put it as you usually do into the right directory (most
likely wine_gecko-1.2.0-beta1-x86.cab, see [2] for details) and apply
the attached patch to recent Wine git version.
The plan for release is other than we usually did and we have still some
work to do. I hope to do the release short after Firefox 4 release,
which is scheduled for the end of February. Firefox is nearing final
beta and we will branch together with RC branch for Firefox 4. This
should give us more stability in the code base than we usually had.
We've never succeeded in avoiding regressions with the new Gecko
releases and I hope to improve this situation. This early beta build is
one part of the plan. It would be great if you could use it for some
time or try some apps with it. I'm most interested in reports about
regression, but also general stability and improvements.
* Changes
- We use Firefox 4 beta11pre codebase
- Some regression caused by integration with new parser are fixed
(affected among others CS4 installer, STO, EQ2)
- IO fixes for custom protocol handlers, mostly affecting .chm files and
Outlook
If you hit a blank-page bug, some page elements don't work or just a
crash, there is a big chance that this build will fix it. Of course it's
always nice to test everything regardless if it's currently working or not.
* TODO
- win64 fix
It currently crashes, that's a regression. I've decided to do the beta
release anyways, but it's an obvious blocker for further releases. I've
put win64 builds on Sourceforge in case anyone is interested in looking
at them, but the problem seems to be in the build, not in Wine.
- MSI packages
This beta still uses .cab files done on Windows. We're planning to do
some work on it with Hans and Alexandre so that the final release will
use MSI files.
- dbghelp fixes
winedbg has problems with debug info from Gecko debug build, making
debugging possibilities quite limited and backtraces lacking most of the
calls. This is not related to Gecko release itself, but still it would
be great to have it fixed.
- Getting rid of ugly hacks that Firefox uses
Esp. API hooks. I don't think it's acceptable for us.
- Tests and fixes
The more tests, the better. I really hope to get community help here.
* For packagers
If you're considering building the next Gecko release yourself, it's
probably a good idea to try the compilation now. It requires very recent
mingw-w64, so a package update (or creating a new package if it's not
yet available for the distro) will most likely be needed.
Thanks,
Jacek
[1] http://sourceforge.net/projects/wine/files/Wine%20Gecko/1.2.0-beta1/
[2] http://wiki.winehq.org/Gecko
diff --git a/dlls/appwiz.cpl/addons.c b/dlls/appwiz.cpl/addons.c
index d19af66..e1f98af 100644
--- a/dlls/appwiz.cpl/addons.c
+++ b/dlls/appwiz.cpl/addons.c
@@ -50,7 +50,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(appwizcpl);
-#define GECKO_VERSION "1.1.0"
+#define GECKO_VERSION "1.2.0-beta1"
#ifdef __i386__
#define ARCH_STRING "x86"
diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c
index c4f7945..12ae351 100644
--- a/dlls/mshtml/mutation.c
+++ b/dlls/mshtml/mutation.c
@@ -305,9 +305,10 @@ static nsresult run_end_load(HTMLDocumentNode *This,
nsISupports *arg1, nsISuppo
return NS_OK;
}
-static nsresult run_insert_script(HTMLDocumentNode *doc, nsISupports
*script_iface, nsISupports *arg)
+static nsresult run_insert_script(HTMLDocumentNode *doc, nsISupports
*script_iface, nsISupports *parser_iface)
{
nsIDOMHTMLScriptElement *nsscript;
+nsIParser *nsparser = NULL;
nsresult nsres;
TRACE("(%p)->(%p)\n", doc, script_iface);
@@ -318,7 +319,24 @@ static nsresult run_insert_script(HTMLDocumentNode *doc,
nsISupports *script_ifa
return nsres;
}
+if(parser_iface) {
+nsres = nsISupports_QueryInterface(parser_iface, &IID_nsIParser,
(void**)&nsparser);
+if(NS_FAILED(nsres)) {
+ERR("Could not get nsIParser iface: %08x\n", nsres);
+nsparser = NULL;
+}
+}
+
+if(nsparser)
+nsIParser_BeginEvaluatingParserInsertedScript(nsparser);
+
doc_insert_script(doc->basedoc.window, nsscript);
+
+if(nsparser) {
+nsIParser_EndEvaluatingParserInsertedScript(nsparser);
+nsIParser_Release(nsparser);
+}
+
nsIDOMHTMLScriptElement_Release(nsscript);
return NS_OK;
}
@@ -557,12 +575,12 @@ static void NSAPI
nsDocumentObserver_EndLoad(nsIDocumentObserver *iface, nsIDocu
}
static void NSAPI nsDocumentObserver_ContentStatesChanged(nsIDocumentObserver
*iface, nsIDocument *aDocument,
-nsIContent *aContent1, nsIContent *aContent2, PRInt32 aStateMask)
+nsIContent *aContent1, nsIContent *aContent2, nsEventStates aStateMask)
{
}
static void NSAPI nsDocumentObserver_Document