Tuesday, April 14th, 2009

TaskFox: Lifting up Ubiquity

Category: Browsers, Firefox

I am really enjoying watching the work of Aza, Atul, and the entire Ubiquity team as it works on Taskfox.

What is particularly cool, is how the demo lives in content space.

But what about going beyond the typical command line? That is where the mouse prototype comes in:

And why stop there? Check out the new new tab designs including a fun look at tabs on the side.

I talked about the usage of a new tab page, myself.

Posted by Dion Almaer at 9:40 am

3.5 rating from 17 votes


Comments feed TrackBack URI

This is all good… But it worries me that the Firefox team isn’t working on the “one tab per process” feature (that Google Chrome has) for the next Firefox…

I have a pretty modern laptop (last year’s) running Ubuntu 8.10 and, as I open more tabs (5+), the hard disk starts working more and more… This is the ONLY reason why, when Google Chrome comes out for Linux, I’m gonna switch!

Comment by andysky — April 14, 2009

Not “one tab per process” — “one process per tab”. Sorry.

Comment by andysky — April 14, 2009

@andysky: The Firefox team is indeed working on that and more; it’s the Labs group that produced this particular demo.

Comment by Ben Galbraith — April 14, 2009

@Ben Galbraith: Ahh, that’s great! I didn’t know that — didn’t see it as part as the news for Firefox 3.5 or 3.6…

I really love Firefox, and I’d like to stay with it… This means that I probably will!

Kudos to the Firefox team & Labs group!

Comment by andysky — April 14, 2009

@andysky … I’m afraid you’ll be disappointed with Chrome then, because process isolation in fact increases memory usage. It’s not the magic bullet that Google has convinced everybody it is. The main benefits are that
a) one crashing tab doesn’t take out the whole browser (frankly, this is pretty much a non-issue with Firefox… it’s very important for MSIE that crashes frequently, but if process isolation is the right way to fix it is probably worth discussing)
b) the browser can allocate more processing power to parts that should feel responsive, like the GUI and the currently open tab.

It’s not a bad concept, but we should also talk about the overhead it brings, instead of talking as if it would solve all our problems.

Comment by hansschmucker — April 14, 2009

@hansschmucker: I see. Good points. Thank you.

Comment by andysky — April 14, 2009

@hansschmucker: Your answer tells me that I need to investigate this issue further. In fact, the problem only happens *sometimes* when opening more than nn tabs.

Comment by andysky — April 14, 2009

If I was you I’d first look at my memory usage… maybe the browser simply has to use the swap file because it’s out of physical memory. Then there’s the extension problem… some extensions need a lot of memory when they have to parse a huge pages (particularly Greasemonkey scripts and Greasemonkey-like addons often have these problems). Try to start with a clean profile (use the firefox -profile /path/to/profile switch to temporarily create a new one, the path has to exist when you do that, it won’t get created automatically)

Comment by hansschmucker — April 14, 2009

Actually, I’d look straight at Firefox leaking memory. And with the one-process-per-tab model (OPPT? ;), at least it doesn’t start paging like crazy *unless* you hit that particular tab.

(The leaks might very well be extensions – but the same applies. If mem usage goes out of control in one tab, the other ones are not affected)

But I’d like to hear any arguments what’s *wrong* with process isolation? It does not increase memory usage significantly, if done properly (shared non-mutable data like code is handled by the VM system, after all. And shared mutable data is not a good plan in general..)

Comment by groby — April 14, 2009

That’s the little problem: “if done right”. But doing it right requires quit a bit of logic and additional code since you don’t want to load data twice. So you put them in a shared context (or you don’t depending on how strict you want the process isolation to be. Not putting it there would solve all your worries, but it would create a lot of overhead), and suddenly you have to worry about the failing of one instance taking down the other ones. So you add logic to catch that. It’s not as easy as it sounds to do it right. Chrome often gets it wrong, and they wanted to pioneer it. MSIE almost constantly gets it wrong and has massive overhead problems because of that.

Comment by hansschmucker — April 14, 2009

Well, yes, that’s *always* the problem. I’m not advocating FF just kick the old ways to the curb. But slowly migrating towards shared-nothing would not be a bad idea… Especially in multi-core world, this is going to be a huge boon.

(I’m not exactly believing there’s a lot of data that *needs* sharing between tabs. Yes, technically you could be sharing images/media across tabs, but that’s a pretty rare occurrence, if you ask me.)

And I’m not exactly surprised at all that MSIE gets it wrong all the time – that would be par for the course ;)

Comment by groby — April 14, 2009

I think that’s a pretty common occurrence. Well for me at least. I often have more than 10 pages from the same domain open while browsing and if each and every one would keep separate copies of the images, I’d run into memory issues very quickly. Keep in mind that to a certain extend the images are kept uncompressed in memory… that’s quite a lot of memory. Also there’s videos, cached HTML, … things are a bit more complex than they seem, that’s all I’m saying. And that it wouldn’t help andysky with his problems anyway.

Comment by hansschmucker — April 14, 2009

@hansschmucker, groby: thanks for the tips. I’ll do some profiling in the next days.

Comment by andysky — April 14, 2009

btw. taskfox is kinda cool.. :)

Comment by mare — April 15, 2009

Leave a comment

You must be logged in to post a comment.