Hey Dreamhost, we use tabs now

I’ll be honest, this post isn’t about Mozilla or even really anything Mozilla related (beyond the fact that it is about a poor web application). However I know that lots of people in the Mozilla community use Dreamhost as their webhost and I figure some of them might want to know to watch out for this and avoid getting into the same mess that I did so I’ll include it in planet feed anyway.

The problem is with Dreamhost’s Web Panel, the service that customers use to administer their web hosting packages. It turns out that certain parts of this panel can’t cope with the idea of you accessing it from multiple tabs or windows at the same time. If you try opening the web hosting settings for more than one domain in different tabs, only the last one you opened will actually work as you expect. Yep, they are remembering, server side, which domain you are editing the settings for.

This wouldn’t normally be the end of the world. I could accept it if there was some error message or it just failed to save the settings for one of the domains it wasn’t expecting. Sadly the panel is not that clever. Instead, no matter which domain’s settings you try to save it always overwrites the domain that was last opened. The panel does subsequently tell you the real domain that it saved the settings for (with a nice green tick to emphasise that everything is fine!) if you are careful enough to read the full message but of course by then the domain’s old settings are gone.

I discovered this when trying to make a change to one of my domains blew away the settings for my secure server, including the ssl keys. Thankfully they were recovered but this sort of thing really shouldn’t happen at all. It seems pretty absurd to me that a modern web application can exist that doesn’t seem to take tabs into account at all.

It’s a shame really because for the most part Dreamhost are the best webhosts I’ve ever used and their panel is very easy to use. Dreamhost’s support team have told me that this is a limitation of the web panel and it should only be used in one window, though there don’t seem to be any warnings about this anywhere. I hate to make sweeping statements like “Surely it would be easy to…” because it bugs me whenever anyone says the same about Firefox, but happily overwriting your settings (and calling it a success) seems like something that should be avoided at all costs.

10 thoughts on “Hey Dreamhost, we use tabs now”

There was always a chance of that being an issue prior to tabbed browsing too, as people could easily have opened settings for different domains in multiple windows. I’m surprised they haven’t updated it though. I suppose it’s possible they don’t know, but I’d have thought a lot of people would come across that. My host (Bluehost) seems to handle domains by ajax, although we hardly get an options for them.

It’s very true, but I’m pretty sure the rise of tabs has really increased the numbers of people using multiple pages at a time. We now get people with hundreds of tabs open, doubt anyone had hundreds of windows open.

They certainly do know about it, I told their support team a month ago. They said they’d talk to the developers and get back to me about it but like most claims of that sort nothing ever came of it.

The other thing to take into account is whether it’s the usual case to change the settings of more than one domain at once. What seems to me the most likely scenario is that you edited one domain in one tab, then a few tabs later edited another domain, left them both open, then later saw the old tab and just used it to change domain #1 again.

I agree though, the potential destructiveness should definitely outweigh how likely it is to happen.

Well whether it is normal to edit multiple domains at once is an argument for whether they should support that or not. I’d accept it isn’t a normal case (though I have done exactly that twice that I know of) and maybe it shouldn’t be supported. But it should give an error message or something, not clobber the settings you weren’t expecting.

I’d say it is a pretty common situation – if you have mulitple domains either with different tlds (most of the sites I’m involved with have both .co.uk and .com) or common misspellings. (yes, I know about CNAMEs, but people don’t always use them for whatever reason).

Yeah, that kind of thing is annoying – my bank’s internet site is similar, very sensitive to page requests happening out of order. Tends to log me out if I try to open multiple tabs, or even if I click on one link accidentally then click on the right one before the first loads.

That said, it’s not entirely surprising. Making a web site work with multiple tabs is easy enough, but doing the same for a complex application is quite a bit harder. It’s a problem not dissimilar to writing multi-threaded applications – an application designed for single-window use is easy to write, since you can assume that the series of HTTP requests you’re getting are supposed to be sequential, and can safely modify session state.

Opening multiple windows or tabs on the same session means requests are no longer sequential, and you need to start working out which requests belong to which sequence. And that’s not easy, because the browser doesn’t offer any help – there’s no way of telling which tab a request came from, short of to write some client-side logic that works out when it’s been opened in a new tab, and passes some new token with every request. Not impossible, but not trivial either.

It’s true. I’ve developed web applications myself in the past and in complex scenarios coping with multiple windows is very difficult. The things is though that this doesn’t appear to be a complex scenario. You click edit and it displays the edit page, the domain to edit is in the url and displayed in the page. I’d expect that sending this domain in the data that is sent when you submit the form (which it doesn’t currently) is really all you’d need to at least do a sanity check and confirm it is the domain you are expecting.

When I posted my message above, I tried to do so my middle clicking on the reply link to Lucy’s post. That just gave me a new tab with the exact same page in it. I figured it was a JavaScript problem, and sure enough if I disable JavaScript then I can’t post at all.