My Chrome extension opens a new browser window with this simple JS:
chrome.browserAction.onClicked.addListener(function(tab) {
var room = new Date().getTime();
window.open()
is a generic JavaScript function; Chrome rate-limits it so that malicious pages can't spawn many windows.
There is a concept of a "window name" with window.open. Since you're reusing the same one, it's not opening a new window. And the above rate-limiting still can apply.
However, as an extension, you have access to unrestricted tools.
Namely, take a look at chrome.windows and chrome.tabs APIs.
chrome.windows.create({url: "fullyQualifiedURLHere"});
Note that create
/update
methods do not require special permissions.