I'm implementing social auth. When the user clicks on a button, I send a command so I can call window.open().
Looking at this call-stack, we can see that the port handler is called in the next event loop:

Since window.open is not being called within the click event lifecycle, browsers like safari do not allow for the popup to show up.
What is your approach?