IE7 Tabbed Browsing Q & A

I’m working on some long-overdue posts about tabbed browsing, but before I get too deep into them what I’d like to know most is: what do you want to know about IE7’s tabbed browsing implementation?

If you have questions, please post them as comments. For the smaller questions I may reply as a comment, but the bigger questions will be answered as future blog posts. In the end I plan to wrap everything up in a “FAQ” for future reference.

Please keep in mind that I have to use a certain amount of discretion in answering the questions, and I can’t really talk about future releases, but I’ll do the best I can.

My expertise is mainly in the underlying architecture/implementation, but if you have UI-specific questions I’ll ask my colleague if I don’t know the answers.

Finally, if there are things you’d like to see in future versions, feel free to comment on those too.

Comments (34)

  1. elleryq says:

    Why is "Open tab" gone when I right click the link?

  2. Vahid says:

    You know the most useful feature that you can embed in IE is a download manager.

    I have seen so many people including me, complaining about the matter.

    So i think it is really needed.

  3. tonyschr says:

    @elleryq, most likely you have an add-on that decided to override IDocHostUIHandler in order to provide a custom context menu. The fix is to look at your add-ons and upgrade or un-install them. Some, such as the Google toolbar, have fixed this in the newest versions.

    To provide more detail, the problem is that they’re loading the IE6 version of the context menu out of shdoclc.dll, which is no longer part of IE, but is still part of Windows Explorer. There was some bad documentation on our part (well, legacy) which suggested loading otherwise undocumented IE resources out of shdoclc.dll, which a handful of add-ons followed.

    IDocHostUIHandler was primarily intended to be used by 3rd party browsers such as Maxthon, and not IE extensions. The recommended advice for 3rd party developers is to use standard context menu extensions whenever possible (see the "Context Menus and Extensions" section in and if you really *have* to override IDocHostUIHandler, load your own resources for the context menus.

  4. tonyschr says:


    Yeah, the download manager feature has been discussed forever. It’s not something we’ve completely overlooked, but unfortunately it keeps getting put on the back-burner.

    I don’t know what the future holds for this feature, but in the short term I recommend evaluating the various shareware or freeware add-ons that add this functionality to IE. Some of them are quite good. (Of course, be cautious of the ones that are "adware", for better or worse.)

  5. tonyschr says:

    Regarding context menus, I should clarify that by "standard" context menu extensions I mean the registry-based extensions that can use script to execute the command.

    For extensions it is better to use these, and, if necessary, have some communication between this and an installed toolbar or BHO (say, using safe AX controls and PostMessage) than override IDocHostUIHandler.

    We’re looking into improving this for future versions of IE, of course.

  6. One of my tabs requires authorization.

    This seems to mean that in order to do anything on another tab that requires authorization I need to enter authorization information (or cancel) for this tab.


    (Similarly to close down all tabs I need to clear this authorization either by completing name/password or clicking cancel)

    I’m also not sure if this (requiring authentication) is the reason why I often get the entire IE7 set of tabs showing "connecting to" and process usage hovering around 99% leading to me being forced to delete the task after which the next IE7 start works fine.

  7. Will Sullivan says:

    How do I protect tabs/force new tabs when opening links?  For example, open up google and configure it to open links in a new tab.  Now do a search and click on a link.  The link will open up in a new tab.  Now click another link.  This new link will open in the same tab as the last link, rather than in a new tab.  This behavior is HIGHLY annoying.  I want to be able to open up several different links on a single page in multiple new tab windows, not in the same tab window.

  8. Why is the "New Tab" tab so limited?  🙂

    It basically has two modes – open to a blank page or open to a pre-set page.

    It would be extremely helpful if the "New Tab" tab would accept drag and drop and pasting (via ctrl-v) of URL’s.


  9. tonyschr says:


    I’m not sure what you’re running into. I can say that as with multiple windows in the IE process, tabs share the same session cookies so technically if you log-in to a site and then open a link from that site in a new tab, you should continue to be authorized.

    For the hang, if you can find a reproducable scenario please send it to me. It’s not a known issue.

  10. tonyschr says:

    @Will Sullivan,

    If you configure Google to open links in a new browser window by default, they specify a window target name.

    When you try to open subsequent links they use the same target name, so the tab that is already open will be targeted and the link will open in that window.

    Google could fix this by using a target of "_blank" instead of "nw". In IE there isn’t anyway I know of to disable frame targeting.

    From your end, you could simply disable this setting and middle-click or ctrl-click links to open them in separate tabs.

    (A subtle feature this reminds me of — when a background tab is navigated as a result of frame targeting, we blink that tab to let you know something has happened.)

  11. tonyschr says:

    @Christopher G. Lewis,

    Drag-and-drop on individual tabs (including the new tab button) was cut due to time constraints, but may make an appearance in future versions.

    For the Ctrl+V scenario, keep in mind that you can paste the URL into the address bar and then use Alt+Enter to open it in a new tab. This is a shortcut to opening a new tab switching tabs, pasting the URL, and hitting Enter.

  12. I would love to know why when tabbed browsing is enabled but opening new links in a new tab is disabled, a seemingly random IE window pops up and gets focus before a new IE window is spawned and loaded. Hope that makes sense (contact me if it doesn’t — michael at


  13. ivan says:

    Hey tony, so where is the context menu of ie7 now?

    i mean which dll and what is the resource number.

    It would be nice if this information was document, would prevent me for having to hack into everything when I want to do a simple customization.

    Thanks in advance

  14. elleryq says:



    I follow your suggestion and update Google toolbar to latest version. "Open in new tab" appear again!

  15. Jamie says:

    How do i get rid of the tab browsing?

  16. Will says:

    How can you configure IE7 to activate the windows last visited, after closing the current window? Instead it activate the next tab to the right.

    When right clicking on messenger to view your hotmail inbox, it always opens a new window instead of opening a new tab in the current window.

    Using the search toolbar should open a new tab in the current window and not active the current tab.

  17. Will says:

    Oh and Jamie to disable tabbed browsing:

    Click Tools > Internet Options > Settings (under Tabs) > clear the checkbox for "Enable tabbed browsing

  18. Will says:

    I found an answer to one of my questions on tab activation after closing other tabs.

    Under Advanced > Browsing > Check: "Use most recent order when switching tab with Ctrl+Tab"

  19. douglas west says:

    is there any way I can tell ie7 to ALWAYS open the tabs open at closing next time

    a default that I can set ….maybe in the registry if needs be



  20. Mujahid says:

    New Tab can be open by using Ctrl+T and what I supposed that it behaves same as Ctrl+N and use same session as the parent Browser (or the first Tab used)?

  21. Pablo says:


    I have a BHO that has problems with tabs.

    Basically what I would like to do is that in the DISPID_NAVIGATECOMPLETE2 event, I would like to create a map of

    (URL) – (Internet Explorer_Server HWND)

    The problem is that if I call spWebBrowser2->get_HWND() it returns the root HWND and not the "Internet Explorer_Server" HWND.


  22. Marty says:

    We use s GPO set homepage for IE. Is there a way to create a shortcut that will open IE7 using 3 other home page tabs or add them to the GPO set one?

  23. OMagen says:

    Hi Tony

    I’m a developer in a big company that has a toolbar for IE. I read your "IE7 Tabbed Browsing Implementation" post and I have a general question that i’m quite surprised didn’t come up more often, since i know for a fact that other toolbars have the same "problem".

    You wrote: " … We considered a variety of approaches and built a couple prototypes, and the solution we settled on was to essentially push a large part of what you see in IE6 into a tab. We built a new frame to host the browsers and wrote a bunch of internal plumbing to manage them and cache state. This is a bit of a simplification; the address bar and so on won’t be part of the tab of course, but 3rd party toolbars and Browser Helper Objects (BHOs) are because they are tied to a single browser and sometimes make deep assumptions about how they are hosted. … " —

    This means that every tab (which is on its own thread) will have its own toolbar. I’m aware of the fact that my toolbar is thread-based and my question would be: As far as IE is concerned, is it possible to have one toolbar per IE Frame window (just like the address bar)?

    The "problem" I was referring to above is a user-experience problem: I have the option of enabling/disabling buttons on the toolbar, so a user chooses to disable the popup-blocker and then navigates to another tab .. and there it is again. As far as the user is concerned, that’s a bug.

    I understand the need to have add-ons belong to a thread as opposed to the Frame window – what i’m asking is if its possible to design my toolbar differently, and if it is, what should i look for as a design solution (as opposed to a "bandaid fix").

    Thank you.

  24. OMagen, in IE7 there is no support for per-frame extensions. This is something we’re considering for future versions of IE.

    For the scenario of keeping state in sync across tabs, my recommendation for IE7 is to use the new DWebBrowserEvents2::OnWindowStateChanged event to detect when the tab is being made visible and then update the UI to reflect the settings/states that are shared across tabs.

    (You can use techniques such as a global counter that’s only incremented when the state is changed on one tab in order to avoid unnecessarily re-reading all settings on every tab switch.)

  25. pablo, the MSDN documentation for get_HWND has been updated with a code snippet for getting the per-tab HWND. See

    As an aside, note that once you start looking for HWNDs it becomes easy to accidentally rely on internal implementation details of IE (i.e. which HWNDs are where, z-order, etc.) which change over time. This is one of the most common sources of compatibility issues.

  26. Marty, I don’t think there’s a simple way to do this, but depending on your scenario you have a few options:

    1) Create a tab group as a favorite, but that of course requires user action.

    2) Use IE automation to create the instance of IE, and then call IWebBrowser2::Navigate with the flag  navOpenInNewTab or navOpenInBackgroundTab. You can do this very easily using Windows Script Host (wscript.exe) and a few lines of JavaScript.

    3) Do the same as #2, but using a BHO. (However, #2 is much simpler for most scenarios.)

    4) Set IE to "Always open windows in new tabs" or "Let IE decide" and then have an initial page that does a to open the subsequent pages. You would need to disable the pop-up blocker for this to work of course.

  27. Mujahid, the ability to clone the Travel Log like Ctrl+N does for Ctrl+T is not possible in IE7, but it’s something were considering in the future. (It actually got cut because I didn’t have time to implement it.)

  28. douglas, no, currently there is not a way to make the option to re-open tabs on next launch persistent.

  29. joelrog says:

    When clicking on a link within an email in Outlook Express, it opens in a new Window in IE7.

    I would like it to open an new tab.  I have tried changing the Tabbed Browsing Setting, but nothing makes any difference.  I certainly like the tab feature, but would like it to work with email links too.  Your help is appreciated.

  30. Niklas says:

    Hi, I wonder why I get a new IE7 window when I click a link in an email for instance. I already have IE open but get another window on the desktop.

    Used to Avant Browser and also FireFox until IE7 got out.

    Regards, Niklas

  31. tsalonia says:

    Hello Tony,

    I am running Vista Enterprise at work.  When closing IE7, I choose to "Open these the next time I start Internet Explorer."  This works fine until i reboot.  After a reboot, I start IE7 and only one tab is displayed with my startup page.  


    Tony S.

  32. Rob J says:

    Is there a way to disable tabbed browsing for one user account via the registry?  GPO and or logon scripts will not work, because the user account is never used to logon via the console.  In short, the account is used to "runas" IE.

  33. Tim S says:

    Hi Tony,

    Thanks for the chance to ask some questions.


    IE7 7.0.6000.16386

    Windows Vista Business

    *Intended Behaviour:

    Open my favourites one at a time and end up with them all as tabs within one Window

    *Observed Behaviour

    IE7 forces ‘some’ of the pages to be opened in a new Window, starting a new lot of tabs there. It happens to be ‘mostly’ https pages that open in the second window, however it also occurs with other pages I try to launch from a new tab in the initial windows such as Live Search and/or Google.

    *Steps to Reproduce

    For Example:

    1) Launch IE7

    2) From favourites open

    2.5) You can open other tabs after this step to be sure that tabbing is working if you wish

    3) Click on the ‘New Tab’ button (or Ctrl-T)

    4) Either type in, or launch from favourites, This creates a new Window and starts a new series of tabs.

    5) Click on the ‘New Tab’ button (or Ctrl-T)

    6) On this new tab in the NEW window, type in This will leave a blank tab in your NEW window, and launch another tabbed instance of in the ORIGINAL window.

    *IE7 Settings (all of the below are ‘ticked’)

    -Enable Tabbed Browsing

    –Warn me when closing multiple tabs

    –Always switch to new tabs when they are created

    –Enable Quick Tabs

    –Open only the first home page when…

    –Open new tabs next to current tabs

    –open home page for new tabs instead of blank page

    So my experience is that whilst running IE7 under Windows Vista Business, it seems to decide somehow that it will launch pages in a new Window (with it’s own set of tabs) rather than all in the same Window.

    -> I thought initially that IE seperated secure tabs from standard http, however the new window includes a mix of https and http tabs that were ‘forced over’ from the original window.

    -> It’s the same sites (e.g. Live search) that are forced open in a new Window whenever I try to open them in a new tab

    -> I don’t recall this occuring under XP (although I didn’t have much time to experiement with it).

    -> This occurs on all of the PCs in my office that run Vista.

    Thank you for your thoughts and help with this issue.

    Tim S

  34. Tim S says:

    Wow. I’ve been trying to figure out and research the above issue for days with no luck. Then within an hour of posting that massive wall of text above I figued it out for myself. Doh! ;P

    IE7 forces seperate Windows for any websites listed in your trusted sites (Tools ->Internet Options -> Security -> Trusted sites).

    So sorry for the unecessary question above, but I hope my reply can help out someone looking for assitance with the same issue I was experiencing.

    As a feature request I would still like to be able to open all sites in tabs within one Window, but I can guess perhaps why you wouldn’t have trusted and untrusted sites in the same window.