Bug 253758 - ☂️ [GTK][WPE?] GitHub breaks in different ways after their March 2023 update
Summary: ☂️ [GTK][WPE?] GitHub breaks in different ways after their March 2023 update
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Local Build
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
: 253759 253760 (view as bug list)
Depends on: 211979
Blocks:
  Show dependency treegraph
 
Reported: 2023-03-11 08:40 PST by antoyo
Modified: 2023-03-16 08:33 PDT (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description antoyo 2023-03-11 08:40:32 PST
Hi.
When I go to github.com with Web (Epiphany) version 43.1+, the page just stays blank and a lot of CPU is used.
I'm on ArtixLinux and the version of webkit installed is 2.38.5-1.
Thanks to fix this issue.
Comment 1 antoyo 2023-03-11 12:39:20 PST
*** Bug 253760 has been marked as a duplicate of this bug. ***
Comment 2 antoyo 2023-03-11 12:39:36 PST
*** Bug 253759 has been marked as a duplicate of this bug. ***
Comment 3 Guilaume Ayoub 2023-03-11 13:53:16 PST
The problem is caused by "navigator.clipboard" missing. As a dirty workaround, I’ve used "navigator.clipboard = {}" in Epiphany’s custom JS file (available in Epiphany’s options).

Note that since yesterday, some features of GitHub don’t work anymore with Epiphany (applying labels on issues is another one), and many errors are reported in the inspector. Looks like GitHub decided to drop support of many browsers…
Comment 4 Adrian Perez 2023-03-13 01:34:48 PDT
For the async clipboard API we had bug #211979 already, so I am going
to repurpose this bug report for the issue with setting labels. I hope
that's okay.
Comment 5 Adrian Perez 2023-03-13 01:35:07 PDT
For the async clipboard API we had bug #211979 already, so I am going
to repurpose this bug report for the issue with setting labels. I hope
that's okay.
Comment 6 Adrian Perez 2023-03-13 01:36:11 PDT
For the record, this is reproducible with the 2.39.91 release, I haven't
checked on a ToT build yet, but I expect setting labels won't work there
either.
Comment 7 Guilaume Ayoub 2023-03-13 02:44:11 PDT
(In reply to Adrian Perez from comment #5)
> For the async clipboard API we had bug #211979 already, so I am going
> to repurpose this bug report for the issue with setting labels. I hope
> that's okay.

There are actually many problems with GitHub’s latest update, but as far as I can tell there are all caused by 2 missing features:

- navigator.clipboard, see bug #211979
- window.requestIdleCallback, see bug #164193, whose support is "under consideration" in WebKit (https://webkit.org/status/#feature-requestidlecallback) and available almost everywhere else (https://caniuse.com/requestidlecallback).

There may be other ones.

This bug report could track the different issues required to get GitHub working again. I suppose that workarounds exist in GitHub’s JS code to make it work with Safari.
Comment 8 Adrian Perez 2023-03-13 05:22:27 PDT
(In reply to Guilaume Ayoub from comment #7)
> (In reply to Adrian Perez from comment #5)
> > For the async clipboard API we had bug #211979 already, so I am going
> > to repurpose this bug report for the issue with setting labels. I hope
> > that's okay.
> 
> There are actually many problems with GitHub’s latest update, but as far as
> I can tell there are all caused by 2 missing features:
> 
> - navigator.clipboard, see bug #211979
> - window.requestIdleCallback, see bug #164193, whose support is "under
> consideration" in WebKit
> (https://webkit.org/status/#feature-requestidlecallback) and available
> almost everywhere else (https://caniuse.com/requestidlecallback).
> 
> There may be other ones.
> 
> This bug report could track the different issues required to get GitHub
> working again. I suppose that workarounds exist in GitHub’s JS code to make
> it work with Safari.

Good idea, I have done just that, and added these two bugs as dependencies.
If there are more issues related to the recent GitHub update, we can add
the bugs as dependencies here as well.
Comment 9 Michael Catanzaro 2023-03-13 06:11:01 PDT
We need to understand why window.requestIdleCallback is required in Epiphany but not required in Safari. Are they doing user agent sniffing?
Comment 10 Jeff Fortin 2023-03-13 06:21:01 PDT
In the meantime Adrian also reported the issue to the WebCompat tracker at https://github.com/webcompat/web-bugs/issues/119474 via https://webcompat.com/issues/119474 ...for the record, as it is probable some GitHub folks will get contacted over there. In case the symptom vanishes (whereas technically the webkitgtk bug remains), we will know why ;)
Comment 11 Michael Catanzaro 2023-03-13 06:29:11 PDT
The site also renders if you open the web inspector. O_O
Comment 12 Guilaume Ayoub 2023-03-13 06:55:24 PDT
(In reply to Michael Catanzaro from comment #9)
> We need to understand why window.requestIdleCallback is required in Epiphany
> but not required in Safari. Are they doing user agent sniffing?

Using a Safari user agent string (from https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent#safari_ua_string) doesn’t fix the problem.

(In reply to Michael Catanzaro from comment #11)
> The site also renders if you open the web inspector. O_O

When "navigator.clipboard" is missing, there’s an endless JS loop that should prevent the website from being rendered, even if the HTML and the CSS files are already downloaded. I suppose that opening the web inspector (or just resizing the window) forces the page to be drawn at least once.
Comment 13 Karl Dubost 2023-03-13 16:23:33 PDT
A thread has also been opened on https://github.com/orgs/community/discussions/49755
Comment 14 Carlos Garcia Campos 2023-03-16 04:10:55 PDT
Adding labels worked for me (with clipboard api patch applied, not sure it's elated).