IE7 Tabbed Browsing Implementation

The information published in this post is now out-of-date and one or more links are invalid.

—IEBlog Editor, 21 August 2012

Hey, I’m Tony Schreiner, a developer on the IE team. I’ve been working on IE for a little over a year, and at Microsoft for over six years. My personal blog is over here, but I’m posting on the official IE blog to help consolidate useful information about IE7.

My role has been to re-architect IE to support tabbed browsing. This work began last year and includes building a new frame (top-level window and chrome), sorting out how to host and switch between multiple instances of the browser, and managing communication between the various internal components.

There have been a lot of questions and speculation about IE7’s tabbed browsing feature, so I wanted to give an overview of some of the work we’ve done that you can look forward to seeing in Beta 1.

Keeping the User in Control

Our philosophy for tabbed browsing is to keep the user in control of the experience. Tabs are on by default in IE7 Beta 1, but for those that do not want to use them they shouldn’t be intrusive and there’s a setting to turn them off and reclaim the screen real estate if desired.

Regarding script, there is no “target=’_tab'” feature or any direct access to tabs from script beyond what is available with multiple windows today. We are working on balancing the default behavior for whether a window opened from script opens as in a new frame or a tab. Currently, windows that have been customized, such as hiding a toolbar or making the window non-resizable, will default to opening in their own standalone frame, whereas ordinary pop-up windows will open in a new foreground tab. CTRL-clicking and middle-clicking links will open those links in a background tab. The rationale for opening only customized windows in a new frame is that this seems to correlate with scenarios where showing a window on top of the current window is desirable, such as replying to posts on internet message boards and getting a close-up view of items on shopping sites. Naturally we will continue to refine the default behavior and provide settings to customize the behavior.

In addition there is ongoing work to tweak the DOM so that window operations behave in a compatible but non-intrusive way. For example, window.move() will continue to allow a web site or applications that automate IE (more on this later) to move the frame, when there is a single tab open, but when multiple tabs are opened this will have no effect. These tweaks will allow IE to behave as expected for compatibility, but should help prevent sites from tampering with the browser when you have a set of tabs open.

IE7 Beta 1 has most of the core features you expect from a tabbed browser. You are able to open links in a new tab by middle-clicking or Ctrl-clicking links. You can switch between tabs quickly and easily using both the keyboard and mouse. You can control whether tabs open in the background or foreground, or open them in a new window as you always have. This core functionality is largely catch-up to other browsers which support tabs, but a necessary foundation for future work.

Adding Tabs to IE

The biggest challenge of implementing tabbed browsing is that IE was originally written as a single-window browser, and many of its features were designed around this assumption. It’s a bit ironic that the IE platform is made up of easily reusable components that make it possible for anyone to build a simple browser in a weekend using the Web Browser Control (WebOC), yet internally IE was factored in such a way that makes tabbed browsing difficult to implement.

One of the reasons IE is architected differently than a 3rd party browser that hosts the WebOC is that the IE frame and WebOC were written by the essentially same team and evolved in lockstep. While care was taken to keep components reasonably abstracted from one another using COM interfaces, the internal separation between these components is not as clear as a 3rd party browser built on top of the final public interfaces. Within IE6 the frame and WebOC are more like peers, and if you look at the MSDN documentation for IWebBrowser2 you can see the effects of this: some methods on that interface are only available when you’re building an application that invokes IE using automation (CLSID_InternetExplorer), while others are also available when your application hosts the WebOC (CLSID_WebBrowser). This means that internally, components such as menus and toolbars were tightly integrated with the browser.

Another example of what makes this challenging is that IE and Explorer windows share the same code for the frame and chrome (toolbars, menus, etc.), which means there are more code paths and different types of interactions with the hosted view (in this case, a ShellView) that were required to continue working after adding tabbed browsing to IE.

Finally, preserving compatibility with 3rd party add-ons and applications that host or leverage IE is an ongoing challenge. More on this later.

Implementing Tabs

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.

The address bar, back and forward buttons, and similar controls are still part of the frame. This required significant changes to the way these components interact with the browser. The old model was that they were directly connected to a single browser, frequently probing (sometimes deeply) through the object model to find out what type of content was being hosted and what capabilities were supported. They communicated directly to these objects and interfaces within the browser and cached pointers for performance and convenience. We untangled the communication so that the controls could flexibly target any tab and eliminated assumptions that were no longer valid. Similarly, we hooked them up to use the cached state for each tab because they can no longer sink the browser’s events directly.

One design decision worth calling out is that our current implementation is fully multithreaded. Each tab is on a separate thread, and the frame is also on its own thread. This has some impact on the overall footprint of IE, but we believe this will allow IE7 to feel faster and provide an overall better user experience. Internally this creates some additional complexity as we have to deal with a lot of cross-thread communication, but it also gives us a way to do things we wouldn’t otherwise be able to do with a single-threaded approach.

Compatibility

As I mentioned above, one of the deciding factors for our design was to preserve compatibility with 3rd party applications: both add-ons and hosts. Web sites are a concern too, especially with the DOM tweaks, but this feature is relatively benign in that regard.

As a caveat, I should add that compatibility is an ongoing challenge, and in addition to tabbed browsing there are many other changes across Longhorn that we’ve needed to be careful about. As a general rule, ActiveX controls and add-ons such as toolbars that interact with the browser and “lower” components through published interfaces should not have much trouble, whereas add-ons that walk up and down the window hierarchy using Win32 APIs such as GetParent(), subclass windows, or do other things that depend on internal implementation details will have more trouble. In general, applications that host the WebOC should not be impacted.

I’ll elaborate on this more and give some examples of some of the problems we’ve seen in a future post.

Good work on this. Very happy to hear that control over whether sites open in a new tab is given to the user rather than the site developer. Also, the middle clicking to open in the background is a must, glad to hear it’s implemented.

I think this will be THE step forward for IE for the average user.

Look forward to hearing more about this and other steps forward for both user & developer experience.

Whar is the point of making 3rd party addons part of a tab? I understand it could break backwards compatibility otherwise, but I would care more for user expirience, the vendors can and will ship new versions anyway.

Each tab on different thread? Well I can not use more than one tab a time, but have usually > 10-15 tabs open, so I hope this won’t be a perf hit for me.

> Currently, windows that have been customized, such as hiding a toolbar or making the window non-resizable, will default to opening in their own standalone frame, whereas ordinary pop-up windows will open in a new foreground tab.

I can see this being quite confusing for people who aren’t used to tabs.

Think about it: you click a link, and apart from a small change to a toolbar near the top, it seems like you’ve just clicked a normal link. Except you try and use the back button, and it’s broken. You check to see if it opened a new window, and it hasn’t.

Even assuming they figure out what the tabs are and how to close them, what tab do they end up on? The last tab that they were at, or the last tab in the series?

"They communicated directly to these objects and interfaces within the browser and cached pointers for performance and convenience."

That had to be fun to fix. It seems like those optimizations always come around to bite you later on. Of course without any such optimizations, your code gets bigger and slower. Damned if you do, damned if you don’t.

What parts of IE7 were written in .NET Framework. Seems like if you had to do such a big rework, it would be a good time to eat your own dogfood, but you seem to have choosen not to. I’d be very interested in what the reasoning was for that and what guidance Microsoft provides internally on the subject of when to .NET when all the public dialog is .NET everywhere.

Jim, the implementation is essentially redirecting what would target a new window into a new foreground tab. Perhaps Tony’s explanation wasn’t all that clear. Since it was going to go to a new window, the back button wouldn’t have worked anyway. Redirecting the new

This works quite well for sites like Bloglines or shopping sites that have many links that open new top level windows. Other times it can seem a little odd. As Tony said, we’re working on getting that to feel right.

Good work on getting this implemented–I really have a hard time using browsers without tabs!

Now, not to diminish the work spent on tabs, but I hope some people are also working on bringing CSS support up to par with other browsers and fixing the XHTML issues–or, well, actually just that big one: being able to send XHTML documents with the proper MIME type.

I’m currently a Firefox user (I’m not one of those "F1r3f0x rul3z and IE iz the…" people, though!), and tabs will at least make the browser usable for me. However, unless support for Web standards improves, I still won’t choose to use it and will continue to recommend "alternative" browsers to others to help the Web move forward.

Again, thanks for your (plural, including all developers who’ve done something so far) work so far, and please don’t forget the other aspects of the browser.

Sorry for the editing mistake on my last comment. The fragment should have been deleted.

Robert, there are people working on CSS, the user interface, internal architecture, etc. We have a large product with a sizable dev team. Hopefully you’ll hear from more of them and read about what they’re working on as time goes by.

Why "of course"? In Opera, by default the address bar is part of the tab, and it works quite well. I would even dare say that it makes sense, since the address bar contents change when you switch tabs.

> Jim, the implementation is essentially redirecting what would target a new window into a new foreground tab. Perhaps Tony’s explanation wasn’t all that clear. Since it was going to go to a new window, the back button wouldn’t have worked anyway.

No, I understood that; it’s just that people are relatively comfortable with multiple windows (although some people still have difficulty), where tabs will be new and unknown for many. They have learnt to close the window if the back button breaks. That won’t work for them any more.

Remember, popups and new windows have been a fact of life for web surfers for as long as most people have been on the net. You can’t say the same thing about tabs, people just won’t know how to deal with it.

For example, Firefox still opens target="_blank" and window.open() in new windows, and leaves new tabs for explicit user choice. Futhermore, you can configure it to work in the way you describe Internet Explorer 7.0 working if you prefer it that way (about:config in 1.0, Edit | Preferences in 1.1).

This is what I consider to be tabs done well, as it lets people use the tabs feature without confusing people who aren’t used to the concept. The power users can figure out how to use them on their own, and the less advanced users can use them when somebody shows them how to do it, rather than getting confused at dozens of sites spawning new tabs without any obvious (to them) way of getting back.

"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."

It would be nice if 3rd party toolbars could somehow specify if they wanted to be kept outside tabs (like the address bad will be), as although it makes sense for them to be in tabs by default, some toolbars should be kept outside of tabs…

Worker, opening windows that have customizations in their own frame is not really based on the architecture, so as per the pervious comment this may be tuned in the future and might be controllable through settings.

I trust IE7 will discontinue the absolutely nutbar behaviour of cloning the window or tab when you select New? If I want a new window or tab, I want it blank, not a duplicate of the one I’m already looking at. (If I ask for a new Word document, should it come preloaded with the document I’m already editing?)

"I trust IE7 will discontinue the absolutely nutbar behaviour of cloning the window or tab when you select New? If I want a new window or tab, I want it blank, not a duplicate of the one I’m already looking at."

I take advantage of the way IE handles the New command all the time. I press Ctrl+N, and then on the new window click the Back button, thus getting the previous page open in a new window without disturbing the current page. The times I use browsers that don’t do this I find myself sorely missing this behavior.

Just when writing this post I used it as well–without even thinking about it. I clicked on the "Post a Comment" link, but since the comments form lists only the post and not the other people’s comments, I wanted to look at the previous page while keeping this one open.

Will developers who use the WebOC also get access to the new frame that contains the tabs implementation? If so, in general how will access be provided and will there be new events available with an indication of which tab (brower control) is firing the event? Thanks.

If you have 2 tabs open, Your viewing one and the other one updates on its own. (javascript, header refresh) Will that tab display something telling you it has changed? (like the toolbar does with indivudal IE browsers open?)

"I take advantage of the way IE handles the New command all the time. I press Ctrl+N, and then on the new window click the Back button, thus getting the previous page open in a new window without disturbing the current page. The times I use browsers that don’t do this I find myself sorely missing this behavior.

Just when writing this post I used it as well–without even thinking about it. I clicked on the "Post a Comment" link, but since the comments form lists only the post and not the other people’s comments, I wanted to look at the previous page while keeping this one open."

No offense (and I use this technique too), but that’s a complete workaround for screwball behavior on IE’s part. Having to reload/rerender a page that you don’t even want to see and then go back twice is absurd.

A better approach for your particular scenario is very simple: Middle-click the "Post a Comment" link. Then you get a new tab to post a comment and you have the old tab with the original page on it. Once I started using Firefox this behavior became my standard approach and IE’s New Window behavior became annoying.

Of course the caveat is that you must KNOW that you want to see the original page and the Post A Comment page simultaneously. If it’s your first time to a website, and you’ve already gone into the page, hit the back button, then middle-click the "Post A Comment".

I agree with others who have said "New Tab" should give you a blank tab. Or maybe two options: New Blank Tab and Clone Tab?

"In Opera, by default the address bar is part of the tab, and it works quite well. I would even dare say that it makes sense, since the address bar contents change when you switch tabs."

Opera 8 is a great browser, but I find it particularly annoying having the tabs above the navigation buttons and address bar. They look out of place (to me) and it means moving the mouse that bit further up the screen to change between tabs. It just doesn’t feel as usable as it should/could!

Back on topic, the IE7 tabs implementation sounds pretty good, lets hope we see the first Beta very soon to give it a workout 🙂

You would have less problems if you put the whole IE6 window into the tab.

I dont think it worths to move the address bar out of the tab. Furthermore it is harder to use by the end-user!

It may happen to start typing the addres but need to switch temporary to another tab, then after returning back, the unfinished address might reset, because switching to the temp tab should switch the address into the address bar too. IMHO making a single address bar and keep different states for every tab is much harder than making unique separate bars that take care for their states themselves. You just need to use a common history of typed addresses for the whole browser.

In this single bar concept, what will happens when a webpage is designed to open with a hidden address bar?

Ive seen 3rd party software that extends the address bar functionality. I think pertab address bars will be more compatible with such software.

And dont forget to put the middle button of the mouse in use. 🙂

Middle click to a tab to close it is very handy, as well as middle clicking aside the tabs (on empty space) to open new window.

A developer on the IE team writes about IE7 tabbed browsing implementation. His role was to re-architect IE to support tabbed browsing. This work began last year and includes building a new frame (top-level window and chrome), sorting out how…

Tony, how the keyboard navigation works for IE tabs? Are they being switched like VS.NET’s tabs (the last seen tab becomes active on Ctrl-Tab) or like ordinary Windows tab control (Ctrl-Tab traverses tabs back and forth)?

I would give up all of it if IE would just become more standards compliant. Being up to five years behind the standards and Firefox and Opera is just pitiful. So I hope to hear form the other developers about what work they are doing on CSS and the DOM. I’m tired of having to fix all my code just so it will work in IE.

By pushing most of IE into a tab, does that mean we have a window frame exposing tabs, of which each again contains an address bar and an instance of each 3rd party toolbar? Or are these address- and toolbars outside the tabs but get flipped each time you chose a different tab? If latter is the case, I predict that you’ll shoot yourself into the feet. I don’t know about Joe User, but any person that’s used to tabbed browsing using Firefox or IE wrappers will loathe such an implementation. I really hope that the tabs just contain the HTML content!

Retaining the current page in new IE windows is extremely annoying for me.

I work an an intranet app that uses onload scripts to open new palette windows. If I hit control-N to get a new browser window, it will try to open new copies of the palette windows. The child windows are all referenced by name in code, but now there are multiple windows with the same name, which causes various conflicts.

It gets more complicated, but to sum up:

The new window functionality in IE 6 requires me to quit IE and start over to reset my session if I use it while viewing a page on our intranet app…

I would like to see the tabbed interface be more like Visual Studio than Firefox. Beyond Studio, actually: tabs can be reordered, new vertical and horizontal splits can be made, tabs can be torn off into new windows, a tab from one window can be dragged into the tabs of another window. I’m looking forward to seeing what you guys deliver!

I like the idea that Internet Explorer is adding tabs. I think its a good move, and let me be honest and be up front about this — I have not read any other posts. I don’t have the time today. But I did want to express some feelings to see what you guys thought..

There are two lines in this post that simply horrified me, even though I am so very glad to see tabs in Internet Explorer:

1. We are working on balancing the default behavior for whether a window opened from script opens as in a new frame or a tab.

2. CTRL-clicking and middle-clicking links will open those links in a background tab.

My thoughts are this: You’re entering the game kind of late. Opera’s web browser has had tabs and controlling elements on them for as long as I can personally remember, Apple’s Safari has had them for a while, and my personal favorite, Mozilla Firefox, implemented them with by default. Internet Explorer is last, but it is finally conforming to the now new standard. Why slack in even this?

In Opera’s Web browser, and with certain (standard) Firefox extensions… the *USER* controls how tabs behave… what Ctrl+Click or Middle-Click does to a tab or link. I see the point with creating a standard. But I was disappointed to read a section of the post called "Keeping the User in Control" and find out that the only feature that the user is allowed to control is turning tabs on and off. The toggle, to me, isn’t that big of a deal. I personally think that it would be at least wise to consider adding support for advanced users to customize their tabbrowsing experience. This is definitely a step, and can be seen as a default later. But don’t limit my usage to what you think is right. And I don’t think its a good idea to tag the idea of turning tabs off the only way to reclaim real-estate on the desktop. Honestly, desktop real-estate is one of the main reasons I use Mozilla Firefox. I keep everything in one window. If Internet Explorer 7 has tabs, but still doesn’t let me disable the use of multiple windows, it’ll be pretty much the same thing to me as it has been since the final release of Mozilla Firefox…. absolutely useless.

Please tell me that IE7 will fully support all the w3c standards such as CSS (2.1 & 3) and SVG. Come on Microsoft its time to play nice with others. If you want this browser to be a successful browser and not just used because its installed by default on windows you are going to have to work closly with W3C and follow the standards _fully_. As a web developer and browser connaisseur I beg of you to heed to this call.

These so-called developers also make websites and know the experience of spending an hour or two trying to figure out why thier <div> is disappering, or why IE can’t assign variables in javascript.

Us developers are here to provide you users with a good experience. But we can only do so if the browser makers provide us with standard tools to work off of. I know IE won’t do some of the really cool things like SVG and the CSS3 Working drafts, but if they could at least fix their HTML and CSS implementations that would be really welcome.

I think the way the tabs will work is very good however i would like to be able to select multiple tabs as a single favorites item so for example when i select my favorites item it will open up the three websites i have selected in three different tabs.

Great to hear about tabbed browsing coming to IE! Will it be able to save a session so that the browser reopens with the same tabs that the user had when they closed the browser? Please integrate this feature and make it a switchable option, if not a default, instead of leaving it to a 3rd-party add on. But this raises some hairy issues that are currently better handled by Opera compared to Firefox.

One issue concerns a browser session where one of the tabs is causing the browser to lock up or crash. Since I have Firefox set to save sessions automatically, I’m locked in a loop of 1) open browser with all tabs 2) crash and save tabs 3) back to 1. The only fix I have is to disable network access so that the browser tabs can’t connect to the site that’s causing it to crash. Opera can be set to give you the choice upon startup of reopening the set of tabs from the previous session or just limit the new instance to one tab.

And then there’s the hassle of having your umpteen tabs getting opened when all you want to do is view a URL that you’ve clicked on from Outlook. Ugh. It should create a new tab if the browser is already open, or just open a single tab if it isn’t.

"One design decision worth calling out is that our current implementation is fully multithreaded. Each tab is on a separate thread, and the frame is also on its own thread. This has some impact on the overall footprint of IE, but we believe this will allow IE7 to feel faster and provide an overall better user experience. Internally this creates some additional complexity as we have to deal with a lot of cross-thread communication, but it also gives us a way to do things we wouldn’t otherwise be able to do with a single-threaded approach."

From my experience, these are the words of either novice or incompetent programmers. Threads typically _decrease_ performance, not increase it, assuming you know how to create a solid reactor, at least.

I am gambling that multi-threaded approaches are one of the reasons Microsoft’s software is so buggy and less deterministic than the open-source equivalents.

In my personal opinion, I think everyone is being a bit harsh on the developers, and I’m saying this from the point of a person that has spent lots of sleepless nights figuring out why my site works fine in IE but not in Mozilla knowing that Mozilla is probably correct. But I also spent a lot of nights figuring out how to imitate some features of IE that make life a lot easier and I would like standard.

Building a browser certainly isn’t easy. I know that I could never even start building one. Sure, IE is a bit late adding in tabbed browsing and stuff, and it obviously isn’t their idea, but know that most of the users out there are still using IE! That’s why all the bickering about standards is going on. If no one uses IE, it wouldn’t matter!

So the majority of the other uses can also get tabs, which I think is a great thing. If there is a good feature, then we might as well implement it everywhere so everyone can enjoy it.

I may be optimistic about this, but I’m trying to look at it in a way that will better everyone.

Tabbed browsing isn’t too much of the issue that everyone’s posting about. Everyone bickering about standards and stuff. The real issue here is about tabs.

I’m not too sure on the window.move() part however. I was not familiar with move() and after looking at the documentation, it seems to deal with TextRanges which are unfortunately not well documented (and IE only which was a pain I’ll admit as it gives remarkable control to text fields).

Finally, I just saw IE blogs earlier today, so I don’t know if there are any, but if there are some on the CSS implementation that is going on, or stuff to deal with ActiveX security (which is the main reason I’m using Firefox — the spyware really gets into the computer), then I could really tear it apart if others haven’t done so already 😉

I deleted three commments yesterday, IIRC. Two used swear words (hey, you can make your point without them), and the last one was a rant that ended with calling us "morons" and claimed (without a link) to be CowboyNeal. Personal abuse + misrepresentation = deleted.

There are more than 4000 comments made to this blog that didn’t get deleted; probably a lot more than half negative. It’s not hard to make your point in a way that won’t get you deleted.

I dont’ understand the concept of threads very well. If each tab is in its own separate thread, does this limit the number of tabs that we can have open without crashing the system? Do Firefox and Opera do this?

For the love of God, it’s about time for IE to catch up with all the other browsers on the market, but tabs are the least critical issue.

Personally, I have been burnt many times and wasted 100s hours in the past working around IE quirks. Yesterday, it happened again, and I didn’t realize it till now, leaving a portion of The CDCer header chopped off by IE for hours!

The cause of the problem is the negative margin surrounding the header block. This is a common CSS practice to control layout, and it worked fine with Firefox and Opera on both Windows XP SP2 and Mac as well as Safari, but not IE 6.0.

I’ve been using Maxthon for a long time. There is something very useful: we don’t need to use middle button or right click in order to open a new tab, just drag selected text to open a new tab with the results from any search engine (Google, etc.) or, if we drag a link, a new tab is opened. It is much faster.

Sorry to ask this again, but just out of interest, will IE’s FTP capabilities still work with the new tab system?

Also, I don’t mean to insult anybody’s intelligence or abilities here, but have you checked weather or not two web pages with the same CSS / JavaScript ID / class references don’t mix within one another tabs?

For example, if I were to have site A in one tab and site B in another, the CSS code referencing div#nav in site B won’t effect a matching element from site A in the previous tab?

I know this may be an obvious check, but I thought I’d raise it, as it could be a really irritating bug if such a thing did occur.

Giving each tab its own thread is critical–and I’m surprised to hear that Firefox doesn’t do that. IE currently gives each window its own thread, that way if one window gets hung for some reason the others keep working smoothly. With tabs, if one tab gets hung for some reason, you can keep surfing with the other tabs.

Multithreading is meant for these purposes–dealing with more than one task at a time. There is a small bit of overhead in dealing with multiple threads (context switching, synchronization), but the result is a more responsive application.

You know what drives me nuts? Someone from the kitchen at Microsoft could walk into a room with you all in it, and say "Lunch is Ready" – and 5 of you would ask if its standards compliant, and two more would start asking about the Turkeys CSS support.

Imagine if you would – from day one, all browser companies got together and said – lets make a standard, and all do it exactly the same. That way all things work in all browsers for websites. Wouldnt that be great.

…fast forward to today, ten years later. Where exactly would be? No Psuedo class, since that was a MS thing (thats your a:link,a:hover,a:active;a:visted for the most common known use) – Innovoation would not exist, because browser to stay standards compliant can not innoviate away from what the unofficial standard body says is the standard.

If IE went that route today, falling in with the bit players like Moz and Opera – the result would be the worse thing that could ever happen to the web. True improvements, true innovation, comes from a lot of money, a lot of failed attempts, a lot of mistakes, and time. An open source product does not have the money, or the resources to truly innovate – oh they can come up with some new neato commands, but I am talking about the stuff that happens like going from a text browser to a graphical browser. Who knows that the next major evolution in the browsers will be? Well – none if they all stay standards compliant 100%.

A corporation like Microsoft, when the day is over, has 0 responsibility to you or I. They have one responsibility, that federal laws do mandate, and that is for them to attempt to make money for their shareholders. In that attempt, they are required to push the bubble, innovate, develope new products, technologies, whatevers. They even have to care about what you and I think. Its that requirement for them to continue to attempt to make money, that pushes them to dump billions of dollars in to R & D. I mean – the linux/open source community gets excited over a million dollar donation. MS spends more than that before lunch every day on R&D.

Really long ramble shortened, we need non standard stuff more than we need standard stuff.

Travis brings up an interesting point when he mentions Visual Studio’s tabs. I don’t have Visual Studio installed myself, but I do have the Windows Platform SDK installed. It uses "Document Explorer" to view documentation, and what Document Explorer is is essentially a tabbed browser–you can browse the Internet with it. It’s a rather good tabbed browser at that–it supports rearranging tabs and other things that people are asking for. It would have been a good thinkg to release as an "advanced" user interface for IE.

I have never, ever complained about any browser adding extra stuff. All of the extra -moz- styles and kthml styles are great, and I wish that some of these would bleed across browsers (such as IE supporting some of the more common -moz-* properties), at least until they get officically standardized.

So, no, I don’t want to stop ANY browser from innovating and adding things (but like I said in another comment, when was the last time IE added anything?).

But when one of these great ideas does get picked up by the standards (like :hover), then PLEASE PLEASE PLEASE work on putting it in the browser.

That’s my ONLY complaint with IE6. If there had been an IE6.2 that came out a year ago, adding CSS 2 support, and ran on Windows 2000 and XP, then I would have NO PROBLEMS WHATSOEVER with IE. They could also add hundreds of proprietary tags and styles. Extra things do not necesarrily hurt standards, but the standards should be the baseline of support (and I’m not talking about CSS 3). Any less and a browser is not good enough.

> "Imagine if you would – from day one, all browser companies got together and said – lets make a standard, and all do it exactly the same. That way all things work in all browsers for websites. Wouldnt that be great."

This has already happened : it’s called the world wide web consortium (W3C), and Microsoft is part of it…

> "No Pseudo class, since that was a MS thing"

Intelligent proposition become part of the recommandation. Microsoft has proposed a lots of things, and a lots of things that Microsoft proposed has become part of the recommandation… As they are part of the W3C.

> "True improvements, true innovation, comes from a lot of money"

Wrong : True improvements, true innovation, comes from a lot of brains and a lot of competition. If there’s no competition, there’s not innovation (see IE6, released… 4 years ago, where’s the innovation ?)

While we are on the subject of IE7, I was wondering if you are finally going to have the PNG support that you promised at least two major versions and many years ago? You could at least pretend to be interested in supporting standards.

With tabbed browsing in mind, has there been any consideration of extending the concept of "Favorites" to define a collection/group of tabs as a single "Favorite" item?

I think it would be useful from a user experience standpoint to open a group of tabs at once.

For example, if part of my daily routine involved browsing news.google.com, weather.com and msdn.microsoft.com every morning, then it would be very helpful to define this collection of tabs as "Morning Websites" and then click a single node in the Favorites list to open them all simultaneously.

Other than this idea, I think the current description sounds pretty good. Hopefully, we will hear news about CSS standards updates in future posts (in particular, fixed positioning of HTML elements).

Great News. Tabs are the way forward. Look at excel. It has been doing a tabs version for years and is productive. What I would like to see are two things. Button to close tab on the tab. Use of CTRL+T to open tab and maybe a history button in the TAB could be productive. Maybe colour tab or differentiate by distance the tabs so the tab u are browisng is displayed at forefront. Regards.

I use Firefox and agree tabbed browsing, together with RSS is the way to go, but with tabs in Firefox, once you have added the site title it can’t be changed. Maybe this will be fixed with FF1.x but at the moment a site will show as the URL wants it to, i.e. ‘Welcome to the home of XXXX’ rather than being able just to see

XXXX. This can be confusing if you have say around 10 tabs up, the site name is obbscured in long titles. Would be great if you could right click to alter the title but it is not possibe. Any comments out there?

Well considering that we as developers to this day work our ass off to make things with DHTML and other methods that IE has natively had built into it since the 90s, I guess they figured they would give the rest of the world a chance to catch up.

Honestly, I have no clue why they stopped real active dev on the actual browser interface and rendering engine. If I had to venture a guess, I would guess that they looked out and saw little guys doing great things, like the Open Source MyIE project (get taken up and made big by someone other than the original author and made closed source). I find it rather ironic that I hear, MS kills all the little guys, stomps them out, then in the same breath, Why doenst IE add Tabs and all those things? IF IE had come out with Tabs two years ago, it would have knocked all the alternate browser companies out of the water – now some of them actually do stand a chance to survive after getting established.

Yes png support drives me nuts, but I am not going to freak out over a render engine that was built at about the same time as the png – not supporting something that really didnt exist at the time.

For me though – it really comes down to Microsoft telling me that to use their browser, I am not going to have to relearn everything I have engrained in my head how to do. I could care less if its "wrong." Wrong has worked for five years for me, and had no problems at all until Moz showed up – so as far as I am concerned – the problem is the fool hardy faith in standards that are not the standard. A standard exists not by pen and paper, but by use.

In the end – I realize that my websites are going to be only visited by a very small fraction of the people in the world. If 6-10 percent of that small percentage can not use them, all I can say is, who cares? I dont, when I know that the majority of them also have the ability to view the site in the browser it works in, and choose not to.

The wait is over. Firefox empowers you to browse faster, more safely and more efficiently than with any other browser. Join more than 50 million others and make the switch today — Firefox imports your Favorites, settings and other information, so you have nothing to lose.

Why Use Firefox?

“Beware of spyware. If you can, use the Firefox browser.” – USA Today

“Better than Internet Explorer by leaps and bounds.” – FORBES

Popup Blocking

Stop annoying popup ads in their tracks with Firefox’s built in popup blocker.

Tabbed Browsing

View more than one web page in a single window with this time saving feature. Open links in the background so that they’re ready for viewing when you’re ready to read them. Find out more…

Google Search is built right into the toolbar, and there is a plethora of other search tools including Smart Keywords (type "dict <word>" in the Location bar), and the new Find bar (which finds text as you type without covering up anything).

Live Bookmarks

RSS integration lets you read the latest news headlines and read updates to your favorite sites that are syndicated. Find out more…

Simple and intuitive, yet fully featured, Firefox has all the functions you’re used to – Bookmarks, History, Full Screen, Text Zooming to make pages with small text easier to read, etc.

S, M, L or XL—It’s Your Choice

Firefox is the most customizable browser on the planet. Customize your toolbars to add additional buttons, install new Extensions that add new features, add new Themes to browse with style, and use the adaptive search system to allow you to search an infinite number of engines. Firefox is as big or small as you want.

Setup’s a Snap

At only 4.7MB (Windows), Firefox takes just a few minutes to download over a slow connection and seconds over a fast connection. The installer gets you set up quickly, and the new Easy Transition system imports all of your settings – Favorites, passwords and other data from Internet Explorer and other browsers – so you can start surfing right away.

A Developer’s Best Friend

Firefox comes with a standard set of developer tools including a powerful JavaScript and CSS error/warning console, and an optional Document Inspector that gives detailed insight about your pages.

Wel as far as i understand, the freeware Avant Brouwser is built on IExplorer technology and allready has tabs. So i wonder why does it take about year to program something like it again. If I was Bill G, i would simply buy it and improve it with some more add ons like security improvements, thereby saving on develping costs. Nevertheless I wonder what you guys will create this time.

It would be nice if for exmpl favourites could be stored in my MSN so wherever i sign on i got my favorites all the same. Would it be an internet cafe at work or at home, or by friends. So far i haven’t seen any brouwser having such a gadget.

In my eyes IE will only become a real browser again when the historical junk is dumped. Sure, keep it compatible, but give me a cleanly coded, sleek browser and I may use it if it is better than the rest.

As it stands, Firefox is a long way ahead in this department, as is Opera and Safari.

As a developer who has automated IE from VB for many years, I’d like to ask for two simple things to be included in the IE7 public interfaces:

1. A Version() property! Please make it simple for us to invoke the InternetExplorer object and see if it’s IE7.

2. Enhance how we can control printing…let us select the printer, start printing, paper size, etc. Right now we have to set hooks, wait for the IE printer dialogs, send messages to manipulate them, etc.

Now a question:

When invoking the InternetExplorer object, how we will enumerate the tabs? Will there be security considerations? (Currently, for example, when enumerating frames, we can get "access denied" as part of the cross-site scripting security, so work-arounds are required).

I think that even when "objectCotainer" is not "positioned" ( that is, does not has CSS "position" defined as "relative", "absolute" or "fixed" ) "object0" should be rotated when relatively positioned — what, currently, doesn’t is the IE behavior. This appears a misconcept because "relative position" implies a integral conformance with the recipient’s coordinate system, thing that in the above exposed case doesn’t occur.

Tony, thank you for writing more technically about the tab implementation of IE7. I was also wondering how or whether you can keep existing 3rd-party extensions compatible while introducing tabs at the same time. Keeping the toolbars and BHOs "inside the tab" is a natural solution which even reliefs toolbar developers to maintain state information across frames. Nevertheless I want to stress that it is important to have the possiblity to decide whether the BHO should (a) be instantiated on every tab (b) instantiated only once for every window (c) be displayed inside the tab or outside the tab. It would also be fine if toolbars could be dragged to the bottom of the window.

From the programmers point of view and especially for (b) it will be necessary to access the tabs programmatically and get notified about related events (open, close, activate, deactivate, etc.). Apposed to websites it should be possible for BHOs to address tabs and to decide whether to open a page in a new tab or a new window.

Tony, thank you for writing more technically about the tab implementation of IE7. I was also wondering how or whether you can keep existing 3rd-party extensions compatible while introducing tabs at the same time. Keeping the toolbars and BHOs "inside the tab" is a natural solution which even reliefs toolbar developers to maintain state information across frames. Nevertheless I want to stress that it is important to have the possiblity to decide whether the BHO should (a) be instantiated on every tab (b) instantiated only once for every window (c) be displayed inside the tab or outside the tab. It would also be fine if toolbars could be dragged to the bottom of the window.

From the programmers point of view and especially for (b) it will be necessary to access the tabs programmatically and get notified about related events (open, close, activate, deactivate, etc.). Apposed to websites it should be possible for BHOs to address tabs and to decide whether to open a page in a new tab or a new window.

I’d like to point out one problem with tabbed browsing that affects all tabbed browsers.

When a website is configured to redirect on a server error, it’s really annoying. Consider this sequence of events:

I’m reading a page.

I open a link in a new tab.

I carry on reading the original page, and follow a few links.

I close the active tab.

I am now left with an error page that has no way of getting to the page that I want. I have to find the original page that linked to it, and follow the link again.

The correct way of displaying error pages is to serve it under the original location rather than sending a 3xx response to the client and redirecting to an error URI.

I can’t see a way of fixing this on the client side, but I thought it was worth mentioning because the only large websites I have noticed do this on a regular basis are microsoft.com and msdn.com. It’s really annoying. What’s worse is that your websites aren’t exactly stable, I’ve lost count of the number of temporary errors that I’ve seen.

PS: heh. Look what I got when I hit submit:

We are currently unable to serve your request

We are sorry, but there was an error and your request could not be completed

I found this news story on Techweb and I believe it more than anything else points to the problem most of us have with IE, apart from the lack of innovation on your part for the last 4 years. As the article points out "Ransom-ware" exploits vulnerabilities in IE to infect a user’s computer. This is one of the main reason’s I switched to firefox, since I’ve been using that browser (1yr) I have not had a single instance of Spyware on my computer. With IE the problem was a recurring one, every month I had at least one infection and frankly not enough time to deal with it. When I switched to Firefox everything changed. The moral of this post- While it is great that IE is finally going to catch up to other browsers in terms of tabs and other superficial improvements, the one thing it needs to really focus on is security. Perhaps not embedding it to the OS would prevent some of the attacks, I don’t know, but you guys should look into it. Till then, I am using Firefox, even if IE comes out with a tabbed IE7.

May 31, 2005 (2:26 PM EDT)

techweb techweb

techweb Spyware Software Dubbed ‘Ransom-ware’

By Gregg Keizer, TechWeb News

An apparently bogus anti-spyware tool is the newest addition to the expanding "ransom-ware" category of malware, Panda Software said Tuesday.

Ransom-ware, the term some have slapped on malicious code that infects a PC, then demands money in return for cleaning up the machine or unlocking suddenly-encrypted documents, is just another example of how hackers are increasingly driven by greed, Luis Corrons, the director of Panda’s research lab, said in a press release. Now, said, Corrons, a purported anti-spyware product, SpywareNo, joins the list of ransom-ware.

<b>Surreptitiously downloaded when users visit certain porn or pirate Web sites, SpywareNo exploits vulnerabilities in Microsoft’s Internet Explorer to get onto a PC.<b> Once it installs itself, it creates an icon on the desktop and displays a bogus warning that the system’s infected with spyware, Corrons said. (It also modifies the Windows Registry to guarantee it runs every time the PC is started, even after the user thinks he’s managed to manually delete the program.)

The warnings are as fake as a $3 bill.

The on-screen alert invites users to purchase the full version ($20 for a month’s subscription, $60 for an annual plan); only those who pay the ransom see the "threats" disappear.

"If users fail to register, this commercial software will ‘detect’ threats that don’t actually exist on the computer, and which will ‘disappear’ as soon as users pay for the product," said Panda in its own warning.

In a release posted to the Spyware Warrior anti-spyware message forum, someone claiming to be the public relations manager for SpywareNo took exception with the ransom-ware categorization, and blamed the drive-by-installs on out-of-control affiliates.

"The spyware removal software market is so overcrowded," wrote someone identifying herself as Jessica Simmons. "The competition is very very hard. That is why we direct all our efforts to development itself and have no time and power to advertise our products effectively. We use affiliated advertisers to do this. This is an easy way for us. This way is a very dangerous though. It is a shame that some of our advertisers do not respect the law, but unfortunately we are unable to check them all at the initial stage."

The poster went on to say that SpywareNo "does not install silently or without permission," and that any such instance is due to "those unprincipled advertisers."

End-users commenting to the dslreports.com message forum, however, say different. One said SpywareNo got installed "out of nowhere," while Eric Howes, a graduate student at the University of Illinois, a contributor to the Spyware Warrior site and list, noted "the [SpywareNo] scanner turned up eight listed spyware programs, all ‘high risk’ in just two seconds. Even a scan of the processes [running in Windows] takes five or six seconds. That’s a big red flag," he said. "SpywareNo wasn’t actually scanning anything at all.

"Within 48 hours of the first report we had of SpywareNo, we had reports from all over the place," said Howes. "The fact that the reports came from a number of different sources, at about the same time" indicate that it had been seeded on multiple Web sites.

Phony spyware detection isn’t a new tactic, said Howes, who compared SpywareNo’s approach to others, such as Spywiper and SpyWareAssassin, two products which have been investigated by the Federal Trade Commission.

"They’re guilty of unfair practices, just as was SpyWareAssassin," Howes alleges. "But I think Panda is on to something by classifying it as ‘ransom-ware.’

"SpywareNo has been irresponsible at best," he added. "I’ve stopped listening to that ‘our affiliates did it’ excuse years ago. Even if its’ true, they’re still responsible."

Attempts to contact SpywareNo, which according to the alleged public relations spokeswoman, is based in Istanbul, were unsuccessful.

IE caused you to have spyware, and Firefox prevented it? That’s one of the more outrageous claims I’ve ever heard. I’ve got IE on the machine I’m writing this from, yet amazingly I’ve never been infected with spyware. How could I stay spyware-free, even without the amazing Firefox? Perhaps it’s due diligence on my part…

John in Florida: That’s ‘cos you know what you’re doing. Firefox lets people with lower knowledge of computer software browse the web without worries. (Although SP2 seems to work pretty well, on the computers which have XP and can cope with it – mine choked and started drawing random turquoise lines all over my screen… And no, it isn’t a slow computer.)

John in Florida said: IE caused you to have spyware, and Firefox prevented it? That’s one of the more outrageous claims I’ve ever heard. I’ve got IE on the machine I’m writing this from, yet amazingly I’ve never been infected with spyware. How could I stay spyware-free, even without the amazing Firefox? Perhaps it’s due diligence on my part…

If you read my post carefully, I never said it Firefox prevented Spyware. All I said was that IE has known security flaws, many of which it has yet to fix, that leave it far more vulnerable to Spyware than any other browser out there. Firefox, because it does not use Active X is far more secure. That’s part of the reason people have switched to alternative browsers in the first place. I posted that story because it related specifically to flaws in IE that allowed it to happen. So next time, before you criticize a post, read it fully.

I used to like IE, but frankly once I tried FF, I converted, first because it had so much that IE did not. For example, if you notice, this blog has RSS and ATOM feeders, but if you come here with IE, unless you have a third party add-on you won’t be able to take advantage of this feature. Ironically, you can take advantage of it with Firefox, and other alternative browsers. IE developers should keep that in mind when they work on IE 7. If their own site has features that their browser cannot take advantage off, there is something wrong with it. What’s more, IE is not even worth using unless you use either the google or yahoo toolbars, FF comes with a search bar built in and you can add more search engines to it if you want. That tells me that those people at Mozilla really care about the type of browser they release whereas IE just muscles its browser to the top by tying it to its OS. I wonder which browser Microsoft employees would use if they had a choice right now? Firefox, whichhas features like tabbed browsing, built in RSS readers, a built in toolbar, and is easily customizable so that you can use it the way you like it, with a myriad of extensions and themes you can download easily from the mozilla website or will they choose an old, unremarkable browser like IE that does not have any of these things. If it was a choice between FF and IE alone, which would you choose?

I think it is great that you are implementing the tabbed browsers. I have used Fire Fox which is very nice and some third party browsers that run on top of IE6, Maxtron. One thing that was not mentioned in the IE7 implementations was magnification and sound features. The magnification and sound used in Opera 8 is very effective. The sound is great for those that have some type of a vision problem. The magnification feature is great because it magnifies the entire page rather than just the text as many of the browsers do. If you haven’t considered it you should look at these functions in Opera 8 because I am sure they would be welcomed by many in the user community.

The Internet Explorer web browser (verified on versions 4 to 6 has a fault in its garbage collection system that prevents it from garbage collecting ECMAScript and some host objects if those host objects form part of a "circular" reference. The host objects in question are any DOM Nodes (including the document object and its descendants) and ActiveX objects. If a circular reference is formed including one or more of them, then none of the objects involved will be freed until the browser is closed down, and the memory that they consume will be unavailable to the system until that happens.

A circular reference is when two or more objects refer to each other in a way that can be followed and lead back to the starting point. Such as object 1 has a property that refers to object 2, object 2 has a property that refers to object 3 and object 3 has a property that refers back to object 1. With pure ECMAScript objects as soon as no other objects refer to any of objects 1, 2 or 3 the fact that they only refer to each other is recognised and they are made available for garbage collection. But on Internet Explorer, if any of those objects happen to be a DOM Node or ActiveX object, the garbage collection cannot see that the circular relationship between them is isolated from the rest of the system and free them. Instead they all stay in memory until the browser is closed.

As a rule of thumb, you shouldn’t make any assumptions about how people will use your software. In the case of browsers – users should be free to make up their own mind on how the browser will function.

Power users choose FireFox because it is infinitely customisable. Its thin or its fat or its somewhere inbetween, and always secure. If you don’t understand that you won’t build a better browser.

Please let us order tabs after they have been opened. That means let me click and drag a tab left or right and have it repositioned in the tab list. If you dont know what I’m talking about, download UltraEdit and open multiple files and give it a try.

why not implement tabs as in opera whereby a tab need not take up the whole window space? this is a very flexible approach and one which sadly my browser of choice (firefox) doesn’t implement (yet, i may write an extension).

i would agree with several comments here which state that the various javascript commands such as window.move(), window.focus() etc should be optional as they are in many other browsers.

it would also seem very sensible to allow users to limit all new windows to tabs if desired, i certainly prefer to work this way and i believe that most tabbed browser users would also welcome this.

i have to say, i’m far from the biggest fan of microsoft but the blogs here are very encouraging and seem to indicate that microsoft are now taking the browser market far more seriously than in recent years which can only be a good thing!

I would like to be able to drag a link from anywhere onto the browser and have it open in a new tab. Currently anything dragged and released onto the tabs replaces the first tab when it opens. It would be nicer if it opened an extra tab. This would be particularly helpful when one has a page of links that are set to open in a new window and instead of a new window I would like to make them open as new tabs; whether by clicking a button first or by dragging them to the tab bar.

Ther other thing I would like to see is a smaller implementation of the bar. Perhaps it could optioinally be made to sit in the page title bar or even in the status bar area.

And if you really want to start making useful additions to IE, make an auto-archive feature for the favourites so that old ones vanish off the menu after a set period of non-use.

Also; the tabs seem to vanish in the kiosk full screen mode (f11). Other items vanish in that mode as well of course. Can there perhaps be a right-click menu enabled so that one can add toolbars to that mode or is that mode designed for a fixed purpose.

BTW, personally I thought tabs were redundant in an OS that alread has tabs for everything (the taskbar), but I can see that there are extra feature that are quite cool in browser tabs. Even so, it is a shame to be doubling up on tab systems like this simply because the competition makes such a big thing of them.

hmmm.. I have a feeling that the tab toolbar may have messed with my mouse’ scroll-wheel. My mouse cursor normally only has to be placed on the text area of the active browser window in order to be able to scroll with the wheel. Now I appear to have to make an actual click on the text area nefore I can scroll. This has only happened since installing the tab update. My mouse is a Logitech one with Logitech default drivers.

I just downloaded and installed MSN search for IE and I must just say that while the tabs feature is great, I hate the fact that windows has set MY TABS to be microsoft related sites. I have not yet found a way to disable that feature and remove those annoying sites, especially msn search which is atrocious and focuses solely on search hits that are trying to sell me something. The tabs are great, but please get rid of the microsoft related sites. That is one of the reasons that Firefox fans like FF, no annoying self promoting tabs. Although they do provide you already installed favorites but these are for things you are likely to need like FF themes and extensions.

Did you know that the recently reported FF flaw that allows spoofing is also an issue in a fully patched IE6? It is, just visit Secunia and find out for yourself. The only difference is that FF has an extension called Tab Mix that patches the flaw, while IE does not. I haven’t tried IE tabs yet on the flaw, but so far IE has not performed well in the test. I will report shortly.

I gave you all a few of my early impressions of the IE 6 tabbed browsing implementation available in the new MSN search toolbar with tabbed browsing. I was pretty harsh and upon further reflection, I’m still comfortable with those remarks. It is a piece of crap. Now, what’s amusing to me is that I had some assumptions (unexpressed at the time) that since IE 7 was going to be a completely new beast, they’d be able to build a smarter feature there, and that it would be less buggy. Maybe they’ll get the less buggy part, but from what I’ve read over at the IE blog and adam style’s blog it doesn’t look like they’re going to get the smarter, more usable part. All third party toolbars are going to reside inside of the tabs and have an entirely separate instance for each tab? WTF?…

There’s been a bit of talk about the new version of Internet Explorer that is due to be released (for Windows XP SP 2 only) this summer in beta form. The initial promise looked great…bug fixes, standards support and TABBED…

Very soon, graphics on the Internet will be much more than &lt;acronym title=&quot;Graphics Interchange Format&quot;&gt;GIF&lt;/acronym&gt; and Flash. The Big Three of alternative Web browsing&amp;nbsp;&amp;ndash; Mozilla, Opera, and Apple&amp;nbsp;&amp;ndash; now have at least experimental support for &lt;acronym title=&quot;Scalable Vector Graphics&quot; class=&quot;initialism&quot;&gt;SVG&lt;/acronym&gt;.

The big news of the week is, of course, that Windows Vista Beta 1 has been released. In addition, IE7 Beta 1 was released as well. While I haven’t installed either yet, this is definitely good news on the road…