[Bug 8919] CSS Tab Designer 2 lets wine crash

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Jan 18 03:36:10 CST 2008


http://bugs.winehq.org/show_bug.cgi?id=8919


Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net




--- Comment #7 from Anastasius Focht <focht at gmx.net>  2008-01-18 03:36:08 ---
Hello,

used current GIT (wine-0.9.53-137-ga9e9673).

First issue is gdiplus ...

--- snip ---
wine: Call from 0x7b8414e0 to unimplemented function
gdiplus.dll.GdipGetImageEncodersSize, aborting
wine: Unhandled page fault on read access to 0x009ad4d8 at address
0x0000:0x0040366e (thread 0009), starting debugger...
First chance exception: page fault on read access to 0x009ad4d8 in 32-bit code
(0x0040366e).
..
--- snip ---

Which leads to message box "Runtime Error 216 at 0040366E" popping up.
Use 'winetricks gdiplus' for native override to work around incomplete wine
implementation.

Second issue is unimplemented browser/control ready state
transitions/notifications.
Many apps which use embedded browser control poll ready states (or advise event
sinks for async notifications) to check for completion of container/child
control load/init state.

--- snip ---
0009:fixme:shdocvw:WebBrowser_get_ReadyState (0x14c060)->(0x34fbc8)
0009:Call ntdll.RtlFreeHeap(00110000,00000000,0016bf98) ret=603e35c0
0009:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=603e35c0
0009:Call ole32.GetErrorInfo(00000000,0034fbf0) ret=603e4b18
0009:Ret  ole32.GetErrorInfo() retval=00000001 ret=603e4b18
0009:Call ntdll.RtlFreeHeap(00110000,00000000,0016bf68) ret=603e3a4c
0009:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=603e3a4c
0009:Call
KERNEL32.FormatMessageA(00003200,00000000,80004001,00000000,0034fae0,00000100,00000000)
ret=0040d310
0009:Ret  KERNEL32.FormatMessageA() retval=00000000 ret=0040d310
0009:Call user32.LoadStringA(00400000,0000feb8,0034f7d8,00000400) ret=004067d6
0009:Ret  user32.LoadStringA() retval=0000000e ret=004067d6
0009:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0034fc4c)
ret=00494156
0009:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b8414e0 
--- snip ---

You can work around by using this quick-n-dirty hack:

--- snip hack ---
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 55f1620..01b3672 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -732,7 +732,9 @@ static HRESULT WINAPI
WebBrowser_get_ReadyState(IWebBrowser2 *iface, READYSTATE
 {
     WebBrowser *This = WEBBROWSER_THIS(iface);
     FIXME("(%p)->(%p)\n", This, lpReadyState);
-    return E_NOTIMPL;
+
+    *lpReadyState = READYSTATE_COMPLETE;
+    return S_OK;
 }

 static HRESULT WINAPI WebBrowser_get_Offline(IWebBrowser2 *iface, VARIANT_BOOL
*pbOffline)
--- snip hack ---

I used explicit READYSTATE_COMPLETE instead of READYSTATE_LOADED for browser to
mimic behavior of many controls which do not differentiate between "loaded" and
any other state (such as gui controls that load all their properties and have
no external data to retrieve).
Child controls do not need to support this property at all so the container
always assumes READYSTATE_COMPLETE.

With the hack applied the app starts and shows main gui. One can load default
project.
Though there is some mshtml component error message box popping up which can be
dismissed (file new bug reports for that).

Of course the browser ready state property changes/transitions should be
properly fleshed out some day...

Regards


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list