This is news that makes me very, very happy. Stephan "stippi" Assmus has written a lengthy blog post detailing the progress made on Haiku's WebKit port, and they're quite far along. Thanks to the help of several community members, the test browser, enticingly named (euh...) HaikuLauncher, is already relatively stable, supports tabbed browsing, and a whole lot more.

The most notable problem is that Stack and Tile is strictly user-initiated, ergo creating a new window or whatnot wouldn't be automatically added to the existing tab group. The other problem is that the actual window tabs have to carry a lot more baggage than a regular tab view since they still need to have the close and resize widgets, and as such take a lot more space, meaning they're less usable in a case where you want a ton of tabs, which is typically the case with a browser. Also, not everyone necessarily agrees with Chrome's top-level tabs as they completely violate the UI standards of most OSes amongst other things.

Why should S&T be strictly user-initiated? Why shouldn't there be an API that will allow apps to open new windows in tabs?
The close widget is available in Chrome tabs too, together with a favicon, so it should not take more space. And using the resize widget for every tab is not a good solution as it actually affects all tabs, so future S&T implementations should fix this.
There's nothing different or special to opening many pages in tabs in a web browser, than for instance - opening many source files in a text editor.
And while top-level tabs may violate the UI standards of some OSes, if Haiku makes S&T a standard - this will not be the case.

Replying to this thread in the WebKit browser on Haiku is a lot of fun of course... :-)

In any case, I agree what you've said about using Stack & Tile for the tabbed browsing. Ryan had this idea as well.

It needs a lot of work still. Stack & Tile is still not integrated in the Haiku source tree, since the remaining issues have not been fixed. And even if that were the case, the problem remains that there needs to be an API for this just like you propose. It should not only be user initiated.