Implement --internalcommand update to check for both updater and game update#154
Implement --internalcommand update to check for both updater and game update#154
--internalcommand update to check for both updater and game update#154Conversation
|
What is the intended behavior of this option? Is the idea that when the splash screen timer runs down and there is no update detected, to go to the update screen instead of starting the game? (Or if that is not the idea, would the behavior described in the previous sentence be good enough?) |
|
The idea is that when using
That's a way to say it, yes. |
40a139a to
64dd11f
Compare
|
Check out the |
|
Nice! |
|
Should I merge |
I forgot to answer to that. I have a mixed feeling about it. In a way the hacker in me is amazed about how few intrusive the patch is to implement the feature, but at the same time the architect in me is horrified about how it hijack an engine URL to control the updater… 🫨️ Also it means that once the protocol handler is installed, any website, chat application or so can share such url, and trigger the updater to ping home. This concern will make even more sense the day we implement an option to not phone home. For example one can include this in a webpage: <iframe src="unv://:mainWindow" frameborder="0">And force the visitor to trigger an updater update and open the game update window, while maybe the visitor only expected the protocol handler to join servers. Also such iframe would pass the url to the engine and not the updater when the protocol handler is installed without having the updater (example: flatpak). |
The I'll add that if an "attacker" wants the "victim" to make an HTTP request to unvanquished.net for some reason, there are many easier ways, such as giving them a link to unvanquished.net, redirecting them from an attacker-controlled website to unvanquished.net, or loading a resource from unvanquished.net in the attacker's web page.
What's the point? Changing the code of the updater won't affect what happens if the updater is not installed... Anyhow if you think it's bad that an |
Ah yes. I messed up.
True. 😁 Well, maybe I'm overthinking it. In fact I already defended the idea that the updater is the standard entry point, so we may even consider it's very normal to have |
|
If we want to make opening the updater main window using the protocol a feature, then the string |
Implement
--internalcommand updateto check for both updater and game update.Required by:
I haven't tested the game being updated after an updater being updated because when downloading a new updater I'm not testing my code anymore.
The “game update being requested by the updater after an updater update and relaunch” feature isn't implemented on macOS, because relaunching the updater with args doesn't look to be implemented to begin with. It would still check for an updater update, and it would still open the game update windows if there is no updater update, it will just act as always (run the game if there is no update) after an updater update.