Bruce Morgan, dev manager for the IE tabbed browsing team, commented on my original post on IE7 tabs – thanks Bruce! His comment provides more depth into why MS chose the each-tab-gets-its-own-toolbars route. In short – appcompat weight heaviest in making the decision, and 3rd party toolbars will indeed require extra UI space. Just so no one misses it (buried at the bottom of the comments of the previous post), here’s the comment:
Adam, I want to explain more about why we chose the thread-per-tab, toolbar instance-per-tab approach we did for IE7.
Adam and I know each other a little bit. For other readers – I’m the dev manager for the IE feature team that owns tabbed browsing in IE7.
We researched several other approaches, and we ultimately preferred the multiple thread, toolbar-per-tab as the right balance of appcompat and stability vs. memory use. Remember that we’re retrofitting multiple tabs into a browser that wasn’t designed that way, and we want it to work out-of-the-box with 3rd party toolbars that weren’t designed to work with tabs.
Our testing showed that if we went with a single thread for all tabs in a window, we would encounter many more UI stalls and jerkiness – too many things both in our code and common 3rd party code block on various things like network activity. So the foreground tab scrolling would stall for a moment, or the whole frame would hang for several seconds while a background tab loaded some docobject, and the like. Not good.
We looked at other approaches for implementing toolbars that weren’t instance-per-tab, but they all had much bigger appcompat issues. Ultimately we felt we needed this approach for the best possible appcompat. Even so, some toolbars won’t work with IE7 and will need to be fixed. But we hope the fixes will be minor.
We certainly didn’t do it this way to save time. Back when we were deciding the implementation, the thread-per-tab approach was estimated to be significantly more expensive than any other approach we considered.
Obviously third party toolbars that handle many top level windows well will work well with IE7’s tabs, and ones that don’t handle lots of windows won’t handle lots of tabs any better.
As for UI space, yes, third party toolbars are currently located below the tabs and can’t be moved above them. Another tradeoff.