Login page fails with “This web browser is too old” error with most recent browser versions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Focal Backports |
Confirmed
|
Undecided
|
Martin Pitt | ||
cockpit (CentOS) |
Unknown
|
Critical
|
|||
cockpit (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Jammy |
Fix Released
|
Critical
|
Martin Pitt | ||
Kinetic |
Fix Released
|
High
|
Unassigned |
Bug Description
[Impact]
With current Firefox and Chromium nightly, the login page shows
This web browser is too old to run the Web Console (missing selector(
Newer, upcoming browser versions have improved next-level support for :is() and :where() selectors. Cockpit was checking for support an empty usage which passed on browsers in the earlier (current as of writing) implementation. However, browsers have recently updated their parsing support for “Forgiving Selector Parsing” [1], which caused the newer development versions of Firefox, Chrome, and WebKit to fail this check, preventing the browsers from logging into Cockpit.
This check is done to test browser capabilities/
[Fix]
This was first reported against Firefox itself [2], see that upstream bug for details and a screenshot. But the more fine-grained support for :is()/:where() is intentional, and Cockpit's login page must be adjusted [3]. The fix [4] is minimal, just a two-character patch.
This was done in upstream release 276.1, so this is fixed in current kinetic and jammy-backports. However, the current version 264 in jammy-release (22.04 LTS) is affected by this, and should get this fix.
[Test Plan]
- Download Firefox nightly: https:/
- apt install cockpit
- Go to http://
- Login page shows "This web browser is too old to run the Web Console"
- Install the fixed version
- Go to login page again, it should not show the error any more and let you log into Cockpit.
Until this gets accepted as an SRU, you can test the fix from my PPA: https:/
[Where problems could occur]
The updated selector() checks has the potential to fail on older or less popular browsers. We checked the current releases and nightly versions of Firefox, Chromium, and Webkit. The fix has also been "in the wild" for some weeks now, in Kinetic, jammy-backports, Fedora releases, and CentOS 8/9 stream. We did not get any regression reports for them.
[1] https:/
[2] https:/
[3] https:/
[4] https:/
Changed in cockpit (Ubuntu Kinetic): | |
status: | New → Fix Released |
importance: | Undecided → High |
Changed in cockpit (Ubuntu Jammy): | |
status: | New → In Progress |
assignee: | nobody → Martin Pitt (pitti) |
importance: | Undecided → High |
Changed in focal-backports: | |
status: | New → In Progress |
assignee: | nobody → Martin Pitt (pitti) |
status: | In Progress → Confirmed |
description: | updated |
description: | updated |
Changed in cockpit (CentOS): | |
importance: | Unknown → Critical |
status: | Unknown → Fix Committed |
description: | updated |
Changed in cockpit (CentOS): | |
status: | Fix Committed → Unknown |
Description of problem:
Firefox Nightly now reports unsupported CSS selectors. Since that fix was implemented, Firefox Nightly users can no longer log in into Cockpit, the login page just shows:
This web browser is too old to run the Web Console (missing selector( :is():where( )))
This is due to a bad CSS capability check in Cockpit's login page.
See this issue for details: https:/ /bugzilla. mozilla. org/show_ bug.cgi? id=1790259
Chromium is affected in the same way.
Current *releases* of Firefox and Chromium are fine still, but it is expected that the upcoming versions will contain this change.
Version-Release number of selected component (if applicable):
cockpit- ws-275- 1.el9
How reproducible: Always
Steps to Reproduce:
1. Try to log into Cockpit with Firefox nightly
Actual results: Login page shows the error above, login is not possible.
Expected results: Login should work normally.
This was reported upstream in https:/ /github. com/cockpit- project/ cockpit/ issues/ 17724 and fixed in https:/ /github. com/cockpit- project/ cockpit/ pull/17726