Nothing. Session will not expire when uses closes the browser. As http is stateless, the server is not seeing what happens on client side. Session expires when is set to expire (see
here[
^]), regardless of client browser.
The application_end event primarily fires when the IIS pool is recycled or the application itself is unloaded. One other thing to note, that a change to a dependent file (say web.config) will cause the application to reload itself, which will in cause the application_end event to fire while it is closing itself off.
If you need to handle session end, you can follow this article:
ASP.NET HttpModule for handling session end with StateServer[
^]