Archive for the 'Mozilla' Category

XULRunner and Eclipse

Thursday, March 2nd, 2006

IBM today released the first version of their AJAX Toolkit Framework, a plugin for the Eclipse IDE that allows developers to develop, inspect, and debug web applications. What is very cool about this project is that they are using XULRunner (with its builtin JavaXPCOM embedding support) to drive the web technologies.

I suppose that I’ll need to get to work creating user-friendly installers for XULRunner now. The current instructions instruct users to install XULRunner using the command line --register-global command-line flag, which isn’t very user-friendly.
Screenshots courtesy of Javier Pedemonte:

DOM Inspector and JavaScript Console JavaScript Debugger XMLHttpRequest Monitor

Debian Versioning of Mozilla Libraries Harmful

Wednesday, February 22nd, 2006

It has come to my attention that the maintainer of the Debian Mozilla packages (Mike Hommey) is using patches that significantly alter the XULRunner linking strategy (first discussed here).These patches cause various Mozilla libraries to be soversioned and installed in the library path (/usr/lib). Although I have emailed Mr. Hommey privately on a number of occasions, I have not received a reply, and the linking strategy that he has implemented is poorly thought out and will lead to instability and frustration. (more…)

XPCOM: Detecting Reference Cycles, or Switching to GC?

Saturday, February 18th, 2006

Brendan proposes to break XPCOM reference cycles using cycle-detection algorithms.

I must admit that I’m skeptical: in order to break reference cycles you need to know what strong references an object is holding: to do that you either have to ask the object (which must implement a special interface), or you have to have special knowledge about the internal form of an object (presumably provided through some specialization of classinfo).
IMHO it would be a better use of our time and energy to develop a mark-and-sweep garbage collection for XPCOM objects: (more…)

Exceptions Don’t Solve the Problem (and create worse problems)

Saturday, February 18th, 2006

Brendan claims that the XPCOM nsresult return type is a significant cause of bloat due the need to rv-check every XPCOM method call, and proposes that XPCOM switch to use C++ exceptions. This is an idea that might appear attractive on the surface but would not only break the existing binary compatibility of XPCOM but would permanently destroy XPCOM as a component model with a standard binary API. (more…)

Switch-Locales 1.5.1

Monday, February 6th, 2006

I’ve posted a new version (1.5.1) of the Switch-Locales extension which fixes a minor bug and adds Thunderbird 1.5 to the extension compatibility info. It’s also available on addons.mozilla.org.

I have also imported my local sources into a Subversion repository located at http://svn.smedbergs.us/switch-locales/. You’re welcome to checkout the sources and play with adding new features if you want.

XULRunner 1.8.0.1 is out!

Friday, February 3rd, 2006

After years of planning, preparation, and coding by numerous people, a stable developer preview of XULRunner has finally been released!

Although the concept of a generic XUL application launcher or XUL Runtime Environment had been talked about for a long time, the practical beginning of the project can be dated as the first commit of nsXULRunnerApp.cpp to CVS by Darin on Aug. 26, 2004. Since then, a growing community of developers has improved and stabilized XULRunner to the point where various software projects are actively developing applications on top of the platform.

This stable preview release is an exciting milestone, and I am looking forward to the XULRunner 1.9 release, which will be the first production release which will ship with and serve as the application launcher for Firefox. I recently got the build system set up so that you can build Firefox-on-XULRunner, and once I get a few bugs taken care of I hope to have tinderboxes and nightly builds of Firefox-on-XULRunner available for early testing.

353 Bugs Filed

Tuesday, January 24th, 2006

Josh recently posted about his 100th bug filed. I have been floating in and out of Mozilla for quite a while, so I thought I’d query my own stats:

  • 353 bugs filed (earliest: bug 14261, Filed 1999-09-18)
  • Breakdown: 238 FIXED, 72 open, 19 DUPLICATE, 10 INVALID, 9 WONTFIX, 5 WORKSFORME
  • 414 bugs fixed (earliest: bug 156405, Fixed 2003-01-31). This number may not be quite accurate due to how the Assignee field in bugzilla is used.

Synergy Rocks!

Monday, January 23rd, 2006

Synergy is a software tool that lets you use the same mouse and keyboard on multiple computers in front of you. Simply drag the mouse pointer from one screen to the other! The computers can be different operating systems. (I’m using it right now with my Linux and Windows machines.) Configuring on Windows was a snap: configuring on Linux was slightly more involved, but nothing a computer-savvy user couldn’t do. I highly recommend it if you have multiple computers/monitors but don’t want multiple keyboards and mice on your desk.

Valid HTML4.01

Monday, January 16th, 2006

This blog is now valid HTML4.01 strict! By default, WordPress uses XHTML with a text/html mime type, which I think is an abysmal choice. And I don’t care much for XHTML anyway (HTML4 with WhatWG extensions is the future of the web), so I hacked my theme a little bit more and wrote a little WordPress plugin which disables a few XHTMLiries that WordPress uses by default; these combined changes make this blog validate as HTML4.01 strict.

Mozilla, Embedding, Small Devices (and gtkmozembed)

Thursday, January 12th, 2006

This past week I’ve written a couple of patches to make embedding Mozilla easier/better:

  1. Bug 321359 – Give embedders the ability to lock and select profiles
  2. Bug 299988 – Integrate gtkmozembed with libxul

This second patch caused some concern: I made gtkmozembed use the new toolkit profile-management APIs (gtkmozembed will no longer build with seamonkey). This is not a problem of itself, since Mozilla has already made a commitment that libxul will be the ongoing embedding framework.

The more difficult problem is that the toolkit (xulrunner) currently doesn’t support a lot of the “small-device” build options such as --disable-xul. We definitely want to continue to support small device embedding situations, while avoiding the costs of supporting an exponential combination of little build options that may have complex interactions. This provoked a spirited discussion among drivers@mozilla.org about what options are valuable to support and who should bear the support burden of these options. The provisional outcome of this discussion is as follows: Mozilla is interested in maintaining a couple of “small device profiles”, in cooperation with small-device embedders (cell phone manufacturers and others). I have written up a wiki document with a preliminary proposal describing three profiles. I would like to get input from small-device embedders about what features they actually need, and to what extent they are able to help in the maintenance and documentation of these small-device profiles.

This proposal results in a slightly illogical situation of a small-device “XULRunner” build that doesn’t actually support XUL (it would be an embedding solution). In this sense what you are building is really more “GeckoRunner”; but there’s no need to get caught up in naming…

I’d also like to reiterate that this support is explicitly for small devices that can’t handle the full XULRunner footprint. It doesn’t make sense to have a small-device profile of XULRunner installed on a PC; it is important to support a full-featured web if there are sufficient system resources available.