To indulge my habit of trying the newest Google software releases under Wine, I decided to give the new Google Web Accelerator a shot with the latest CVS.
The first issue that I ran into (patches sent to wine-devel!) was the lack of StgCreateStorageEx and StgOpenStorageEx. This seems to be used by Google to store their extra web cache data.
Once I replaced the stubs with proper functions, the application started up and started caching data. From what I can tell, it even contacts the Google server for the compressed updates. It doesn't seem to "save time" in any way - I think this might have something to do with the inefficiency within the structured storage implementation (100% CPU for a short period of time as you request pages). My theory is that the application picks the request that returns first - Google's optimized version or the web page's response.
It seems to die after a few minutes of browsing with what appears to be an async IO error. The strange thing is that the error code looks like a memory location rather than a winsock error:
fixme:winsock:NtStatusToWSAError Status code 77ce16c0 converted to DOS error code 77ce16c0 fixme:winsock:WS2_async_send status: c0000120 [matthew@epsilon temp]$ cd /tmp/wine/dlls/winsock
I tried to trace through what happens in an asynchronous send operation, but I couldn't figure out how the status of the response was translated back to the "->Internal" field of the OVERLAPPED structure. Any hints?
Thanks, Matt.