A method comprising: receiving, by a server computer system, a first request originating from a window of a web browser running on a client computer system, the first request including a Uniform Resource Locator and a first window identifier; generating, by the server computer system, a loopback identifier; storing, by the server computer system, the loopback identifier in a user session associated with the request; generating, by the server computer system, a script that includes the URL, the first window identifier, and the loopback identifier, wherein the script is configured to, on the client computer system: determine whether the first window identifier matches an identifier of the window that originated the first request; and based on the determining, send a second request to the server computer system; wherein if the first window identifier matches an identifier of the window that originated the first request, the second request includes the URL, the loopback identifier, and the first window identifier; or if the first window identifier does not match an identifier of the window that originated the first request, the second request includes the URL, the loopback identifier, and a second window identifier distinct from the first window identifier; sending, by the server computer system, the script to the window that originated the first request; receiving, by the server computer system, the second request; matching, by the server computer system, the loopback identifier included in the second request with the loopback identifier stored in the user session; removing the loopback identifier from the user session; if the second request includes the first window identifier, determining, by the server computer system, that the window that originated the first request is an existing window; and if the second request includes the second window identifier, determining, by the server computer system, that the window that originated the first request is a new window. receiving, by a server computer system, a first request originating from a window of a web browser running on a client computer system, the first request including a Uniform Resource Locator and a first window identifier; generating, by the server computer system, a loopback identifier; storing, by the server computer system, the loopback identifier in a user session associated with the request; generating, by the server computer system, a script that includes the URL, the first window identifier, and the loopback identifier, wherein the script is configured to, on the client computer system: determine whether the first window identifier matches an identifier of the window that originated the first request; and based on the determining, send a second request to the server computer system; wherein if the first window identifier matches an identifier of the window that originated the first request, the second request includes the URL, the loopback identifier, and the first window identifier; or if the first window identifier does not match an identifier of the window that originated the first request, the second request includes the URL, the loopback identifier, and a second window identifier distinct from the first window identifier; determine whether the first window identifier matches an identifier of the window that originated the first request; and based on the determining, send a second request to the server computer system; wherein if the first window identifier matches an identifier of the window that originated the first request, the second request includes the URL, the loopback identifier, and the first window identifier; or if the first window identifier does not match an identifier of the window that originated the first request, the second request includes the URL, the loopback identifier, and a second window identifier distinct from the first window identifier; sending, by the server computer system, the script to the window that originated the first request; receiving, by the server computer system, the second request; matching, by the server computer system, the loopback identifier included in the second request with the loopback identifier stored in the user session; removing the loopback identifier from the user session; if the second request includes the first window identifier, determining, by the server computer system, that the window that originated the first request is an existing window; and if the second request includes the second window identifier, determining, by the server computer system, that the window that originated the first request is a new window.