protonscr

wine-mono browser

protonclosed .NET
ValveSoftware/Proton#2738 · opened 2019-05-25 by Ruedii · updated 2021-12-13 · 9 comments · github
RRuedii 2019-05-25 github

Feature Request

Add the latest Wine-Mono Github patch

I confirm:

  • [*] that I haven't found another request for this feature.
  • [*] that I have checked whether there are updates for my system available that
    contain this feature already.

Description

A recent update in the unstable Github version of Wine-Mono added some of the browser controls functions to Wine-Mono. Several games need these. This patch is in the same status as DXVK and ESync, so it shouldn't be against Proton's level of quality control considering the risk-benefit, even if it's not quite up to Wine's quality control level yet

For Wine's main branch it is now marked a "WIP" branch meaning it needs a spit and polish, instead of the "needing substantial revision" it got on it's first draft, which is essentially a polite way of saying it's a crummy hack and needs a lot of work.)

I haven't tested the patch myself. I may go ahead and do so later.

Justification [optional]

This update isn't in wine, but has been distributed by their bug report relating to this issue. It is still in final stages of testing.

Risks [optional]

Could break some functioning games and/or launchers that use Wine-Mono

References [optional]

#2502 Sims 3 not working (47890) [Wine-Mono Issue]
#18 Proton needs wine-mono support

Aaeikum 2019-05-28 github

Can you provide a link to the Wine bug?

Mmadewokherd 2019-05-28 github

https://bugs.winehq.org/show_bug.cgi?id=30988

The actual update involved pulling winforms from dotnet core, instead of using mono's version. There are a couple of known problems with this: they have pinvoke functions with PreserveSig=false (not supported by Mono, causes crashes), and they use IDispatch for web browser events (not supported by Mono, causes events from the web browser control to not reach the application). I'm working on getting these fixed upstream.

If we want to speed up the process, we could in theory modify winforms to not use those features. For the pinvoke functions, this would be relatively easy and, in theory, should get it working as well as it does now (but in practice there are probably more regressions lurking). The use of IDispatch is more extensive, so I'd rather not go through and manually change all of it, but a web browser control without events working is better than no web browser support.

In any case, I wouldn't recommend changing this in the 4.2 series, at least not by default, due to the likelihood of regressions.

RRuedii 2019-08-10 github

Updated Sims 3 bug with log.

RRuedii 2019-08-19 github

What would create a temporary quick-and-dirty fix is to allow the user to remove the functionality of the browser-embed from .NET applications.

This would allow programs that crash on it to operate without crashing.

This should be a "workaround" tag. If any functional component, even superficial and cosmetic, is suppressed by using it, the workaround should be considered unacceptable for "whitelist" however we should have a list of "flawed" configurations to get additional games to work out of box in a manner that is imperfect.

Mmadewokherd 2019-08-19 github

Disabling browser embedding in such a way that it doesn't cause exceptions when used would be a lot of work, I think.

RRuedii 2019-08-19 github

Create a shim to a blank element passing the size and location parameters,
and insert it in place of the browser embed. Stub all other calls on the
element to blank void objects.

(edit: Clean out email autoattach on replay.)

RRuedii 2021-11-24 github

Sims 3 launcher no longer crashes from html embed element.

The browser pane contents is incomplete and improperly rendered, but no longer crashes the whole game.

Tested on clean install with no expansion packs.
I will do more through testing later.
This is a big step forward as now the game plays out of box.
I suspect this will improve the situation with similar launchers as the web page element in launchers was popular in games for a while.

Mmadewokherd 2021-11-25 github

The update was brought in long ago so I don't think we need to keep this open.

RRuedii 2021-12-13 github

The update was brought in long ago so I don't think we need to keep this open.

Yep, it helped many of the issues, but didn't solve them all. These persistent bugs with the older .Net browser embeds and web calls are annoying.

Upstream links