UI regression with popup windows
Posted: Tue Jan 17, 2023 12:58 am
When a site opens a new page in a popup window with minimal controls, there is no easy way to check/set script permissions for that new page. In case that page requires new permissions, it will not work properly until reopened in a new tab, where NoScript controls are available.
I made a test case to illustrate this issue. NS_Parent has a button that changes color constantly to indicate that scripts are running. Page requires zerounderscoreou.github.io to be trusted. Clicking the button opens NS_Popup in a popup window. The page is empty but it will change color constantly, similarly to the opening button, when scripts are running. It also requires cdn.jsdelivr.net to be trusted for scripts to run. You will not be able to set that permission, however, because NoScript toolbar icon is hidden and clicking NoScript context menu opens settings for the parent page (stealing focus), which does not require cdn.jsdelivr.net and doesn't have it in the list of domains. The only way to see an updated list of domains is to reopen NS_Popup in a normal window (you can also Ctrl+Click on the button to load it in the same window).
In case my explanation was not clear, I can make a video showcasing this issue.
I made a test case to illustrate this issue. NS_Parent has a button that changes color constantly to indicate that scripts are running. Page requires zerounderscoreou.github.io to be trusted. Clicking the button opens NS_Popup in a popup window. The page is empty but it will change color constantly, similarly to the opening button, when scripts are running. It also requires cdn.jsdelivr.net to be trusted for scripts to run. You will not be able to set that permission, however, because NoScript toolbar icon is hidden and clicking NoScript context menu opens settings for the parent page (stealing focus), which does not require cdn.jsdelivr.net and doesn't have it in the list of domains. The only way to see an updated list of domains is to reopen NS_Popup in a normal window (you can also Ctrl+Click on the button to load it in the same window).
In case my explanation was not clear, I can make a video showcasing this issue.