-
Notifications
You must be signed in to change notification settings - Fork 0
Background
A longer overview of the circumstances that required the development of this patch.
When you launch a vgui-capable Steam client in so-called vgui mode (misleading name) and open your Friends List, you are looking at something called FriendsUI. It is the first component of the Steam client to embed a web page instead of doing its job normally. FriendsUI came with the August 2018 Steam client update, where it replaced the original vgui-based friends/chat with the modern Discord-clone version of Steam friends/chat.
FriendsUI is nothing more than a massive chunk of PWA glue between the Steam client and steam-chat.com
.
When you start Steam, FriendsUI points itself at https://steam-chat.com/chat/clientui
and runs the webpage at that location. All of the code & assets for modern Steam friends/chat are stored remotely on Valve's servers and served via steam-chat.com
. There is no core friends/chat code in the Steam client's program files. Every time you launch Steam, it downloads and runs the remote webpage from Valve's servers.
FriendsUI is dependent on Valve not screwing it up.
Valve regularly updates and changes steam-chat.com
on a weekly basis, as part of larger updates to their entire website network. This power can be abused to break modern Steam friends/chat in FriendsUI whenever Valve wants, without needing to install a Steam client update or change any files on your computer.
For years, Valve tested steam-chat.com
to ensure it worked correctly in FriendsUI, and it (mostly) did. This lasted until Q3 2023.
In June 2023, Valve introduced their replacement to FriendsUI: the new pure CEF pure shit version of the Steam client. This Steam client shoehorns every single window into a single monstrous abomination of a webpage. FriendsUI is gone. The Friends List window still downloads and runs steam-chat.com
, but is no longer its own entity. It is now just a piece of the miserable everything-webpage.
This change was part of Valve's larger effort to replace some of their then-current services with cheaper, inferior replacements.
In Q3 2023, Valve committed to abandoning their vgui-capable Steam clients and the services relied upon by those clients, including FriendsUI.
The commitment included the end of properly testing steam-chat.com
to ensure it worked correctly in FriendsUI - and also a reduction in testing against the new pure shit Steam clients as well. Valve can print $10,000,000 a day on the Steam store, but they cannot be fucked anymore to spend 1 manhour a week testing their website code.
This culminated in the September 21st, 2023 update to steam-chat.com
, when Valve added broken, amateur code that causes a fatal error. As a result, FriendsUI in the Steam client never handshakes with steam-chat.com
, and it displays the "FRIENDS NETWORK UNREACHABLE" error instead.
There are several avenues for working around the problem. The most straightforward approach, of which this project follows, is to address the problem at the point of intersection between FriendsUI and the remote steam-chat.com
webpage it runs.
Refer to About the Patch for more information.
This problem is only applicable to vgui-capable Steam clients.
Steam clients that implement the entire library in pure CEF pure shit are not currently affected by Valve's broken code. This is due to a combination of the following factors.
- FriendsUI is not used in the pure shit Steam clients. These clients present
steam-chat.com
through a different PWA mechanism, the everything-webpage from hell. - The different PWA mechanism injects a different interface into the page scripts versus what FriendsUI injects.
- Javascript is a weak language and fails to bugcheck invalid access attempts to undefined members.
- Javascript is a weak language and considers
null
equivalent tofalse
.
Valve relies on abusing all of the preceding to make their broken code functionally equivalent to a nop, but only under the PWA environment provided by the pure shit Steam clients. The PWA environment provided by FriendsUI is less inherently flawed, and Valve's idiot code appropriately causes a fatal error under those conditions.