nextcloud / contacts

📇 Contacts app for Nextcloud
https://apps.nextcloud.com/apps/contacts
GNU Affero General Public License v3.0
569 stars 173 forks source link

contact list no longer showing with latest Waterfox Classic (2022.06) #2833

Open IzzySoft opened 2 years ago

IzzySoft commented 2 years ago

Describe the bug

In the latest Waterfox Classic web browser, the Contacts page stays empty – only the header is shown. Cross-Checking with Waterfox G4, here everything shows up as expected.

Steps to reproduce

  1. Log in to Nextcloud
  2. Click on the icon for the Contacts app
  3. See an empty page with just the navigational header

Expected behavior

Contacts list would show up

Actual behavior

No contacts shown at all. Inspector shows this:

image

instead of (as in G4):

image

Contact version

4.1.1

Operating system

Linux Mint 20.3

PHP engine version

PHP 7.4

Web server

Apache (supported)

Database

MariaDB

Additional info

In the browser console, I see a lot of CSS warnings like

Missing closing ‘)’ in negation pseudo-class ‘[’.  Ruleset ignored due to bad selector. contacts:1:37
Unknown property ‘color-scheme’.  Declaration dropped.  contacts
Unknown pseudo-class or pseudo-element ‘-webkit-scrollbar’.  Ruleset ignored due to bad selector.  6062-aa19-server.css:1:2023
Unknown pseudo-class or pseudo-element ‘-webkit-scrollbar-track-piece’.  Ruleset ignored due to bad selector.  6062-aa19-server.css:1:2066
Unknown pseudo-class or pseudo-element ‘-webkit-scrollbar-thumb’.  Ruleset ignored due to bad selector.  6062-aa19-server.css:1:2127
Error in parsing value for ‘position’.  Declaration dropped.  6062-aa19-server.css:1:2416
Unknown property ‘user-select’.  Declaration dropped.  6062-aa19-server.css:1:2626

(list is pretty long, I can attach it if it helps), followed by things like

No OC found  main.js:160:149063
JQMIGRATE: Migrate is installed, version 3.3.2  main.js:986:933
jQuery is deprecated: The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.  globals.js:62:15
$ is deprecated: The global jQuery is deprecated. It will be removed in a later versions without another warning. Please ship your own.  globals.js:62:15

But maybe a key error is

SyntaxError: missing : after property id      contacts-main.js:2:3869133

Maybe some incompatibility with the Javascript engine (I vaguely remember GitLab had some similar issues a while ago and they got them fixed). Funny to see is OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment from util.js:135:11 (I'm no longer on Nextcloud 21; at the moment I am on 22.2.9 with updates to 23/24 planned soon™).

Currently, as a work-around, I can copy the Contacts URL to some other browser (e.g. Waterfox G4), but Classic is still my main browser (and still receiving updates), so I'd appreciate a fix if possible. Should further details be needed, I'll of course do my best to provide them. Thanks in advance!

ChristophWurst commented 2 years ago

Like most other nextcloud front-end the app frontend is transpiled into javascript understood by the following browser support configuration: https://github.com/nextcloud/browserslist-config/blob/master/browserlist.config.js

I can't tell if "waterfox" is covered by that or not.

ChristophWurst commented 2 years ago

Related: https://github.com/browserslist/browserslist/issues/545

IzzySoft commented 2 years ago

Thanks Christoph! I cannot tell either. As described, there's no action needed for "Waterfox G4" – it's just "Waterfox Classic" that is affected. I could compare the UserAgents if that helps:

So it would probably be something like useragent.contains('Waterfox/56') to match Classic. G4 is based on the latest ESR. Apart from these two, the only other Waterfox which might still be around is G3, which is most likely based on the previous ESR. Not sure if it is affected as well – I cannot test as it was automatically replaced by G4 on my system.

The issue you link is certainly related to WF Classic, but I don't see a solution there – apart of opening an issue with canisue. There were already 2 issues opened for Waterfox, but both were closed with "not different enough from Firefox nor enough usage to warrant including" as a reason; I can definitely argue the first argument, but am not sure if they accept my arguments on the second. Will give it a try, though (link should show up here in a minute).

IzzySoft commented 2 years ago

@ChristophWurst while I wait for answers from caniuse: I've tried making sense of the linked browserlist.config.js using the project's readme and would say Waterfox Classic is not covered, while G4 is (via Firefox ESR, which matches the latest ESR only). Can I play with that locally in my Nextcloud setup (I cannot find a file by that name there, just tried locate browserlist.config.js which returned nothing), or is this something used when building up the distribution bundle? Adding Firefox > 67 could get Classic in, going by the UA.

Btw: the problem only started with the upgrade to Nextcloud 22, including upgrading contacts from 4.0.3 to 4.1.1 if that helps…

IzzySoft commented 2 years ago

Just wondering: Can I test this somehow? Or how can we get this tackled?

ChristophWurst commented 2 years ago

Check out the browserslist package. Then link it to this app. Build the app. That might or might not help because there are many packages involved that use the shared browserslist. Packages are compiled individually. If there is at least one package in the dependnency tree not compiled for your browser then you will likely be out of luck unless you recompile the whole tree.

IzzySoft commented 2 years ago

Thanks Christoph! Then I'm unfortunately not able to do this myself – the "build the app" part is what I cannot cover.Already was afraid of that. And seeing there's still no star on this issue I understand it's rather low prio and has little demand… If you could try including Firefox 68 (if I understand that correctly, combining a specific version with "latest" should be possible) – if not, I understand there are more important things. Just let me know if you have it in some release so I can test and report back.