Cairo coming soon to trunk

Firefox builds using cairo graphics will become the default trunk builds on Windows and Linux soon, likely next week. Mac may lag by a week or two in switching.

In the long term, the switch to cairo will allow better rendering, the flexibility to do cool things with <svg:foreignObject> and <canvas>, and a small speedup in normal browsing. But in the short term, the switch will introduce many regressions, both in performance and rendering. Other than slow performance, known regressions on Windows include:

  • Cairo: 324707 - Some animated gifs including the throbber don't work in cairo builds.
  • Cairo: 324611 - Bold is not bold in Cairo.
  • Cairo: 324857 - MathML all screwed up in Cairo builds.

If you use Windows, you can already test cairo nightlies. Cairo nightlies for Linux will be available within a few days.

On Windows, the switch to cairo requires a compiler upgrade from VC6 to at least VC7. Tinderboxes and nightly builds will jump from VC6 to VC8. You'll still be able to build with VC7.1 but not with VC6. The compiler upgrade will have the additional benifit of fixing a SVG color bug due to incorrect code generation by VC6.

On Mac, the switch to cairo will mean Gecko will no longer use the deprecated QuickDraw API, but will use the newer Core Graphics API instead.

If you file new bugs that only happen in cairo builds, please file them in product "Core" and component "GFX: Thebes", and include the word "cairo" in the summary and/or status whiteboard.

More information about the switch to cairo:

13 Responses to “Cairo coming soon to trunk”

  1. Jeff Walden Says:

    I think bug 312106 is also a fairly obvious problem which should be mentioned in the “known regressions” list.

  2. nestastnik Says:

    finally! this sound very exciting, I hope that at the end of february the trunk with cairo will be stabilized so I can try =)

    btw, reading this, does it mean that Win32 TRUNK cairo builds will be built by Visual Studio 2005 compiler? That would be awesome, my fav dev tool and best compiler today imo! I thought they allways use gcc…

    P.S. oooh MAC version will get some drugs, FF30 will be definitive challenge for the Safari!

  3. FP Says:

    Any idea if the various VC8 fixes will go onto the branch, so both codebases can be built with the same toolset? Also can VC8 Express Edition build Mozilla, I’ve seen conflicting reports?

  4. Martijn Says:

    Isn’t this a bit too soon?
    I mean there are a lot of obvious/highly visible bugs that probably will cause a lot of duplicate bugs to be filed.

  5. Jonathan Stanley Says:

    Good that the new rendering engine will get a good beating by a greater number of people… and hopefully the performance improvements will come soon (I can live with most regressions, but slowness really makes life no fun). The Cairo builds as they stand are certainly more usable than the single digit Mozilla (Suite) milestones from many, many years back.

    The thing that does bug me however if that fact (under Windows anyway) is that there doesn’t seem to be a way to be able to run different builds of Firefox (eg: Trunk and Branch) concurrently, which makes side-by-side comparision a bit of a pain in the backside. The unofficial “Standalone IE” so web developers could run IE3, IE4, IE5, IE5.5, IE6 (and IE7B1) is a great help. Not being able to do the same with Firefox(es) is rather annoying. :D

  6. pika unforgiven Says:

    there is a way to run multiple instances of firefox, but its kinda a dirty hack and does cause problems at times. here is the url: http://the-edmeister.home.comcast.net/advice-html/simultaneous-profiles_versions.html. i used it for running firefox branch and trunk before 1.5 and it worked alright other than the need to keep at least one version of firefox open all the time so clicking on urls in apps would work properly. i think i might go back to doing it once the obvious crash bugs are fixed, i quit testing firefox builds when my windows machine died and havent gotten back into it since.

  7. Jonathan Stanley Says:

    Ah thanks… was never aware of that page. :D

  8. Chris Says:

    i’m running a release build (1.5) and a trunk build on Windows without any problems.
    – used the 1.5 installer (.exe) and installed that in the default dir
    – used the nightly build ZIP and extracted it into a different folder
    – run ‘firefox.exe -profilemanager’ to create a new profile, called ‘ trunk’
    – create a shortcut on your desktop for the trunk build: “c:\…\-firefox trunk dir\firefox.exe -P trunk”.
    Use this at your own risk.. ;-) it works for me.

  9. Jeff Schiller Says:

    Can someone clarify if this means that cairo is rendering everything (including the chrome, the HTML and the SVG)? I tried it out and the throbber didn’t work, but otherwise couldn’t tell the difference…

  10. Jesse Ruderman Says:

    Yes, cairo renders everything in these builds. The throbber not working is a known bug that happens in cairo builds.

  11. Dennis J. Says:

    I just hope that bug 324883 gets fixed before the cairo stuff will get enabled in the regular trunk nightlies. Detecting performance regressions will be a bitch if it doesn’t.

  12. tester Says:

    What’s that for a bug? 324883 ????

    And what is a throbber? And is cairo itself compiled using some separate compiler(IC 8.x would be a good guess)? Or is it in a trunk and compiles/links together in when building whole Mozilla/Firefox trunk? And are you using VC8 already? That’s heck of a awesome compiler…

  13. Jesse Ruderman Says:

    The throbber is the thing that animates in the upper-right corner of the browser window while pages are loading.