sugarlabs / sugar

Sugar GTK shell
GNU General Public License v3.0
255 stars 242 forks source link

WebKitErrorDomain: WebKit encountered an internal error (300) #962

Closed quozl closed 1 year ago

quozl commented 2 years ago

On Ubuntu 22.04, Browse cannot load any web page except for the local start page.

Screenshot_ujj_2022-04-18_14:46:44

Activity logs contain

**
GLib-GIO:ERROR:../../../gio/gsocketclient.c:1982:g_socket_client_enumerator_callback: assertion failed: (data->error_info->best_error)
Bail out! GLib-GIO:ERROR:../../../gio/gsocketclient.c:1982:g_socket_client_enumerator_callback: assertion failed: (data->error_info->best_error)
mogarick commented 2 years ago

Is this something that is gonna be fixed or is there a work around or manual fix instructions?

quozl commented 2 years ago

Thanks for your interest. I've made no progress on this.

On Ubuntu 22.04, the package libwebkit2gtk-4.0-37 has a test program /usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/MiniBrowser that may be used to check if WebKit is working properly. It works for me outside Sugar. If that program works inside a Sugar Terminal and yet the Browse activity does not, then that may be a basis for further debugging.

avatar4d commented 1 year ago

Confirmed /usr/lib/x86_64-linux-gnu/webkit2gtk-4.0/MiniBrowser works fine in Gnome Shell, but not in Sucrose. I get the same error as above on fresh/updated install of 22.04 while running MiniBrowser in sucrose.

quozl commented 1 year ago

That's very interesting, thanks. It suggests the environment causes the problem. I suggest sorting and comparing process environment variables between the working and failing case. Perhaps there is a missing GNOME component that should be running. GNOME project regularly make changes that we don't have the resources to track.

avatar4d commented 1 year ago

Here are the env outputs for both Sucrose and Gnome

sucrose-env.txt gnome-env.txt

quozl commented 1 year ago

Thanks. I've sorted and compared. There is considerable difference with effects I don't understand. Two approaches come to mind;

The first approach is speculative, the second analytical. I'm sorry I've only got time to describe the idea, and not enough time to do it.

For the first approach, the kind of questions I would ask myself are;

quozl commented 1 year ago

Thanks for your help. It was the https_proxy environment variable set to an empty string. I've fixed it in Sugar. As the fix is tested, simple, and not likely to be contentious, I skipped a pull request. The fix can be applied to already installed Sugar package, and then restart Sugar for it to take effect.

chimosky commented 1 year ago

Thanks for your help. It was the https_proxy environment variable set to an empty string. I've fixed it in Sugar. As the fix is tested, simple, and not likely to be contentious, I skipped a pull request. The fix can be applied to already installed Sugar package, and then restart Sugar for it to take effect.

Thanks!

acronie commented 1 year ago

Hello. I'm facing the same problem with the browser being unable to load web pages from https under the last Ubuntu version. Could you explain here what we should do to fix an already installed Sugar package ? I gave apt-get update a try, but no luck. Sorry for the newbie question... and thanks for your advices.

quozl commented 1 year ago

Hello @acronie,

For a quick fix, become the root user, edit the file /usr/lib/python3/dist-packages/jarabe/main.py, find the text def setup_theme, and remove the three lines of code above it;

Before:

    elif g_mode == 'none':
        for each_env_variable in env_variables:
            os.environ[each_env_variable] = ''

def setup_theme():

After:


def setup_theme():

Then restart Sugar. This will fix it for one system, but the fix may be lost if the system is updated by Ubuntu. You can block that with the command sudo apt-mark hold python3-jarabe.

For a fix that changes Ubuntu, report a bug to Ubuntu and refer to this issue as what worked for you. Ubuntu can then apply the patch to their package. They may not have time to do so, because Sugar is not a priority.

Ubuntu get this package from Debian. When Debian fix it, Ubuntu will likely have it in the next release, so you can also report the bug to Debian.

Otherwise, when we release the new version, Debian and Ubuntu will eventually have the fix, sometimes years later. I think the record is about four years.

acronie commented 1 year ago

Thanks @quozl! I could manage to fix it with your indications. I'm experimenting various configurations in order to install Sugar on multiple old desktop that "landed" in the school of my daughters. I tried with Fedora today, and it's globally easier and more complete to install Sugar on it than on Ubuntu (and variants).

quozl commented 1 year ago

Thanks. So is Fedora also affected by this problem?

acronie commented 1 year ago

Not at all! I just installed a fresh Fedora workstation 37 on the PC, then installed Sugar through the tutorial's given terminal command, switch the desktop environnement by login out-selecting Sugar-login in, and everything was working, Browser including. So, there's nothing to fix on Fedora about this WebKit error.

quozl commented 1 year ago

That's great. Well done to the Fedora package maintainers for Sugar.