Open JasonYeMSFT opened 2 months ago
@richardMSFT please investigate this over the holiday lock down period. Please come up with a plan/list of items needed to fix the broken aspects of multi window support. At a high level, the current hypothesis is that the main process needs to be able to manage and coordinate the existance of multiple renderer windows. What achieving that goal actually entails is up for you to figure out and communicate to the team. Good luck! It'll be a lot.
Storage Explorer has the "New Window" feature but it has lots of problems today.
Related issues:
Quick Access data is not visible to the secondary instances. https://github.com/microsoft/AzureStorageExplorer/issues/638
Local storage data is not visible to the secondary instances. https://github.com/microsoft/AzureStorageExplorer/issues/723
Secondary instances may overwrite local storage data of primary instance. https://github.com/microsoft/AzureStorageExplorer/issues/8139
Subscription filter data is not visible to the secondary instances. https://github.com/microsoft/AzureStorageExplorer/issues/213
"New Window" doesn't work for snap. https://github.com/microsoft/AzureStorageExplorer/issues/4529
Due to lack of coordination, primary and secondary instances may race and corrupt data when writing to the shared resources such as files on disk or objects in local credential store. This is currently mitigated by not allowing the secondary instance from writing to shared resources at all.
We need proper multi-window support where Storage Explorer application manages all the windows of itself and coordinate them using the shared main process. This would allow us to implement our own concurrency control to prevent race conditions and maybe allow it to work for snap since the application no longer need to have the permission to spawn new processes.