Electron app upgrade

BACK

The challenge

UXPin is a tool used to create interactive prototypes for websites. One of the features they offer, is a desktop application built with Electron. The app was stuck on version 8, which meant also that the Chrome version running in it was wildly outdated, causing several bugs in the application. I was tasked with updating the app to the latest version of Electron.

THE PATH TO THE GOAL

-

Upgrading Electron directly from v8 to v24 would break the app, therefore I decided to update the dependency with increases of 1 major version at a time. This allowed me to identify and fix the compatibility issues with the legacy code bit by bit, making it easier by looking at the Electron release notes

-

The security features in Electron changed drastically even just from version 8 to version 9 (contextIsolation) and I had to compromise between security and compatibility with the existing code to be able to deliver the update in a reasonable time

-

Another security feature implemented was to remove support for complex objects when using the ipcRenderer ; to solve this, I had to update the code to serialize complex objects when using it

-

After a few weeks of intense work and several fixes, the app was updated to the latest available version at the time. Chrome was updated from version 80 to version 110! Several bugs were solved allowing us to close right away at least a dozen of tickets 🏁

TOP