Future Graphics of Mozilla

If you haven’t heard by now, I was hired by Mozilla Foundation a month and a half ago to work on the new graphics platform. Since then a lot of progress has been made by Vlad and I. We’re using Cairo (through Thebes) for drawing and now on all paltforms. On Windows, I’m using all new Uniscribe handling complex scripts when drawing text and then using cairo to draw. There are quite a few bugs (fonts aren’t always bold when they should be, sizes aren’t always right, clipping is sometimes bugged, etc). Even with the various font bugs, the things are fairly usable.

Vlad and I are planning to start landing our various changes on to the trunk this week (not built by default) so you can do your own builds, but until then I’ve got a Windows build you can try here:

firefox-1.0+.en-US.win32-ng.zip

Vlad says he is going to post a Linux build soon (with Glitz support!)

9 thoughts on “Future Graphics of Mozilla

  1. Robert Accettura

    I hear a lot about Mac and Windows work, but what about Mac OS X? Any builds available, platform specific issues etc.?

    Sounds cool. When I get my Windows sys up and running I’ll be sure to give that a spin.

    Reply
  2. Jed

    Very Cool.

    I just took it for a spin.
    I know it’s very very alpha, so I hope this is taken as constructive criticism and not bashing.

    A few issues I saw with it in the first minute

    1) It’s very slow, very very slow compared to the latest branch builds.

    2) Flikery, images/pages flicker continuously when scrolling

    3) Feels unix-like. Don’t get me wrong, I love linux, but this buid doesn’t feel *native* at all to windows.. it feels like an app from Linux that was badly ported to windows, the colors, roundness of images, toolbars, responsiveness are out of place.

    4) Renders things differently, I know the fonts are all messed up, but it seems like horizontal scroll bars appear on many pages, page text overlaps borders, etc.

    (platform: Windows XP Home Edition, SP2)

    Once again, I’m sure you know all of this already, but the I don’t think you would have posted the zip unless you were looking for some feedback.. so there it was.

    Besides all that, awesome stuff, asuming that the future holds a fast, native feeling 1.9 branch, I’m very very excited as to what Cairo will bring to firefox!

    Keep up the awesome work!

    -Jed

    Reply
  3. Stuart Parmenter

    Robert:
    Sadly, Mac OS is lagging behind a bit with me and Vlad having our hands full with Windows and Linux. Josh has started poking at Cairo to see about making the backend not suck, and hopefully he can start poking at the Mozilla side of things soon.

    Jed:
    1) Hm, For me, it is about 85% the speed of our current builds. What kind of hardware do you have? (video card, cpu, ram)

    2) Flickering is mostly because we have double buffering turned off for testing.

    3) This build doesn’t have the windows native theme code turned on at the moment either, which is why it doesn’t look very native.

    4) Page text overlapping is due to clipping being broken right now on Windows. I’m hoping to track this down in the next day or two.

    Thanks for trying it out. I’m hoping to have more builds over the next week or two until we can get some automated ones going.

    Reply
  4. Jesse Ruderman

    Some images are blurry (e.g. the favicon on the selected tab). Carets don’t blink and leave more turds than usual. It crashed last time I tried to type this comment. Not bad for an in-progress port.

    Have you found many bugs in Cairo? How about bugs in Gecko that only show up when you take gfx away?

    How much of a perf win do you think Cairo will be by, say, Gecko 1.9?

    Reply
  5. toaster83

    I’ve been using the build for a couple of hours now. In addition, to what’s been said above, I’ve noticed a few more bugs.

    1. I had a helluva time making this post in the build. Whenever I would go back to try and edit something, Firefox would crash. Also, the spacing and letter updating was way off. Letters wouldn’t appear until a few characters after they were typed.

    2. Many times when I move the cursor around in textboxes, there are cursor redraw problems.

    3. Double clicking a word in a text box with multiple words typed in causes some of the words to become very close to white (only visible by highlighting). However, if you double click as part of a triple click, and complete the triple click, all the words are correctly visible again.

    4. Slashdot is rendered poorly in that many lines of text aren’t visible as well as many links with their underlines floating all over the place.

    5. Almost every period has an extra leading space.

    Performance relative to a current trunk build is about 70% to 95% depending on how much content is being drawn. The performance gap wouldn’t be noticeable with double buffering enabled on some sites. Others, such as GMail, large forums, large pages see a sizeable performance hit.

    All in all, you guys have done a great job so far. The cairo engine is doing a great job of rendering content, and the port is imho quite good considering it hasn’t even been put up on the trunk yet.

    Reply
  6. joe

    Great work.

    Noticed that printing doesn’t work at the moment. When can we expect printing do work again? Will printing create pdf files?

    Reply
  7. Foxtrot

    I thought it seemed pretty fast at rendering. It flickered like mad, but I got the impression that its speed was the same or near that of the branch builds.

    Will glitz support be built into the Windows version despite Microsoft’s shift away from OpenGL?

    The scrolling issues seemed to have doubled, by the way.

    Reply
  8. Stuart Parmenter

    toaster83: Fonts are currently my top priority, so hopefully we’ll have the spacing problems fixed soon. The selection bug you mentioned I’ve seen and am a bit confused as to what is causing that. I’ll look in to the rest of the issues.

    joe: Printing is busted and I forgot to mention that earlier. We’re currently trying to work out the best way to do printing. There are a lot of little pieces broken, although I can probably get it limping along pretty easily.

    Foxtrot: Getting glitz working on Windows shouldn’t be too bad, but I haven’t tried it yet. It isn’t clear yet if we’ll want to use glitz or do a new DirectX backend for cairo moving forward. It is also possible that Vista will have a new set of graphics APIs we can use for 2d vector graphics which are also accelerated.

    thanks guys!

    Reply
  9. Jed

    @Pav.
    >What kind of hardware do you have? (video card, cpu, ram)

    – Pentium® 4 Processor 630 with HT Technology (3GHz, 800FSB)

    – 128MB PCI Express™ x16 ATI Radeon™ X300 SE

    – 1GB Dual Channel DDR2 SDRAM at 533MHz

    I may be exagerating, I would have to say around 70-80% when compared to the latest branch DP build, I think the flickering and ‘unix-like-menu’ make it seem to be around 60%, hence my exageration.

    Looking forward to a fixed clipping and double buffering build in the future:D

    Thanks for your feedback on my feedback, and once again awesome work.. you and Vlad rock.

    -Jed

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s