Official site launch very soon, hurrah!
There were at least 3 really neat things about Google Chrome when it made its spectacular entrance onto the web browser market a few months ago that made it a really viable option compared to its competitors. These features were [“are”, going to write it in present tense as they are still true]:
Unfortunately, this is not as completely true as is widely advertised. New processes are only opened when the user manually opens a new window or tab. If a new window or tab is opened by JavaScript or by clicking a link, it still runs in the same process!
Google has a FAQ Entry on this as follows:
16. How can my web page open a new tab in a separate process?Google Chrome has a multi-process architecture, meaning tabs can run in separate processes from each other, and from the main browser process. New tabs spawned from a web page, however, are usually opened in the same process, so that the original page can access the new tab using JavaScript.If you’d like a new tab to open in a separate process: Open the new tab with about:blank as its target. Set the newly opened tab’s opener variable to null, so that it can’t access the original page. Redirect from about:blank to any URL on a different domain, port, or protocol than that of the page spawning the pop-up. For example, if the page spawning the pop-up is on http://www.example.com/: a different domain would be http://www.example.org a different port would be http://www.example.com:8080 a different protocol would be https://www.example.com Google Chrome will recognize these actions as a hint that the new and old pages should be isolated from each other, and will attempt to load the new page in a separate process. The following code snippet can be used to accomplish all of these steps: var w = window.open();w.opener = null;w.document.location = "http://different.example.com/index.html";
Google Chrome has a multi-process architecture, meaning tabs can run in separate processes from each other, and from the main browser process. New tabs spawned from a web page, however, are usually opened in the same process, so that the original page can access the new tab using JavaScript.
If you’d like a new tab to open in a separate process:
opener
null
Google Chrome will recognize these actions as a hint that the new and old pages should be isolated from each other, and will attempt to load the new page in a separate process.
The following code snippet can be used to accomplish all of these steps:
var w = window.open();w.opener = null;w.document.location = "http://different.example.com/index.html";
The only problem is... THIS NO LONGER WORKS! Google recently (within the last 7 days) broke this FAQ recommendation with an automatic update to Chrome, so new tabs that are not manually opened by the user cannot be forced to new processes even with their little code snippet. Personally, I think this behavior is really lame and every tab should be able to open in separate processes every time no matter what, and still be able to talk to each other through process message passing. It may slow things down a little, but it’s a much more powerful model, IMO. An option for this in the window.open’s options parameter would be really nice...