1. A computer-implemented method for organizing graphical user interface windows into separate stacks of windows, the method comprising: providing, for display, a first window in a graphical user interface of a web browser application, the web browser application comprising at least two defined constraints for distinguishing stacks of windows; receiving a request to open a second window in the graphical user interface when viewing the first window; determining, in response to the request to open the second window and before displaying the second window, to move the first window to a first stack of web browsing windows; moving the first window to the first stack in the graphical user interface based on the determination; and providing, for display, the second window in the graphical user interface in a second stack of web browsing windows, wherein, in response to a request to display a third window in the graphical user interface, the third window is provided for display in the first stack based on a defined constraint, from among the at least two defined constraints of the web browser application, shared between the third window and the first window or in the second stack based on a defined constraint, from among the at least two defined constraints of the web browser application, shared between the third window and the second window, wherein the request to display the third window comprises an identification of the defined constraint shared between the third window and the first window or of the defined constraint shared between the third window and the second window, and wherein the defined constraint of the first window comprises a non-private web browsing session mode, and the defined constraint of the second window comprises a private web browsing session mode.