Planet Mozilla

September 15, 2007

Jesse Ruderman

Introducing Lithium, a testcase reduction tool

I wrote a tool called Lithium that automatically reduces large testcases, such as real-world web pages or testcases produced by jsfunfuzz. It can usually reduce a 3000-line jsfunfuzz crash testcase to 3-10 lines in several minutes, considerably faster than I can reduce by hand. Perhaps more importantly, I can do something else while it reduces the testcase.

Documentation for using Lithium

Description and analysis of Lithium's algorithm

Download Lithium (0.9.1)

There are two (related) reasons I'm not calling it "Lithium 1.0" yet. First, I'm hoping to improve the way "interestingness tests" are written. Currently, they're separate programs that communicate to Lithium using their exit code, which limits error handling and might slow Lithium down. I'd like to make the interestingness tests be Python files, but I'm not sure what the best way to do that is. (Should Lithium __import__ the interestingness test? Or should the interestingness test import Lithium and be renamed to e.g. "reduce_crash.py"?)

Second, it would be useful to be able to pass extra arguments to the program being tested. For example, it would be useful to be able to pass a profile name to Firefox, or to pass a Firefox path to Valgrind. One possibility is to put the program being tested last on the command line, so extra positional arguments become options to that program. This solution would only work for interestingness tests that launch a single program (so it wouldn't work for a "renders differently in these two Firefox builds" test, for example), but maybe that's okay. Another possibility is to require the use of a config file for passing arguments to programs being tested (so you don't end up typing all of ".../firefox-bin -P foo" on Lithium's command line).

I'll probably use the MIT license for Lithium (but not for timed_run.py, which was mostly written by Chris Cooper and Bob Clary).

September 15, 2007 07:58 AM

AllPeers

Want a Ride to Mozilla 24?

Cedric and I are staying in San Francisco and heading to Stanford tomorrow for Mozilla 24. If anyone’s staying in the city and wants a ride in our sporty Corolla rental, we can fit two or three people. Leave a comment here in that case so we know you’re coming. We’re staying in the Best Western Americana on 7th street near Mission, and I guess we’ll be heading off at 10ish.

Bookmark to:

September 15, 2007 07:56 AM

The Mozilla Blog

Mozilla 24 is LIVE!

Our colleagues in Japan kicked off Mozilla 24 in Tokyo this evening. If you weren’t able to make it there like me, you don’t have to miss out on all the action. You can watch live from the Mozilla 24 site now.

They’re even providing us with front row seats at a Firefox Rock Festival…well, virtual seats!

Our European team will come online shortly from Paris and then we’ll pick up for a day of sessions at Stanford on the future of the Web. We’ll then wrap with a global discussion at 6:00pm PDT that will include Vint Cerf live from Washington, D.C. and Mitchell Baker at Stanford.

Check out the complete schedule of online Mozilla 24 activities and join us!

Share This

September 15, 2007 07:37 AM

Alex Vincent

Mozilla24 and the last mile

From the Mozilla 24 upcoming.org page:

Stanford is a 20 minute walk from the Palo Alto train station. Visit 511.org for details on public transit.

Hmm. I looked on 511.org, and it suggests walking that distance. Too bad I don't know my way around the University...

The northbound Caltrain arrives at Palo Alto Caltrain Station at 9:31 am, leaving San Jose Diridon at 9:00 sharp. The day pass from San Jose to Palo Alto and back is eight dollars.

So here's what I want to do. Anyone going to Mozilla 24 @ Stanford by Caltrain from the South Bay, let's meet in the northernmost car (the bike car, usually). I'll be wearing a blue Firefox shirt and carrying my usual light blue laptop bag, boarding at Diridon. If you're heading to the event by Caltrain, please reply here and join me. All we need is one person familiar with the University, and we can head off together. Otherwise, we can wait for the southbound train 30 minutes later and join up with our Franciscan colleagues, or we can ask a local for directions. :-)

September 15, 2007 04:04 AM

Frank Hecker

Public draft of Mozilla Corporate Contributor License Agreement

Some time ago we started the process of drafting an agreement for use by corporations and other organizations whose employees contribute code and other material to the Mozilla project, and created bug 369879 to track this effort. After some delay (for which I apologize) we now have a draft of such an agreement ready for public comment.

In this post I provide a little bit of background to the proposed agreement (formally known as the Mozilla Corporate Contributor License Agreement, or the Mozilla corporate CLA for short).

Background

First, let me clarify what this document is, and what it is not. The proposed corporate CLA is intended to provide a legal mechanism by which organizations can make blanket donations of code and other copyrighted material to the Mozilla project, either one-time contributions or ongoing contributions. It is independent of and orthogonal to the current CVS contributor form (and its future replacement): The CVS contributor form is signed by an individual person who has commit access, and governs that person's access to the Mozilla repository; the corporate CLA is signed by a corporate manager, and deals with IP rights to Mozilla code and other materials contributed by that organization's employees and contractors (none of whom may actually have commit access).

Contributor license agreements are not new to the open source world, but they are new to the Mozilla project. The basic purpose of a CLA is to provide a more formal legal mechanism by which a project can accept contributed code and documentation and ensure that it has all the rights necessary for the project and others to use, distribute, modify, etc., the contributed materials. A good example is the Apache project, which has both a corporate CLA and an individual CLA (for the case where people are contributing code and other materials for which they themselves hold the copyright).

In contrast, the Mozilla project has allowed anyone to contribute code and other materials without first signing any agreements, and has relied on committers to verify that the persons contributing the code actually have rights to do so, and that the contributions are properly licensed under whatever open source license is appropriate (typically the MPL/GPL/LGPL trilicense, but not always).

We started the process of drafting a corporate CLA because some organizations expressed an interest in using this type of mechanism as a way to formalize their contributions to the project. We thought it could also be useful for committers: When accepting patches from corporate employees and contractors, if a corporate CLA is already in place then committers don't need to do any further verification or seek additional permissions.

Note that our current plan (unless there's a consensus to do otherwise) is to offer the corporate CLA as an option for organizations contributing to Mozilla, but not to make its use mandatory. Also, at this time we do not plan to require individual contributors to sign a CLA, although we could certainly create a Mozilla individual CLA for optional use if there are enough people interested in having one.

Notes on the draft corporate CLA

As noted above, the proposed Mozilla Corporate Contributor License Agreement is similar in intent to the corporate CLAs used in the Apache project and others. The Mozilla corporate CLA was designed specifically for Mozilla and hence has some significant differences from other CLAs; however the overall format of the CLA, and some of the text, is modeled after existing CLAs wherever appropriate.

As noted in the second paragraph, the corporate CLA is intended to cover any contribution to any project operated under Mozilla Foundation auspices as part of the overall Mozilla project. It does not cover contributions to other projects not directly under Foundation auspices, for example independently-developed Firefox extensions, third-party XUL applications, etc.

The goal of section 2 of the CLA (the copyright license from the contributor) is to get a broad enough grant of rights so that we would be able to choose an appropriate copyright license when distributing the contribution as part of the relevant Mozilla project, whether that be the MPL/GPL/LGPL trilicense, some other open source license, or a Creative Commons or similar license for documentation or other non-code material. We would be also able to update license versions without needing to get additional permissions (for example, if we ever do a new version of the MPL).

Note that section 2 is not a copyright assignment. Contributors would retain copyright to their contributions to the Mozilla project, just as they do now, and would be able to use those contributions as they wish outside the context of Mozilla.

The goal of section 3 of the CLA (the patent license from the contributor) is to get rights sufficient to distribute the contributed material as part of our project distributions under our standard licenses, while making it clear we are not asking corporations to grant unlimited rights to practice their patents in all contexts. Note that section 3 covers not just current patents but future ones as well, so it's relevant even for corporate contributors who don't hold any patents at present.

Finally, Schedule A can be used either to make a one-time contribution or ongoing contributions, whatever the organization in question prefers.

Commenting on the public draft

If you have specific comments on the language of the public draft, please feel free to add them to the bug report or send them via private email to me. If you have more general comments or questions on other issues related to the draft CLA, please post in the mozilla.legal newsgroup or the corresponding mailing list.

September 15, 2007 02:10 AM

September 14, 2007

Doug Warner

Week 37 Year 2007 status update

Drupal for Mozdev is getting close to being ready to implement in production, so I've been mostly working on other bugs this week.

Drupal integration into Mozdev site - I started looking into how to link Drupal into Mozdev's site - specifically how to include it in the navigation. I haven't gotten too far with this yet.

bug#17724 and bug#17733 to get some mirrors to fix their mime type problems

Asked project owners to test out Drupal - Our drupal installation is pretty much ready to test, so I asked our project owners to check it out.

Look into having bugzilla manage our public feedback - In order to keep track of issues reported by our users we're looking into having our feedback list forward into Bugzilla. We're looking to upgrade to Bugzilla 3 in the near future so we'll probably wait until after that. The biggest problem right now is that the email_in.pl script requires the user emailing to have an existing bz account, so Myk said I should look into adding that to the script when we're ready to work on this again and submit it as a patch.

Disabling old tools - Mozdev has a number of old tools laying around that either aren't being used anymore or are being replaced by Drupal. I'll have a report for the board at our next meeting.

Tool to disable guest checkouts - Some projects don't want to allow guest checkouts so we've developed a tool to help disable that if necessary (the reasons need to be good).

Upgrade cvsweb - Upgrading cvsweb will allow us to keep the protected directory from even showing up in the list (since it's not possible to view it anyway). I have the groundwork done; so now we need to find time to implement it.

Publish tool not working - Mozdev has a tool to publish/unpublish a project, but the publishing part wasn't working. I submitted a patch to get that going again.

Next weeks tasks will probably mostly depend on how testing goes with Drupal and our Tuesday board meeting. If things are still going slow with Drupal I might start research on setting up Subversion.


September 14, 2007 09:05 PM

Gervase Markham

Weekly Status 2007-09-14

In future, my status reports will be fortnightly.

Last Week

Moved house

Updated the trademark policy to pull out the list of our trademarks

An article on the Summer of Code at Mozilla was published on the excellent LWN which used an interview I gave as a source

This Week

Another pass through the CA applications

Further work on "security committee" document for CAB Forum

Got the green light to triage outstanding l10n team requests

Next Two Weeks

Triage outstanding l10n team requests

Get the Bugzilla component reorganisation going (needs code written)

Prepare handover for Frank of CA work; he's going to be doing it for a while

September 14, 2007 04:19 PM

Daniel Glazman

FullerScreen Pro progress

If you want to know the kind of things I am currently implementing during my nights, you can take a look at this 4.4 megs avi....

September 14, 2007 11:41 AM

Songbird

[2007.09.13] Finally! Another Blessing for your Inspection!

http://publicsvn.songbirdnest.com/wiki/Nightly_Builds

Come help us peer into the depths of the 'Bird...

It's been awhile changing things over before they were stable enough to feel comfortable with sharing with all you wonderful folks.

There's plenty of new art and functionality, the tabs are more stable, the downloads are more friendly, and there's even starting to be a decent number of Add-Ons available for this 0.3 Nightly.

Remember, Blessed Nightlies are for you to test something relatively stable and tell us what bugs you can still find in it. With your assistance, we've closed over 1000 bugs along the way to 0.3 but we know there still must be more to be found.

Please please please help us out by running a Smoketest and filing bugs in Bugzilla as you find them!

http://bugzilla.songbirdnest.com/

Oh and by the way, for those of you who have asked in the past for a Stop button and been told that it will be able to be added as an extension, well, I wrote the extension:

http://addons.songbirdnest.com/extensions/detail/48

Install! Enjoy! File bugs!

mig

September 14, 2007 01:06 AM

Trent Mick

mercurial needs better end-of-line support

One real world issue with source control systems is the handling of end-of-line characters in text files. Currently Mercurial pretty much punts. The hg book says:

Note: The Windows version of Mercurial does not automatically convert line endings between Windows and Unix styles. If you want to share work with Unix users, you must do a little additional configuration work. XXX Flesh this out.

The hgrc man page suggests:

NOTE: the tempfile mechanism is recommended for Windows systems, where the standard shell I/O redirection operators often have strange effects. In particular, if you are doing line ending conversion on Windows using the popular dos2unix and unix2dos programs, you *must* use the tempfile mechanism, as using pipes will corrupt the contents of your files. Tempfile example: [encode] # convert files to unix line ending conventions on checkin **.txt = tempfile: dos2unix -n INFILE OUTFILE [decode] # convert files to windows line ending conventions when writing # them to the working dir **.txt = tempfile: unix2dos -n INFILE OUTFILE

However (1) unix2dos and dos2unix are generally not available on Windows machines and (2) if dos2unix isn’t available the “encoding” here will silently wipe out your file to empty content on checkin.

How is Mozilla handling this in their hg repository? Is it mandated that new files added on Windows use Unix line endings or is some kind of conversion for Windows attempted?

September 14, 2007 12:18 AM

September 13, 2007

Mozilla Developer DevNews

Firefox trunk unfrozen (but closed!)

The Firefox trunk unfroze today, but was immediately closed in order to track down a performance regression. When that regression is identified, fixed and the tree re-opens, it will do so at threat level orange, which means: check-ins for patches on bugs marked blocking1.9+ or blocking-firefox3+ do not require approval1.9+ check-ins for all ...

September 13, 2007 10:45 PM

JT Batson

SUMO meeting postponed to Friday at 3pm pacfic time

Sorry for the late notice, but this week's SUMO weekly meeting has been postponed to tomorrow at 3 pm pacific time.

Looking forward to our call tomorrow!

September 13, 2007 08:11 PM

AllPeers

AllPeers v0.70, Social BitTorrent

I already wrote about our Social BitTorrent functionality, so I’m not going to go on about it again. Suffice to say that the ability to share torrent files privately while you download them has the potential to revolutionize the way people use BitTorrent.

Version 0.70 is now live on our website, which we’ve completely redone to make it more attractive and easier to navigate. There’s a great article about the new version on internetnews.com. It’s gotten a tiny bit of Digg love in the past couple of hours, so if you’re a Digg member as well as a Peer Pressure reader, why not take a minute to digg it?

Bookmark to:

September 13, 2007 04:19 PM

Chris Ilias

No drummer better than Neil Peart

  Music : Alex Gaudino - Destination Calabria

C’mon; all of us Rush fans have done this at least once.

WPvideo 1.10 Family Guy RUSH Reference Download!

September 13, 2007 03:10 PM

Calendar

Lightning/Sunbird Status Update (September 13)

I'm sorry for not posting a status update in nearly two weeks, but everyone has been pretty busy lately, especially with fixing bugs for the first release candidate (RC1) of the 0.7 release. We hope to have the RC1 ready sometime next week.

As you can see below, we have added a few features and fixed a lot of bugs lately. Some items are especially noteworthy, as they introduce new features or fix longstanding bugs that have plagued our users for months or even years:

Bug 212792:
opening a .ics attachment launches calendar window but fails to import calendar event from attachment

Bug 244459:
Drag and drop ical (.ics) attachments from mail onto calendar

Bug 304741:
non-colliding events too narrow on days with colliding events aka War-On-Boxes

Bug 361977:
Implementation of event summary dialog

Bug 387559:
Event creation/change fails if server requires authentication for write but not for read

We're really happy to get those features and bugfixes into the hands of our users. Those items, in addition to other fixes that have already been incorporated into our codebase, will definitely make 0.7 our best release ever.

Here's the list of bugs that were also fixed since the last status update:

Bug 278139:
Attendee dialog: title wrong - Edit item

Bug 351084:
Can't set alarm for new task, existing or default alarm throws error

Bug 354194:
Disabling alarm of a snoozed task/events causes an error, menu items are disabled

Bug 356569:
No ability to view other people's calendars (i.e. calendars I have subscribed to)

Bug 360216:
Deleting multiple tasks in todo tab deletes email due to focus issue

Bug 368075:
Remove em:updateURL from Lightnings install.rdf and let addons.mozilla.org handle all updates

Bug 370435:
Review prototype event dialog

Bug 372830:
Integrate unifinder todo into lightning as it is in sunbird

Bug 378557:
Custom command line handlers can't prevent Sunbird from opening its window

Bug 379005:
Create Stub Extension that allows tags in Sunbird/Lightning Extensions.

Bug 385183:
Closing the event calls alert 'Do you want to save changes'

Bug 385916:
exceptions occuring when accessing a calendar prevent any other calendar from appearing

Bug 386636:
mail-mode should be visible after clicking the tray-icon of an incoming mail

Bug 387232:
Collapsed folder pane disappears after restart

Bug 387386:
'Customize toolbar dialog'-overlay not correctly initialized

Bug 388094:
Alarm time exported incorrectly to iCalendar format (.ics) when time is greater than 7 days (or the equivalent in hours or minutes)

Bug 388206:
Lightning 0.7pre breaks toolbar customization

Bug 388418:
[Proto] can not create 'Last day of the month' rule with new edit dialog

Bug 388954:
Shared toolbar buttons behave faulty when customizing toolbars

Bug 389535:
Consolidate implementations for minimonth control

Bug 389848:
Today Pane: Yesterdays all-day recurring events are in Today

Bug 390300:
Open new event dialog from the today pane -> wrong default event length

Bug 391082:
Use 'customize toolbar'-dialog from toolkit for event dialog

Bug 392584:
Calendar Mode Menu cleanup needed

Bug 393202:
Categories in event dialog are hardcoded

Bug 393362:
Can't remove last attendee

Bug 393387:
week view is blank

Bug 393608:
Event dialog and task dialog have no accesskeys

Bug 393698:
Sunbird installer includes everything under the optional directory

Bug 393838:
ORGANIZER Property is lost

Bug 393844:
Update en-US short abbreviations for weekdays

Bug 393969:
View layout screwed up in some cases

Bug 394025:
"Removing last or selected calendar from list causes exception "Could not convert JavaScript argument"."

Bug 394169:
Unable to save attendee window after adding email address

Bug 394174:
Attendee list is blank in event summary dialog

Bug 394183:
Task creation via double click in Task List is broken

Bug 394191:
Title of recurrence dialog is 'Edit Item'

Bug 395002:
Add pt-PT builds of calendar to the tinderbox

Bug 395437:
'Dismiss All' doesn't dismiss all alarms (skips every second)

Bug 395639:
Events with same UID's overlap

A huge 'Thanks' goes out to all our developers, contributors, localizers, testers, and supporters. Keep up the good work!

September 13, 2007 12:59 PM

Robert O'Callahan

Parallel Browsing

My mate Ras Bodik has just produced a blog covering his new "parallel browsing" project. It's a great read, especially the slides (which don't display correctly in Mac's Preview, but do in Acrobat Reader). There's some great observations and ideas in there, plus some neat preliminary results about parallel lexing. The bottom line is that future generations of devices will need a web browser that can efficiently utilize tens to hundreds of CPU cores.

This is extremely challenging for many reasons:

Existing browser engines are written in C++, which offers only a classic multithreaded parallel programming model: threads, shared memory, locks, semaphores, etc, plus hand-rolled lock-free primitives. These tools are very difficult to use and mostly don't scale very well. There is no direct support for optimistic concurrency.

Amdahl's Law means that cherry-picking a few optimization opportunities won't be enough to scale to a large number of cores. We will have to work parallelism through every stage of the browser's processing.

It's not at all clear how much of what the browser does can be parallelised. Ras' group's work on parallel lexing is a small first step. Can one write an HTML5 parser in parallel, and if so, how? How about JS/DOM manipulation? Layout? Rendering? The programming model we expose to Web developers is inherently single-threaded and I don't think we should change that.

Massive changes to browser code (including rewriting it in a different language) are very risky, and can damage compatibility credibility.

Our debugging and profiling tools are already crappy for mostly single-threaded code. Debugging and profiling parallel code will be much harder.

Browsers rely on a lot of platform library code. That code also needs to be refitted for scalable parallelism or it will become a bottleneck.

Bottom line: writing a good browser engine is already really hard. Requiring scalable parallelism adds a whole new dimension of engineering difficulty, and poses a bunch of research-level questions which we don't yet have answers for.

I plan to blog about my thoughts on these issues and how they might be solved. But my impression is that it will be very difficult for existing browsers to move into multicore territory, due to language choices, the difficulty of refitting existing code, compatibility with existing code consumers, a desire to not compromise single-core performance, and the enormous risk of a large investment in a long development cycle with no guarantee of success.

I believe there is a huge disruption opportunity here: an effort focused on building a new parallel browser, with no interest in single-core performance, which can rethink all engineering choices, could start by filling a niche and eventually dominate. It could also flame out spectacularly! It would be great territory for a startup, if VCs weren't obsessed with creating the next great social networking site. It's good territory for research --- Ras is on the money. I do hope that if such a disruptive effort wins, the code is open source. I'm not sure what can be done to help ensure that.

September 13, 2007 11:07 AM

Gen Kanai

Tencent WebQQ supports Firefox

Nice to see Tencent’s WebQQ service supporting Firefox.

Tencent (0700.HK) updated its web-based instant messaging service Web QQ with a new interface and improved speed and stability, according to a post on Sohu’s (Nasdaq: SOHU) online forum. The updated version also supports Mozilla’s FireFox browser.

Pacific Epoch - Tencent Adds Support For FireFox

September 13, 2007 06:48 AM

Mozilla IT

Mozilla Scheduled Downtime - 9/13/2007, 7pm - 10pm PDT (0200 - 0500 9/14/2007 UTC)

Mozilla Scheduled Downtime - 9/13/2007, 7pm - 10pm PDT (0200 - 0500 9/14/2007 UTC)

We will have a scheduled downtime window tomorrow night from 7pm to 10pm PDT. The following changes will take place:

* 7pm PDT (0200 UTC) - Kernel upgrades. We'll be doing kernel security updates on various machines affecting the following services for approximately 10 minutes each:

- Telephone service in the Toronto office
- Mozilla.com email (Zimbra)
- VPN and jumphosts at all locations
- people.mozilla.com
- Build Try Server
- Joey
- Any services that use LDAP authentication
- Internal DNS at the offices

Please let me know if you have any reason why we should not proceed with the planned maintenance. As always, we aim to keep downtime to as little as possible, but unexpected complications can arise causing longer downtime periods than expected. All systems should be
operational by the end of the maintenance window. Feel free to email infra at mozilla.com if you see issues past the planned downtime.

Thanks,
-Justin

September 13, 2007 05:11 AM

Rumbling Edge - Thunderbird

2007-09-12 Sunbird 0.7 builds

Common:

Fixed: 244459 - Drag and drop ical (.ics) attachments from mail onto calendar

Fixed: 354194 - Disabling alarm of a snoozed task/events causes an error, menu items are disabled

Fixed: 371365 - Duplicates appear for alarms left in Calendar Alarm window

Fixed: 388094 - Alarm time exported incorrectly to iCalendar format (.ics) when time is greater than 7 days

Fixed: 393130 - Tasks list needs context menu

Fixed: 393608 - [Proto] Event dialog and Task dialog have no accesskeys

Fixed: 393969 - After deleting an event, some events overlapps

Fixed: 394025 - Removing last or selected calendar from list causes exception "Could not convert JavaScript argument"

Fixed: 394174 - Attendees list is blank in new event summary dialog

Fixed: 394183 - Task creation via double click in Task List is broken

Fixed: 395437 - 'Dismiss All' doesn't dismiss all alarms (skips every second)

Common (Provider: CalDav - ICS/Webdav - Local Storage - WCAP):

Fixed: 387559 - Event creation/change fails if server requires authentication for write (PUT) but not for read (GET)

Fixed: 394169 - Unable to save attendee window after adding e-mail address

Lightning-only:

Fixed: 327751 - View buttons should be type=radio [Lightning]

Fixed: 353791 - Not possible to create new task when another task is selected

Fixed: 356824 - can't add new task

Fixed: 360216 - Deleting multiple tasks in Todo tab deletes email due to focus issue

Fixed: 368075 - Remove em:updateURL from Lightnings install.rdf and let addons.mozilla.org handle all updates

Fixed: 372830 - Integrate UnifinderToDo into Lightning as it is in Sunbird

Sunbird-only:

Fixed: 378557 - Custom command line handlers can't prevent Sunbird from opening its window

Fixed: 379005 - Create Stub Extension that allows <em:requires> tags in Sunbird/Lightning Extensions

Outstanding bugs marked critical or blocker:

Fixed: 359443 - Deleting item from Agenda deletes an email instead

For outstanding bugs with severity level major and below, please see this list of bugs with 0.7+ flags. (Currently 17 at time of writing)

Lightning vanilla .xpi:

Official Windows .xpi

Official Linux .xpi

Official Mac .xpt

Sunbird builds:

Official Windows, Official Windows installer, (discussion)

Official Linux (i686)

Official Mac (Universal binary)

September 13, 2007 03:55 AM

2007-09-12 Thunderbird 1.5.0.14 builds

No checkins during this period.

No outstanding bugs.

Official Windows, Official Windows installer (discussion) (2007-09-10 build)

Official Linux (i686)

Official Mac (Universal binary)

September 13, 2007 03:33 AM

2007-09-12 Thunderbird 2.0.0.7 builds

Topcrash:

Fixed: 316543 - crash when opening message compose window

Build configuration:

Fixed: 385095 - Account Wizard won't offer to create new RSS accounts

Fixed: 387367 - mozilla-js.pc.in missing -DJS_THREADSAFE

Installer:

Fixed: 389244 - Uninstall information of old version not cleared from registry when updating via auto update

Fixed: 390214 - avoid the second UAC prompt for helper.exe on software update by launching it directly from the elevated updater.exe process

Fixed: 393149 - Some registry keys aren't removed under HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\

UI improvements:

Fixed: 219662 - "OK" button doesn't activate in "Link Properties" dialog

Fixed: 351692 - Need to see Account Names in the Move To / Copy To Recent Folder menus

Fixed: 386855 - attachment file name stripped of consecutive spaces

Miscellaneous fix:

Fixed: 256510 - Return receipts don't use Multiple identities

Outstanding bugs: (6)

Since 20 Jun 06: 342154 - No more confirmation dialog of attachment correctly saved if attachment file type listed as "save to disk" and "save without asking" option is checked

Since 20 Nov 06: 361279 - standalone mesage window: Unable to Retrieve Message when 'Retrieve Headers Only' applied

Since 21 Nov 06: 361417 - Crtl-Shift-A is no longer selecting the entire thread

Since 07 Jan 07: 366255 - Exception thrown in nsIEditor.inlineSpellChecker when opening/closing the compose window

Since 29 Jan 07: 368617 - Account setting "OK" button not saving data.

Since 24 Apr 07: 378635 - Tracking Bug: Bugs to Fix in TB2.0.0.x before offering a major update

Official Windows, Official Windows installer (discussion)

Official Linux (i686)

Official Mac (Universal binary)

September 13, 2007 03:26 AM

Robert Accettura

Email Image Protection

Many people think that making an image out of an email is a good way to protect it from being harvested by spam bots. It’s now possible to convert it from an image to email link via a Firefox extension. Guess what, an email harvester can do this just as well. What’s a better solution against email harvesters? Don’t put any trace of an email address online, use a form. Yes you could distort the image a bit to make it more difficult, but using a CAPTCHA as an email isn’t going to make you any friends. JavaScript can also be done, but no reason why it can’t be interpreted (though that may be more difficult in some cases, since a JS engine isn’t the easiest thing to work with, and implementing anything less can easily be defeated by throwing some extra JS in there. Some discussion on the Firefox Extension implementation can also be found on Gerv’s blog where he proposed the idea.

September 13, 2007 01:32 AM

Songbird

Zombies vs Ninjas Redux + Bonus Wallpaper

We've been in the new nest for a month and it looks like we've found a groove. Now that we're in the groove, we've been making up for lost time and reassessing our priorities as we draw close to the next release. We've also started planning for beyond our next release and making sure we're giving our audiences what they want, and more importantly, delivering a more consumer-grade experience. I've been excited to see a few of the un-dead bug reports in bugzilla finally coming to fruition and I'm sure you'll be pleased with the work.

Meanwhile, enjoy some Zombies vs Ninjas wallpaper:
.

September 13, 2007 01:07 AM

Mozilla Security

Quicktime to Firefox issue

Issue

Petko D. Petkov identified an issue in Quicktime that allows an attacker to execute arbitrary code.

Impact

If Firefox is the default browser when a user plays a malicious media file handled by Quicktime, an attacker can use a vulnerability in Quicktime to compromise Firefox or the local machine. This can happen while browsing or by opening a malicious media file directly in Quicktime. So far this is only reproducible on Windows.

Petkov provided proof of concept code that may be easily converted into an exploit, so users should consider this a very serious issue.

Status

Mozilla is working with Apple to keep our users safe and we are also investigating ways to mitigate this more broadly in Firefox.

You can follow our work in bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=395942

Credit

Petko D. Petkov discovered this issue and posted details here.

September 13, 2007 01:07 AM

September 12, 2007

Taras Glek

Garburator: Another day, Another rewrite tool

I’m going to be on vacation until September 25th. I started the day by planning out how to do the rewriting tool to implement Benjamin’s spec. I’ll have to add more position information to elsa to do things properly and that might take a week or two. However, I’m into instant gratification so I wrote up a hacky prototype that results in a patch like this.

Say hi to garburator, a tool that will assist with the reference counting -> MMgc transition. The tool is less than 100 lines long, so someone could finish the hacky version while I am away. Either that or one could teach elsa to keep detailed position information in declarations and identifier names and clean up the postvisitS_decl() method in garburator.

September 12, 2007 08:54 PM

Calendar

Publishing Events Bug Fixed!

In today's nightly build for Sunbird and Lightning, the fix for the "Publishing Events Bug" has landed. This bug has plagued people in 0.5, and we wanted to address it in 0.7. However, fixing it was complicated by how many different ways the bug can manifest itself.

We'd like to ask everyone that's seen this issue to retest their configurations with the latest nightly. This way we can determine if the patch fixed all the issues.

Technical Details

More information is of course available in bugzilla. These are the main bugs we are following that track different manifestations of the problem.

Bug 387559: Main Tracking bug, event creation fails if server requires authentication for PUT but not GET

Bug 391383: HTTP authentication doesn't work for world-readable, write-restricted ICS shares

Bug 380291: Event movement failure on local or remote events

Bug 390084: ssl problem: checking task on remote calendar return fatal error 0x80040111

Bug 379498: WebDAV publish not publishing every time.

Bug 380746: webdav write failure if HTTP AUTH needed for PUT but not GET

Thanks for your help in checking out this issue. If you find a problem, please add a comment to bug 387559. If you find other crazy behavior, please file a new bug. If you have any questions please ask them in #calendar or #calendar-qa on IRC and we'll try to help.

Thanks again for your help and happy Testing!

September 12, 2007 07:21 PM

Over one million downloads!

On today's developer confcall Philipp (developer of the Google Calendar Provider extension) mentioned that his extension has been downloaded over 120.000 times.

That prompted me to look at the current download stats for Lightning and Sunbird and the results blew me away:

As of today we have 1.030.000 downloads of Lightning through our website and through addons.mozilla.org. That over 780.000 downloads in the last six months. Not much compared to Thunderbird or Firefox, but very much for such a small project as ours.

As of today we have nearly 1.400.000 downloads of Sunbird through our website. That's really awesome! Sunbird has been around longer than Lightning, so the lead is to be expected.

Let me use the opportunity to say "Thank you" to all our users and supporters. We couldn't have done this without you. We hope to bring you a great 0.7 release soon (hopefully with even more downloads).

September 12, 2007 06:41 PM

Mark Finkle

Software Freedom Day - Univ of North Carolina

Justin Scott and I are headed to UNC @ Chapel Hill for the Software Freedom Day festivities this Friday (9/14). We’ll be speaking about ways to get involved with the Mozilla project. The Carolina Open Source Initiative (COSI) is sponsoring the event. There will be software demonstrations, gear and swag, free food and door prizes too.

September 12, 2007 05:00 PM

SVG Bubble Menus

I was clickety-clicking my way around the Internet and came across the Connected Ventures website. The first thing that I noticed was the “bubble menu” system used on the site. Then I noticed it was written in Flash. Surely, I thought, SVG could be used to create bubble menus too.

I got a prototype working without much trouble. Then, I refined it a bit. Here are the files:
svg-bubblemenu-in-html.xml (demo)
bubblemenu.js

It’s a little slower than the Flash version, but that could be my inexperience with SVG. Feedback welcome.

Update: Jeff Schiller made some tweaks to the bubblemenu.js file (which I updated).

increased delta to be between -6 and +6

initialized groups once (don’t call getElementsByTagNameNS() with every tick

removed unnecessary setAttribute() on the groups’ x and y attributes (ed: yeah, didn’t remove some test code)

changed the setInterval() to 100ms (ed: I bumped up to 150ms to try to reduce CPU usage)

made sure the vertical speed was not zero

when a bubble goes off the screen, put it above the top (not
randomly as you had it)

Thanks Jeff

September 12, 2007 04:42 PM

AllPeers

Which Newsgroup For Mozilla Platform Questions?

There’s been some discussion on mozilla.dev.platform about whether that newsgroup should be used for newbie questions and other platform user support issues. Some platform developers are understandably concerned that this type of traffic will obscure internal communication.

We set up Mozpad exactly for application developers using the Mozilla platform, and we have a newsgroup (mozilla.community.mozpad) which could be used for this purpose. Personally I’d be thrilled to see this happen since it would be a significant contribution to the community. The main issue is that there aren’t nearly as many people subscribed to m.c.mozpad (I’m guessing) so the chance of getting an intelligent answer is not as high.

Gavin Sharp suggested to me that mozilla.development.extensions would be the right place for questions about using the platform. Gavin’s proposal is certainly sensible, particularly since it apparently corresponds to the status quo. But I still think that the “extensions” name is potentially confusing to newcomers, that the target audiences don’t overlap completely and that there would be value in a group specifically devoted to users of XULRunner and WebRunner.

Whatever the case might be, don’t hesitate to point people to m.c.mozpad if they have platform questions, even if this isn’t considered to be the “official” destination.

Bookmark to:

September 12, 2007 04:29 PM

Justin Scott

Facebook’s First Sponsored Gift

As I was about to go to bed, I refreshed my Facebook newsfeed/homepage and happened to catch that today’s gift is free. What?! They finally caved in and made gifts free? No. They’ve allowed their first commercial “gift” to penetrate the cheerful bunch of furry creatures, birthday wishes, and pop culture references, and even make it very clear why the gift is free: “The Skittles Gum gift is FREE to promote Skittles New Gum.”

While I’m sure it was quite expensive for this deal to take place, I guess we can expect similar items in the future. It will go nicely with the 2 sponsored polls in the last week I’ve had take up significant real estate in my newsfeed asking whether I would like to purchase a book on how to seduce women. (I’m guessing they are using polls to advertise because they can specify target audiences, unlike with flyers. Plus, people actually have to notice the polls.)

While advertisements creeping into Facebook’s core features is nothing new, as best I can tell at this late hour, this will be the first time they’ve allowed it to appear in users’ profile pages. (Obviously not including applications.) I hope next month they’ll introduce sponsored applications that are automatically added when you join Facebook, or better yet, interstitial ads.

September 12, 2007 07:38 AM

Chris Ilias

Importing data

  Music : De Souza Ft Shena - Guilty Radio Edit

Instead of having one article in the Firefox Support knowledge base for importing user data (bookmarks, passwords, cookies, form data, history, etc.), I’ve decided to split it by product. We now have an urgent need to get these articles created, before September 31.

I’ve already created placeholders:

Importing from Internet Explorer

Importing from Safari

Importing from Opera

Importing from Netscape

Importing from SeaMonkey

Importing from Mozilla Application Suite

Feel free to contribute content to those articles. If you have any questions on how to format the articles, all pages in the Mozilla Knowledgebase category are ready to go, and can be used for formatting references. We also have a Manual of style, and Best Practices Guide.

September 12, 2007 01:15 AM

JT Batson

Please give us feedback on the forum home page mock-up

We have been having lots of back and forth about the design of the SUMO forum home page. After much discussion and feedback, we have developed this mock-up:


For a general reference for comparison, please check out the SUMO homepage: http://support-stage.mozilla.org

Goals of this page:
1. To ensure that the user has searched through the knowledge base.
2. To get the user to search through the forum to find an answer to their problem.
3. If they can't get their answer in 1 or 2, we want to make it easy for them to ask their question (we are currently missing a good explanation of how the forum works-- maybe that is a call-out box that we link to-- any ides?)
4. Make it easy for people to log-in and/or track their current questions

I would appreciate your thoughts and feedback here.

To get involved with the SUMO project, check out our contributor page.

September 12, 2007 01:09 AM

Join us for our weekly SUMO project meetings

This will be a weekly, public call to discuss the progress of the SUMO project. Please join us!

Thursday from 2:00 pm - 2:45 pm pacific time

Phone call details:

California: 650-903-0800 then extension 91

Toronto: 416-848-3114 then extension 91

Toll-free: 800-707-2533 then password 369

Then, enter your bridge number : 280

IRC: #SUMO

September 12, 2007 12:15 AM

September 11, 2007

Zak Greant

Standing on the Toes of Giants at Mozilla24

In 2002, a short while after I started at MySQL, I saw Lawrence Lessig present at OSCON. The presentation was extraordinarily good and Lessig is a tremendously passionate, genuine and compelling orator.

I immediately revised my presentation style. I stole what ideas and style I could. While I was mostly presenting about MySQL and PHP at the time, the ideas served me well (though the style has at times fit me about as well as a young child fits their parent’s clothes.)

Five years have passed since then, and I have given a hundred or more presentations. Never have I presented as well as Lessig that night, but I still keep trying. In a few days, I am going to have to try a lot harder.
(more…)

September 11, 2007 10:10 PM

David Humphrey

Getting ready for Mozilla 24

This Saturday something special is happening on the web, and I’m thrilled to be part of it. I say Saturday, and I mean all of it: all 24 hours, and “Saturday” across every country on the globe. I remember Gen talking about this idea for a global conference a long time ago, and now Mozilla 24 is almost here.

Earlier today, Mike Shaver wrote:

Whether you’ve been a part of the Mozilla phenomenon for almost a decade or you only heard of Firefox yesterday, there’s something here for you — and you have something to contribute!

As usual, he’s nailed it, and I’ll be among those speaking at Stanford who will extend this invitation personally, and inspire you to become part of something so big, it takes the entire planet to host it.

September 11, 2007 05:10 PM

Chris Cooper

Komodo and the Open Web

As shaver pointed out in his recent spate of blogging, the good folks at ActiveState announced the Open Komodo Project last week. As a long-time user of the Komodo IDE myself, this is exciting news. For me, working at Mozilla is as much a philosophical choice as anything else, so it’s always encouraging to find another company that gets “it,” where “it” is the Open Web.

Congrats to ActiveState on their announcement. Their community site offers more info about how to get involved if you’re so inclined.

September 11, 2007 04:01 PM

Johnathan Nightingale

Mozilla24

I don’t normally blog about my work travel here, because what are you gonna do, come with me?  This one’s different though.

I’m flying out to SFO tomorrow morning (oh AC757, we’ve really gotten to know each other, haven’t we?) in anticipation of Mozilla24, a 24-hour all-mozilla, all-the-time conference at which I will be speaking amongst a group of shockingly-more-awesome people.  I will be talking about security UI, natch, and I would love to see all your smiling faces (though I’ll forgive the folks who saw the OSCON version for having their laptops open).

One of the many cool things about Mozilla24 is that it’s global - California, Tokyo, Thailand, and Paris, sure, but also online - so that if you are interested in the open web, and the directions we can take it, or if you’re just getting your feet wet, you can get involved.

Go sign up!  Why not get into the thick of it?  I’ll wait here.

PS - The blog photo here, Foxkeh, and indeed the whole Mozilla24 shebang, comes from Mozilla Japan.  They’re trying to make the rest of us look bad, bringing their A game.  Their A++++ OMG WOULD DO BUSINESS AGAIN WOW game.

September 11, 2007 03:44 PM

Doug Warner

Mozdev admin meeting minutes for 2007-09-11

Present: David Boswell (davidwboswell), Doug Warner (silfreed),
Michael Dosser (tanker), Eric Jung (ericjung), Chris Neale (cdn-work)

Discussion was held publically in #mozdev

Discussed developer priorities (drupal testing, linking to drupal, rollout...)

Drupal testing went well with the initial bug reporters. Next is to open
up testing to the general project owners list.

Trying to figure out how to build the project nav; I need some way of
determining whether Drupal is enabled for a project to show the blog/wiki/forum
links.

Worked on several project list bugs.

Discussed sysadmin priorities (stats, mirror improvements, mailman defaults...)

Top-50 page stats gathering is almost ready - Mic has had some problems
making the script both fast and accurate.

pagemark project is cleaned; still need to clean up web files.

Should we disable the Amazon server to save costs? Stats are currently
served from there, so that would be difficult.

Requests from users

remove attachment from bugzilla: looks to already be removed; no one is
sure who did it.

clean out project's repository: cvs is cleaned; web still needs done.

wrong MIME types on mirrors: Doug will follow up with mirror admins.

Tracking user requests: Doug will look into Bugzilla email integration
with the possibliltiy of adding a "support request" component to the mozdev
product.


September 11, 2007 03:21 PM

Zak Greant

MoFo Weekly Report 2007-09-07

A simple week to report on. For the week ending Friday, September 7th, I:

Neglected my reports on various conferences

Prepared for presenting The Age of Literate Machines at San Francisco State University’s Software Freedom Day and at Mozilla24. For Mozilla24, I follow Larry Lessig in the speaker’s roster. I’m not nervous. Really.

Reviewed some of Doc’s followup work on the Internet as a Public Good Symposium.

Started reaching out to other people who should be interested in the discussions and focus of the IPG. We need to figure out how to move ahead in the areas discussed in the summit.

(more…)

September 11, 2007 02:58 PM

Josh Aas

Gecko 1.9M8 Mac OS X Goodness

Gecko 1.9M8 is coming soon, here is a summary of the most significant Mac OS X improvements in this release:

Focus issues have been sorted out, the annoying can’t-type-in-textfields bug is gone.

Native form control improvements. Forms look and function better than ever. Fixes to CSS-stylabity as well.

Performance improvements in various areas (including launch time, the menu bar, and graphics/drawing).

Lots of text rendering fixes.

Windows, tooltips, and context menus should behave better on multiple-monitor systems.

For Gecko1.9M9 on Mac OS X we will be focusing on the following areas in particular:

Key handling (menu shortcuts, event propagation, event targeting)

Browser responsiveness, perceived performance. Bug 395397 in particular will hopefully lead to a much smoother experience for our users. We won’t pause pageloads whenever users click or open menus, we won’t stop plugins from playing/updating (think YouTube) when users are clicking elsewhere or interacting with menus.

More work on rendering native form controls, particularly under transformations such as transparency, rotation, and scaling.

Dependent/modal window behavior.

September 11, 2007 02:44 PM

Mike Shaver

oh snapdragon

I’m late to this particular announcement, as I didn’t really have useful internet during the critical period last week, but that hasn’t dampened my enthusiasm one bit.

The Open Komodo/Snapdragon announcement is very exciting for me, and I suspect for many others in the Mozilla community. Having a basic, extensible IDE built on the same technology as Firefox (and therefore the web) will provide a great focal point for many of the IDE efforts that have been mooted around Mozilla technology over the years. People will be able to focus their energies on the specific tasks they wish to enable or improve, taking advantage of the incredible base that ActiveState has built.

I was lucky enough to be involved in the discussions and planning leading up to this announcement, and I think the most exciting thing about it wasn’t the prospect of the source release, though I am indeed eager to get that technology into the hands of the Mozilla developer community. The most exciting thing for me was seeing the depth of ActiveState’s commitment to the open web, and how enthused they are about helping to create a new open source community. This is a huge, huge investment in the open web by a small, small company, and I can’t wait to see where it’s going to take us — where we’re all going to take each other, in fact.

So thank you to Bart and Shane and David and Erin and all the others at ActiveState who had the vision and courage to make Open Komodo a reality, and to everyone who has already expressed their interest and support for the project. It’s going to be a blast.

September 11, 2007 01:45 PM

blew bayou

Way back in the spring, I was invited by Dr. Andrew Schwarz to speak to some Information Systems & Decision Sciences students at Louisiana State University, after we were introduced by my AMO partner in crime (and his then-student) Justin “iFligtar” Scott.

It’s school season again, so after my Seedcamp trip, and 3.5 precious hours of sleep in a hotel by the Toronto airport, I flew down to Baton Rouge to do a pair of presentations, sample some Cajun cuisine, and generally feel old on campus. In point of fact, I flew to New Orleans and then drove to Baton Rouge, which meant that my arrival for the first presentation was a near thing, as I spent a few hours on the side of I-10 waiting for someone to come and repair a slight problem with my rental car:

At least it was really humid and the car’s roof was black and I was out in the direct sun; otherwise it could have been really uncomfortable.

I spoke about building software at the scale of the web, and I described some of the defining characteristics of Mozilla’s product development: we build software, we build it at scale, and we build it for the web. I could put my slides up somewhere, but if you’ve seen me give a talk in the last few years you’ll know that my slides are really really bad at standing on their own.

I first spoke with to a small group of enthusiasts, who are part of an industry association for IT professionals. AITP, I think, but it’s sort of a blur. They were politely attentive during my talk, laughed indulgently at my Hasselhoff and Colbert jokes, and asked a range of good questions, on topics varying from how the company organizes itself geographically to, of course, the “10 f’n days” incident. Someone asked how they could get involved with testing of nightly builds, and Justin responded with a bolus load of flyers about the nascent Mozilla university programme. Well played, sir.

After a short, short break, I then went next door to give basically the same talk to around 150 undergraduates. The vast majority of people were Firefox users, though one guy who asked a handful of questions was careful to announce that he was an Opera user (not that there’s anything wrong with that; I didn’t have him removed by campus security or anything). The questions were again quite good, including one that I want to call out specifically, for what little it’s worth. Near the end of the question session, one young woman asked what she said “might be a dumb question”: how does Mozilla fund itself? Mitchell and others have covered that in some detail, so I won’t recap my answer here, but I was quick to point out that it’s not a dumb question at all, and that it’s the sort of thing that we get asked by high-powered execs at Harvard Business School too.

I wonder how many of the other industry speakers get asked such probing and thoughtful questions. Part of me hopes that they all do, because I think it makes the session much more valuable, but part of me also hopes that Mozilla gets more than the usual share because what we do resonates so much with so many people.

One low note: I was asked a few times for kooky Mozilla anecdotes, and I pretty much came up dry. I clearly need to work on my zaniness a bit.

(Oh, sure, now I see that fligtar has a post about this already. Damned kids.)

September 11, 2007 01:43 PM

David Humphrey

‘eph-sauce’

“Awesome, but how are you going to top this one!?” is what we heard at the end of Seneca’s FSOSS 2006. I’m pleased to announce that after a year of insane work, we’ve managed to do just that, and then some. Registration is now open, and waiting for you to claim your spot.

This October’s Free Software and Open Source Symposium, or FSOSS, is so big and so exciting that it’s exploded into a second day. Our speakers represent every corner of open source, from technical to social to the arts to…just look for yourself.

Once again, Mozilla is a huge supportor, proving the power of this community to support one another. As a platinum sponsor of the event and by providing some amazing speakers, Mozilla has helped us put together two days of don’t-miss-this. Some of the speakers of particluar interest to webzillians everywhere:

Mike Beltzner

Benjamin Smedberg

Chris Blizzard

Phil Schwan, of the Phil-Schwan-Phenomenon (I need to update your bio, Phil)

Dean Jansen, of Participatory Culture Foundation and Miro fame

Mark Slee, Aditya Agarwal, and Marc Kwiatkowski from Facebook

David Bolter, Accessibility Architect at U of T

Jay Goldman of Radiant Core

James Walker (Drupal, OpenID)

If you’ve been meaning to come and check out Seneca and see what all of the fuss is about, Oct 25-26 is your best chance. FSOSS is where open source comes together.

September 11, 2007 12:37 PM

Mike Shaver

a seedcamp fly-by

A quirk of scheduling led to a mixed blessing of travel last week. On the bright side, I got to be Mozilla’s representative at Seedcamp, where I acted as a mentor and spoke on a panel about using APIs to build products and businesses. On the less bright side, I was only to be there for a single day (13 hours on the ground in London, as it were) — during a Tube strike — as I was scheduled to be in Baton Rouge the next afternoon for a pair of speaking engagements.

I had an excellent time, and found the mentoring format and conversations to be especially engaging. The businesses aren’t all ones that I’d be interested in working on, but some were very much up my alley, and the entrepreneurs’ energy was quite infectious. They seemed to be making the most of a fantastic opportunity, and it was both a pleasure and honour to participate. Maybe they’ll invite me back for the whole event next year!

September 11, 2007 11:18 AM

Axel Hecht

Discussing Mozilla-Europe

Remember Mozilla Europe? Tristan does, and poked the board. Mozilla Europe has gone a tad silent with other the other organizations rising in our ecosystem, so it’s about time to think about what Mozilla Europe is and what it could be.

The board of Mozilla-Europe is going to meet on September 17th, 18th to find out what to do. All board-members have some ideas on what we want to see and do, and even a bit of time to actually do something.

On the other hand, what do we know?

So I’m reaching out to you, Europeans and not, to share your ideas. Visions are good, plans are better, as always with Mozilla. The only restriction we’d have is that it should be about Mozilla and Europe.

You can leave your suggestions on the wiki, as trackbacks, or comments here. Or, pester your favorite member of the board directly. Not necessarily me.

Posted on behalf of the board of Mozilla Europe.

September 11, 2007 09:16 AM

Frederic Wenzel

Animator vs. Animation

Check out this cool animation:

The author writes:

An animator faces his own animation in deadly combat. The battlefield? The Flash interface itself.
A stick figure is created by an animator with the intent to torture. The stick figure drawn by the animator will be using everything he can find - the brush tool, the eraser tool - to get back at his tormentor. It’s resourcefulness versus power. Who will win? You can find out yourself.

This is just awesome. But sometimes I am glad I’m not in the animation business.

Oh, and if you can’t get enough, there’s a sequel, too! (And it features Firefox :))

(Thanks for the link, Jenny!)

September 11, 2007 08:20 AM

Mozilla IT

Mozilla Scheduled Downtime - 9/11/2007, 7pm - 10pm PDT (0200 - 0500 9/12/2007 UTC)

Mozilla Scheduled Downtime - 9/11/2007, 7pm - 10pm PDT (0200 - 0500 9/12/2007 UTC)

We will have a scheduled downtime window tomorrow night from 7pm to 10pm PDT. The following changes will take place:

* 7pm PDT (0200 UTC) - Kernel upgrades. We'll be doing kernel security updates on various machines affecting the following services for approximately 10 minutes each:
- Email for all domains we host
- Breakpad
- CVS, cvs-mirror, SVN, Hg
- quality.mozilla.org
- Bugzilla
- Bonsai
- LXR/MXR
- Tinderbox
- ftp.mozilla.org
- stage.mozilla.org
- irc.mozilla.org
- mail.mozilla.org
- lists.mozilla.org
- videos.mozilla.org
- all other dynamic and database-backed websites (addons, blog, crash-reports, developer, download(bouncer), firefoxflicks, labs, livetitles, mozilla-europe, pastebin, quality, reporter, survey, wiki, firefoxparty, worldfirefoxday, addons-facebook)

* 7pm PDT (0200 UTC) - VLAN ACL implementation. We'll be adding another layer of internal network security. No downtime is expected.

Please let me know if you have any reason why we should not proceed with the planned maintenance. As always, we aim to keep downtime to as little as possible, but unexpected complications can arise causing longer downtime periods than expected. All systems should be
operational by the end of the maintenance window. Feel free to email infra at mozilla.com if you see issues past the planned downtime.

Thanks,
-Justin

September 11, 2007 04:50 AM

Seth Bindernagel

Mozilla 24 Takes On Accessibility

Have you checked it out? In a prior post, I blogged about Mozilla 24 and all the things you can do to participate. For my part of the conference, I’ve helped plan an hour-and-a-half session about accessibility efforts at Mozilla. Here is the short description:

    A discussion on new accessibility features in Firefox 3

    Demos from interesting projects like Access Firefox

    How a blind developer performs QA and testing for Mozilla

    A blind contributor shows off Firefox 3’s best features with a screen reader and his own nightly build of Firefox.

In the spirit of 24, the team of presenters is truly international. I will be in Tokyo, helping to organize the conference and emcee-ing the session. One group will present from Mumbai, India. Then, we’ll have 2 contributors from Boston. Our final participant will be dialing in from San Diego at 4:30 AM!!!

I’d love to hear if you’re up-all-night with Mozilla during 24. I will be!

Please check out our accessibility session, it will be very cool.

September 11, 2007 04:43 AM

Robert O'Callahan

Trust No One

When is an ASCII space (0x20) not a word separator?

When it's followed by a combining mark (e.g., COMBINING ACUTE ACCENT a.k.a. Unicode character 0x301).

According to ATSUI, anyway. Uniscribe disagrees and refuses to combine marks with space characters. It will allow combination if you stick a ZWJ (0x200D) in between. Gah!

We've also discovered that ATSUI's font fallback machinery often likes to choose different fonts for the mark and the character it combines with. Madness!

This is life working on Web browsers: the environment is so complex, any assumptions you make will be violated sooner or later.

September 11, 2007 03:57 AM

Robert Accettura

IBM Joins OpenOffice

I guess everyone wants in on the office space. IBM is joining OpenOffice. Not a bad move considering IBM’s general investment in non-Windows based OS’s. IBM seems to have favorite projects when they participate in open source communities. I wonder what specifically IBM is planning to work on. For example IBM’s big interest with Mozilla was XForms. It’s going to be interesting to see what they do. There are many things that they could be interested in.

September 11, 2007 02:52 AM

Mike Shaver

twenty four f’n hours

(Everyone else makes that joke, so I figure I might as well help ride it into the ground.)

This Saturday, I have the considerable honour of being the least interesting speaker at the California installment of Mozilla 24, a worldwide 24-hour online conference connecting people from all over the Mozilla world. If you’re in the area, you should run-don’t-walk to find out more, sign up, and prepare yourself emotionally for an onslaught of Mozilla. If you’re in Tokyo, Thailand, or Paris, you can participate in person in one of those locations as well. Or you can join in online through any of a number of interesting activities. Whether you’ve been a part of the Mozilla phenomenon for almost a decade or you only heard of Firefox yesterday, there’s something here for you — and you have something to contribute!

Mozilla 24 is the brainchild of the incredible team at Mozilla Japan, and I’m thrilled to be part of it. As it happens, this will likely be the last plane trip I take this calendar year, and it’s going to be a great note on which to finish.

September 11, 2007 02:30 AM

Taras Glek

Automatic DeCOMtamination: Roadmap For Automated Refactorings

This is an update on the ongoing deCOMtamination work from the automated rewriting perspective. I think it’s pretty exciting that Mozilla is the first large-scale C++ project to attempt automated large scale source code cleanups and optimizations. I think the tools are finally getting mature enough for the job.

The downside is that there isn’t a published roadmap of what we are planning to achieve with deCOMtamination as we are still in the planning stages. The upside is that there is still time for any interested parties to think up the next great improvement on how things are done, checkout the refactoring toolchain and either extend an existing tool or implement a new one.

Below is a list of things that I plan to have working in the near future. The idea is to try to implement various optimizations that would be impractical(or impossible?) to do manually and see if they yield the expected performance and code quality benefits.

Step 1: Outparam Elimination

QueryInterface() and other ok/fail methods have a redundant nsresult value which can be eliminated without changing any logic in the code. The QueryInterface() rewrite is my first serious tree-wide refactoring attempt. QueryInterface() is probably the most well known and frequently-used method within Mozilla. It also one of the most CPP-encumbered methods in the tree, so it made for a good test of my CPP-aware elsa work.

The getting code to compile phase is over. Currently Benjamin is working on getting the modified code to run which requires XPConnect changes, debugging the manually-rewritten macros and verifying that the generated patch is correct.

The next step will be to eliminate local nsresult variables in the callees when they are used to store & check return values of QueryInteface(). This is basically a make-resulting-source-look-prettier optimization.

I hope to measure a speed-up and slight footprint decrease with the new QueryInterface call.

Step 2: Try Mozilla Without Reference Counting?

In my mind the most exciting part of Moz2 is Tamarin. Few things are cooler than an elegant JIT VM.

Tamarin comes with a modern garbage collector.

The goal of this rewrite is to aid Jason and Benjamin with switching XPCOM from reference counting to garbage collection. This might end up in gigantic patches to rid the stack of nsCOMPtr objects. This might be hard as it will be affecting a lot of code and might reveal more shortcomings in my version of elsa and MCPP. Details are in the wiki.

Step 3: Try C++ Exceptions

This is the most ambitious rewrite I know of for Mozilla 2. It’s similar to step 1 in that the goal is to eliminate outparameters and nsresult error codes, except in this case it would happen for all functions. Brendan mentioned this is in his blog.

The idea is that exceptions in Mozilla happen in exceptional circumstances, thus most of the time the return value will be NS_OK and the outparameter will have something valid in it. So we should rewrite all methods that return nsresult to return the outparameter value through the return value and have the errors thrown as exceptions.

In the simplest case this would involve rewriting return statements into throw statements and rewrite callers to use try/catch. Instead of

rv = bla(&outparam)…if(rv == foo) .. else if(rv == boo) return rv

the code would be

try{ outparam=bla() } catch(foo) {…} catch(boo) {throw boo}

Note this is still inefficient since the code would be manually unrolling the stack instead of letting the exceptions do that. So the next iteration of the rewrite would get rid of the

catch(boo) {throw boo}

code to streamline the execution path. Ideally this would provide a significant reduction of footprint (due to getting rid of the error propagation code) and provide a speed boost.

However, there are a lot of issues that need to be solved. How to ensure that the C++ code is exception-safe (everything has destructors to do appropriate cleanup)? How to deal with the case of the stack being a mix of platform C, C++, JavaScript, Python, etc? Most runtimes are not aware of C++ exceptions.

Infrastructure Work

Unfortunately, not all of the automated refactoring work is about exciting rewrites. Elsa is still tied to the stone-age gcc 3.4 as it can’t yet process C++ headers from the newer gcc releases due to template complexity.

There is also work that needs to be done to get OSX supported as well as Linux by elsa & mcpp. I think very little work remains there.

Another big issue is getting elsa/mcpp to work on Windows. This may involve teaching elsa about the Microsoft windows flavour of C++ or getting Mozilla to reliably build with mingw and merely teaching elsa about mingw’s flavour of windows C++.

There is also an issue of maturity. Mozilla is probably the biggest codebase to make use of elsa and mcpp, so there are teething issues to solve. Having said that, the current version of MCPP in svn should be able to compile Mozilla. Elsa can process all of Mozilla with a small patch to two files attached in the QueryInterface() bug.

Overall I’m doing less and less infrastructure work as time goes by, hopefully the tools will mostly just work from now on.

September 11, 2007 02:26 AM

Trent Mick

patch for “custom action” for mozilla updater

Here is a patch (against a slightly out of date updater.cpp on the Mozilla 1.8 branch) that would add support for a:

customaction "relative-path-to-executable"

action in the “update.manifest” for a partial or full update (.mar file) for the Mozilla update system.

I’m just chucking this up here quickly for lack of a better place to put it right now. Komodo uses the Mozilla update system and will possibly need this patch at some point.

Limitations:

It ignores the return value of the spawned executable.

It doesn’t support arguments to the executable.

September 11, 2007 12:07 AM

September 10, 2007

Mozilla Developer DevNews

Firefox trunk to stay frozen for M8 a little bit longer

The Firefox trunk is still frozen until the final Gran Paradiso M8 blockers get resolved. During the extended freeze, Gecko 1.9/Firefox 3 endgame drivers are meeting daily to triage approval requests, accepting only patches which are high-value and low-risk. We expect these final bugs to be resolved shortly, and the tree ...

September 10, 2007 10:01 PM

Ray Kiddy

Discovering the Coolness of nsIWebProgressListener

I am writing an extension and I have been jumping through some painful hoops with the "load" and "unload" events and "onDocumentLoad" and I have been trying to figure out how this is supposed to behave....

Then I discovered nsIWebProgressListener. What a beautiful interface!

I had thought that, in all my questions and grumblings and gripes, that someone would have pointed me to this. Someone probably did and I probably did not hear. But then, I notice that I will be drowning in a pool and I will say "Help!" and someone will say "you probably need an instance of a nsINylonLinearExtractionDevice...". No, actually, I need to not drown! Or I need a rope. And if I decode the answer, I can see that, yes, I was told I should grab a rope. How could I have missed it? :-)

It also makes it challenging that when you do a search (in site:mozilla.org), you are as likely to find a document from 1999 as any other. Yes, people have written new documents on the new ways of doing things. How often do the old documents get removed from wiki.m.o, or www.m.o? From the evidence, I would guess it does not happen very often.

There needs to be many more snippets on MDC that make use of this interface. I look forward to posting some. I am recalling many newbie questions on the newsgroups where the appropriate response would have been that one needs to look at all the wonderful things this interface gives you.

Of course, I always have a suggestion for future improvement. It's just something I have to do.

I wanted to keep track of some resources, one for each open window or tab. The interface, through the onStateChange and onLocationChange, gives me almost everything I need. Except that when I close a window, or close a tab, I get no message? I could just keep my stuff around in case a notification ever comes in on that window. But if that window was closed, wouldn't that be a leak in my extension?

I am sure there are other, older events I could look for, but it seems that nsIWebProgressListener was written to provide a better interface. It just needs to do the whole job.

See: http://bugzilla.mozilla.org/show_bug.cgi?id=395709 -
nsIWebProgressListener can send message when window or tab is closed

September 10, 2007 09:26 PM

Wil Clouser

Mozilla24 is coming up!

Mozilla24 is a worldwide conference about technology and the future of the web. I won’t duplicate the about page, but check out the line up of speakers.

Whether you can attend in person or just visit online it should be able to offer something for anyone interested in the open web. If you’ve got some free time at the end of this week, get involved.

September 10, 2007 09:13 PM

Gervase Markham

Facebook Image-to-Email

Does it annoy anyone else that on Facebook profiles, the email address is an image? This can't be an anti-spam measure; only your friends can see it. It has to be to put a barrier up to stop you from using real email rather than Facebook's poor excuse for it.

However, I think it would be a Simple Matter of Programming to write a Firefox extension which fixed the problem. The font they use is standard, and the images are PNG. The extension would:

Find each email address image

Use canvas.drawImage() to draw it to a <canvas>

Use canvas.getImageData() to read vertical strips of pixels

Compare the pixel values to an internal table of the possible characters

Remove the image from the DOM and replace it with a clickable mailto: link

It's a proportional font, so you'd need a loop to keep reading single pixel strips until it was clear what letter it was, and then advancing the correct remaining number of strips to move to the next letter. But that's a trivial detail.

Anyone up for writing this?

September 10, 2007 08:24 PM

The Mozilla Blog

Count down to Mozilla 24!

We’re just a few days away from Mozilla 24, our global community event that will be taking place in Paris, Tokyo, the S.F. Bay Area (Stanford University) and now Thailand! Here is a recap of the Mozilla 24 events near you:

* Mozilla 24 at Stanford University’s Center for Innovations in Learning (9/15, 11:00am - 8:00pm PDT): The U.S schedule for Sept. 15th is now online and features a keynote from Larry Lessig and a global discussion with Mitchell Baker, Chair of the Mozilla Foundation, Vint Cerf, Vice President and Chief Internet Evangelist at Google Inc. and Dr. Jun Murai, professor of Faculty of Environment and Information Studies and Vice President at Keio University. Please register today!

* École Nationale Supérieure de Télécommunications, Paris, France (9/14, 10:15am – 1:00pm CEST): Tristan Nitot, President of Mozilla Europe, will host a workshop on Open Source and Localization. Register here.

* Asian Institute of Technology, Bangkok, Thailand (9/15, 12:00pm – 8:00pm ICT): The Asian Institute of Technology is hosting a viewing of global Mozilla 24 activities. Register here.

* Mozilla 24 Japan, Tokyo (8:00pm, 9/14 – 8:00pm, 9/15): Our Japan team is hosting a series of sessions and a rock concert! Details and registration can be found here.

You’ll be able to participate online from www.mozilla24.com if can’t make the in-person events. Details will be posted shortly!

Share This

September 10, 2007 07:26 PM

Robert Kaiser

Weekly Status Report, W36/2007

Another interesting week has passed, here's a summary of SeaMonkey/Mozilla-related items I worked on in week 36/2007 (September 3 - 9):

Website work:
Some smaller updates have been done on the new SeaMonkey site, no major changes, though. It will probably still take a bit until this is fully ready for production.
The new start page should be fairly ready for taking over the default SeaMonkey homepage though. Please direct any further comments to the the development newsgroup.

Source L10n:
After my work to get the ball rolling on source L10n for ChatZilla and venkman, I ran into the discussion I've been awaiting and the I more or less intended to trigger with that work, and we're nearing a solution that should probably work for all in-tree extensions some time in the future.
We'll probably go with so-called "dependent language packs", which is very near to what ChatZilla used to do up to now, in a way that also fits with 1.9-style way of doing things, but doesn't lose backwards compatibility to older applications.
See the L10n newsgroup for more about this.

German L10n:
Checked in another small update for other shared L10n, and a significant amount of the DOM L10n update should land soon, so I hope we can make German trunk tinderbox go green.

SeaMonkey vendor ID and profile location change:
The patch to Change SeaMonkey Vendor ID to "Mozilla" should go in soon, we are currently figuring out how to concretely get the profile location move and helper scripts for it announced to nightly users.

Themes move:
The move of SeaMonkey-specific theming to suite/ is done, I'm still looking into what we can clean up in the toplevel themes/ directory as Camino-like-Firefox is, unlike Firefox, still using "something" from there.

Mozilla Foundation ED Search:
The Mozilla Foundation Executive Director Search Committee is ready for the first round of interviews with candidates for this job. This round is closed, only the Committee knows who are candidates are and only we are interviewers as well as listen to what the candidates have to tell. This is for getting a first impression of who those people are, we'd like to pull more community members into the second round and possibly be able to make the third round completely open, so that everyone interested in the community can participate at least as listeners/viewers then.
See also the minutes of our July 26 meeting.
For now, we're in the early stages and only starting on the first, closed round of interviews. I'm anxious to hear what our candidates have to tell us. Unfortunately I'm only participating on the phone, it probably would be nice to actually see faces as well or be in the same room, as some other Committee members actually are.

Various Discussions:
notification bars, toolbar customization, storage templates, SeaMonkey packaging, L10n repackaging, login manager, automatic updates, community giving etc.


As a side note, I did meet timeless, a long-time Mozilla contributor, on Sunday while he was visiting Vienna - if anyone of you is stopping by here in his travels, pass me a note, I'd be happy to meet and chat with other Mozilla folks. I can also show you around here, if you like

September 10, 2007 07:13 PM

Songbird

Fake Steve Jobs

Birdwatchers with an eye on the Media Web's future should follow The Secret Diary of Steve Jobs blog authored by Fake Steve Jobs. His Fakeness routinely channels Jobs inner monologue wrt the Apple iTunes Store + iTunes + iPod/iPhone market and architecture domination.

September 10, 2007 06:25 PM

QMO

If you have participated in a Community Test day or Bug day in the past and have not come back for another event, why?

One of the things we are trying to understand about our community is how often community members come to one of our Test or Bug Days and whether they come back to participate in additional events.  We see a continual ebb and flow of participants in these events, but the Mozilla QA team is wondering what else we can do to increase our participation levels and keep community members coming back to these test events on a regular basis.  If you have additional feedback regarding this question that is not covered by one of the multiple choice selections below, please email marcia@mozilla.org.

read more

September 10, 2007 05:38 PM

Doug Warner

Week 36 Year 2007 status update

I took a slight diversion from working on Drupal this week to try to give some other tasks attention.

Drupal Mozdev theme work - Just minor tweaks to make the theme more "mozdevy" and work better with Mozdev's rotating themes.

Setup custom project - This is a project to hold custom code used for Drupal integration, or other projects involved with the running of Mozdev.org. Currently, things like Mozdev's authentication module, theme, and installation profile exist there.

Drupal cron job integration with Multisite Manager - I improved my patch for Multisite Manager to make it more useful for a broader audience. You can the patches in Multisite Manager v0.9.5.

bug#17520 - automate new project list on front page - In order to give us more time for other tasks, I automated the new project list on the front page by extending my previous work on bug#13381.

Updated last updated block from bug#13381 - A straggling feature that I neglected to implement when I was working on the bug; the "last updated" block on Mozdev.org's front page is now built using the same list as the other project activity lists. A repercussion of work on both this bug and bug#17520 is that "new" projects and "unstarted" projects have a different definition. "New" projects are projects that have just recently become active for the first time; thus they can be both "new" and "active". "Unstarted" projects are projects that have recently been created and have no perceptible progress on them; these can be very old, in some cases.

Started tracking Drupal rollout through bug#17703 - I let people who where tracking other separate bugs for blog, wiki, and forum features know that we're going to be rolling out Drupal soon and asked them to test things out. One user responded and was able to find some problems that were quickly and easily fixed.

Add Drupal to new project form - I started looking into how this form was built in order to add Drupal as a feature that project owners can request when setting up a new project.

Upcoming tasks:

Add Drupal to new project form - Of course this will have to wait until we're ready to release it to all project owners, but I'd like to understand how the form works and get it ready for release.

Add Multisite Manager API - In order to automate setting up and removal of Drupal sites, I'd like to add an API to Multisite Manager. This will mostly be necessary for bug#11378, but it might be good to lay some groundwork.

Additional testing and planning for rollout of Drupal


September 10, 2007 02:32 PM

Zach Lipton

Please Stand By...

Hey everyone. As you might have noticed, I haven't been around a whole lot over the past couple weeks. I have, as usual, dug myself into a bit of a hole, having gotten involved in a giant last-minute theater project. The show opens Thursday at which point regular, speedy service can return.

To those of you who have been blocked by me or are waiting on me for something: I apologize. QA Extension and Litmus work cometh again soon.

September 10, 2007 02:23 PM

David Boswell

Status Update 2007-09-07

Last week I continued working on several ongoing projects. Here’s a quick update on things:

It looks like the discussion about archiving obsolete content on www.mozilla.org has reached a consensus (no one has objected to a proposal I posted two weeks ago so either everyone is still on summer holidays or people are fine with the plan). For next steps with this, I’ll update the Mozilla.org:Planning page on the wiki and open a bug to get the process started.

Things are moving forward with some of my research projects and with updating some of the content on the Foundation site. I’m excited about what I’ve been helping out with and am looking forward to posting more information about these things soon.

September 10, 2007 01:51 PM

QMO

Reminder: Join the Firefox - Bookmarks / Places Test Day - on Friday 14th September !

2007-09-14 07:00 2007-09-15 05:00 Etc/GMT-7

Hi QA Testers!,

Just another friendly reminder to join us tomorrow in #testday for the
Mozilla QA community for Places testday on Friday, September 14th, 2007!

We will test the *Bookmark / Places Features* in Nightly Builds in
preparation of Firefox 3.

The event will run Friday, September 14th, 2007, from 7am - 5pm PDT

You can use the Daily Nightly Builds or the Gran Paradiso Alpha 8 (M8) RC1

Please visit http://quality.mozilla.org/events/test-days for all the

read more

September 10, 2007 12:59 PM

Join Bugday tomorrow, September 11th !

2007-09-11 05:00 2007-09-12 11:59 Etc/GMT-7

Hi QA- Team,

Just another friendly reminder to join us tomorrow in #bugday on

Tuesday, September 11th:

* Asia session - 14:00-16:00 (Beijing)

* Euro session - 14:00-16:00 (Berlin)

* Amer. session - 12:00-14:00 (Los Angeles)

See also the timetable on http://quality.mozilla.org/events/bug-days#Schedule for your Timezone.

read more

September 10, 2007 12:31 PM

Robert O'Callahan

Work on garbage collection tends to assume that all objects in the heap are being managed by a single collector. In practice this is a problem because people want to have code written in different languages sharing data. We face this problem internally because we have C++ and Javascript code sharing objects. We also face it externally because people want to be able to use Python and other languages to write XUL applications or even potentially on the Web.

One approach is to implement all those languages on top of the same collector, which often means implementing them on the same virtual machine. That can be OK but it can impose some undesirable tradeoffs when the constraints of the virtual machine or collector don't allow the language to be implemented well. You often end up with a language that has some parts filed off because they don't fit ... e.g. IronRuby can't implement first-class continuations. Or you take a memory footprint hit because the object representation imposed by the runtime isn't optimal for your favourite language. Or maybe the engineering effort required to reimplement the language is prohibitive.

Another approach is to use reference counting at the language boundaries, which is what we mainly rely on. This is nice because it can be implemented in "wrapper objects" without touching the internals of the language implementation. But this approach is unable to collect cycles of objects that span language boundaries.

If we want to collect cross-language cycles it seems inevitable that we need a way to trace through all object graphs. That means we have to modify, or at least have knowledge of, the guts of the language runtimes involved. Given that requirement, what is the minimally invasive strategy that can collect cycles across language boundaries? My hypothesis: a distributed mark and sweep global collector.

The idea is that periodically there is a "global garbage collection", which works like this:

    "Stop the world": All language runtimes advance all their active threads to GC safe points. In Spidermonkey, for example, this means reaching the end of a JS "request".

    "Mark": Request all language runtimes mark all object in their heaps from their roots.

    While marking, a runtime may encounter a reference to an object managed by another runtime. Such references are dispatched to be marked by that runtime.

    "Sweep": Request all language runtimes sweep their heaps and discard unmarked objects.

    "Restart": Tell all runtimes to restart their threads.

Extra steps would be required to support finalization and weak references, but it would be similar to the way they work in regular mark and sweep.

A list of active language runtimes must be maintained. Cross-runtime mark requests requires a map from memory areas to runtimes. This map could be gathered from all the runtimes at the start of each global GC. This map would also help conservative collectors detect references.

This approach is really very simple. It does not constrain the representation of a runtime's objects in any way other than that they must be addressable via pointers. It does not impose any read or write barriers. It does not constrain synchronization or threading models, other than requiring runtimes to have some way to stop their worlds. It allows runtimes to use both exact and conservative roots and tracing internally.

It also allows considerable flexibility for the runtime's internal garbage collection strategy. Obviously mark-and-sweep algorithms fit right in. Most generational collectors in practice use mark and sweep for the tenured objects, so they can fit in here as long as any objects to be passed across language boundaries are immediately tenured. A pure copying collector won't work without stationary proxy objects since we don't want to force all runtimes to handle object motion; I think that's a reasonable restriction. Incremental collection algorithms will work OK, they will just have to queue the marking of edges that lead outside the runtime's own heap until the next global GC. In the same way a runtime can collect more frequently than the global GC (as long as it preserves objects that may be referenced by foreign runtimes).

One wrinkle that I haven't fully thought through yet is how runtimes with exact collection handle mark requests into their heaps that don't point to actual objects (as could be sent by a runtime using conservative collection). I would probably require that the runtime can identify whether an object is being referenced. I would probably also require that interior pointers can be resolved to mark the enclosing object. These requirements would be limited to objects that have been exposed to foreign runtimes.

This approach does not address other issues like how cross-runtime calls can actually happen. That problem is actually much easier; it can be solved non-invasively using wrappers, for example. I think it's good to factor these issues out.

It would be an interesting experiment to take a few popular language runtimes and modify them to participate in a scheme like this. I hope it can be done with a very small amount of code. In practice the hardest problem is probably convincing people that this is worth adding, supporting and shipping in the core of their runtimes, and agreeing on the nitty-gritty details of how the interface would work.

I'd really like to see something like this happen, because the competing approach of shoehorning everything into a single runtime is technically unsatisfying, will slow language and runtime innovation, and will be politically infeasible for the free software world.

September 10, 2007 10:19 AM

Federal Government

Work on garbage collection tends to assume that all objects in the heap are being managed by a single collector. In practice this is a problem because people want to have code written in different languages sharing data. We face this problem internally because we have C++ and Javascript code sharing objects. We also face it externally because people want to be able to use Python and other languages to write XUL applications or even potentially on the Web.

One approach is to implement all those languages on top of the same collector, which often means implementing them on the same virtual machine. That can be OK but it can impose some undesirable tradeoffs when the constraints of the virtual machine or collector don't allow the language to be implemented well. You often end up with a language that has some parts filed off because they don't fit ... e.g. IronRuby can't implement first-class continuations. Or you take a memory footprint hit because the object representation imposed by the runtime isn't optimal for your favourite language. Or maybe the engineering effort required to reimplement the language is prohibitive.

Another approach is to use reference counting at the language boundaries, which is what we mainly rely on. This is nice because it can be implemented in "wrapper objects" without touching the internals of the language implementation. But this approach is unable to collect cycles of objects that span language boundaries.

If we want to collect cross-language cycles it seems inevitable that we need a way to trace through all object graphs. That means we have to modify, or at least have knowledge of, the guts of the language runtimes involved. Given that requirement, what is the minimally invasive strategy that can collect cycles across language boundaries? My hypothesis: a distributed mark and sweep global collector.

The idea is that periodically there is a "global garbage collection", which works like this:

    "Stop the world": All language runtimes advance all their active threads to GC safe points. In Spidermonkey, for example, this means reaching the end of a JS "request".

    "Mark": Request all language runtimes mark all object in their heaps from their roots.

    While marking, a runtime may encounter a reference to an object managed by another runtime. Such references are dispatched to be marked by that runtime.

    "Sweep": Request all language runtimes sweep their heaps and discard unmarked objects.

    "Restart": Tell all runtimes to restart their threads.

Extra steps would be required to support finalization and weak references, but it would be similar to the way they work in regular mark and sweep.

A list of active language runtimes must be maintained. Cross-runtime mark requests requires a map from memory areas to runtimes. This map could be gathered from all the runtimes at the start of each global GC. This map would also help conservative collectors detect references.

This approach is really very simple. It does not constrain the representation of a runtime's objects in any way other than that they must be addressable via pointers. It does not impose any read or write barriers. It does not constrain synchronization or threading models, other than requiring runtimes to have some way to stop their worlds. It allows runtimes to use both exact and conservative roots and tracing internally.

It also allows considerable flexibility for the runtime's internal garbage collection strategy. Obviously mark-and-sweep algorithms fit right in. Most generational collectors in practice use mark and sweep for the tenured objects, so they can fit in here as long as any objects to be passed across language boundaries are immediately tenured. A pure copying collector won't work without stationary proxy objects since we don't want to force all runtimes to handle object motion; I think that's a reasonable restriction. Incremental collection algorithms will work OK, they will just have to queue the marking of edges that lead outside the runtime's own heap until the next global GC. In the same way a runtime can collect more frequently than the global GC (as long as it preserves objects that may be referenced by foreign runtimes).

One wrinkle that I haven't fully thought through yet is how runtimes with exact collection handle mark requests into their heaps that don't point to actual objects (as could be sent by a runtime using conservative collection). I would probably require that the runtime can identify whether an object is being referenced. I would probably also require that interior pointers can be resolved to mark the enclosing object. These requirements would be limited to objects that have been exposed to foreign runtimes.

This approach does not address other issues like how cross-runtime calls can actually happen. That problem is actually much easier; it can be solved non-invasively using wrappers, for example. I think it's good to factor these issues out.

It would be an interesting experiment to take a few popular language runtimes and modify them to participate in a scheme like this. I hope it can be done with a very small amount of code. In practice the hardest problem is probably convincing people that this is worth adding, supporting and shipping in the core of their runtimes, and agreeing on the nitty-gritty details of how the interface would work.

I'd really like to see something like this happen, because the competing approach of shoehorning everything into a single runtime is technically unsatisfying, will slow language and runtime innovation, and will be politically infeasible for the free software world. I first wrote about this idea in 2001 and I'm surprised that I haven't seen it reinvented either in research or the general software world.

September 10, 2007 10:19 AM

AllPeers

TechCrunch Exclusive Preview of AllPeers “Social BitTorrent” Release

TechCrunch has a write-up about our upcoming 0.70 “Social BitTorrent” release, of which we’re giving their readers a sneak preview. The release includes a complete BitTorrent client inside Firefox. This is plenty cool in its own right. Just click on a torrent file inside Firefox and it starts to download. There are some experimental BT clients for Firefox, and there’s FoxTorrent, which provides an interface inside Firefox for their external client. But I would venture to say this is the first fully functional client running inside Firefox. Big news indeed. And of course it’s all open source.

Even more exciting, from my perspective, is our “Social BitTorrent” functionality. This is what happens when you meld our existing private P2P network with standard BitTorrent. When you start downloading a torrent, you can share the whole torrent or individual files it contains with other AllPeers users. When they start to download, our BitTorrent support kicks in, so they are downloading from you and the swarm simultaneously. They therefore get twice the download speed, or a fail-safe backup if the person who shared it is offline (in which case the file still comes from the swarm) or the torrent is unavailable. As far as I know, this is a first-of-its-kind feature and adds a whole new social dimension to BitTorrent.

BitTorrent is rapidly becoming the de facto standard for distributing large files on the internet, but it’s still far too technical for most users. We hope our Social BitTorrent release will help to broaden its reach to less tech-savvy types.

Bookmark to:

September 10, 2007 08:34 AM

Mozpad Meeting in Prague?

Mark Finkle posted an entry on the Mozilla wiki proposing a Mozilla Developer Day in Prague in the November timeframe along the lines of the one that took place in Paris in June. Reviews for the Paris day were glowing, but I know that a lot of people couldn’t make it and that others were left wanting more. If we can drum up enough interest, I’d also like to combine the Developer Day with a Mozpad face-to-face meeting. If there’s a chance you might attend, please sign up on the wiki so we can see whether the interest level is high enough to move to the next phase of planning.

Bookmark to:

September 10, 2007 07:44 AM

Keep on Trunkin’

In a comment here on Peer Pressure, Al Billings asks: “Can I please have AllPeers nightlies that work in Firefox trunk builds? Pretty please? :-)” I’d like to claim that we took immediate action to address Al’s request, but actually I filed a bug for this a couple of weeks ago. I won’t hide the fact that I’d love to see more members of the Mozilla development community using AllPeers, and I know one of the main hindrances is that so many people are using trunk builds. Hopefully we’ll having something running on the trunk in the next month or so.

Bookmark to:

September 10, 2007 07:37 AM

Justin Scott

Building Software at the Scale of the Web

Last semester I took a course in which there was a speaker from the corporate IT world every class (once a week) who talked about the various IT processes at his/her company. One night after (or possibly during?) a particularly uninteresting speaker, I jokingly asked shaver if he wanted to come speak. Fast forward 6 months to Thursday, when shaver arrived in New Orleans from London, drove here to Baton Rouge, and had a rental car tire blowout that almost caused him to miss his first talk. Maybe he’ll post pictures.

The first talk was to a technology club - the LSU chapter of Association of Information Technology Professionals. I was really surprised at some of the questions that were asked - I had no idea that people around here would care about Mozilla’s thoughts on mobile, Silverlight, or have heard of the “10 days” incident.

Immediately following that was the main talk to the Management of Information Resources class, a business elective of somewhere between 150-200 people. Shaver started off asking how many people use Firefox. I was very surprised when what looked to be about half the room raised their hands, and I’m sure after his talk, the rest of the people went home to try it out.

The next day I saw some of the Firefox buttons we gave out on a few backpacks. The talks were awesome, so big thanks to shaver for taking the time to venture down here before he’s grounded for a bit.

September 10, 2007 06:52 AM

Al Billings

Cory Doctorow Could Use Mozilla Help

I mentioned the other day that writer, activist, and ne’erdowell , Cory Doctorow, wanted to release a theme and/or some kind of bundle alongside his next science fiction novel, Little Brother.  This is a young adult novel focused on hacker kids and includes some supporting activities to help get kids more involved with the ideas within the book.

Cory has read part of Chapter 12 from the book previously and released it as a podcast.  I include a link to the audio of that below.

Since I posted the other day, Cory and I have discussed what he’s trying to do in relation to Firefox and Tor in some detail. Within the book, he has a character using Tor to get around his school’s network restrictions to download a book. Cory wants, as an educational and promotional use together, to replicate this by making some kind of joint install of Tor (probably installing Vidalia) and Firefox available. Also, this would use a Firefox theme based on the book’s art. He also wants the Foxyproxy extension installed as well and configured to use Tor.

Simple, right? :-)

The issue here is that Cory is a Science Fiction writer, not a theme creator/artist or a Firefox guru. He could use some help from the community. Since much of his fan base are computer geeks who know of his work with the EFF and BoingBoing, I figure that might not be too hard to muster up but I do know it needs to be sought out. That’s why I’m posting here today.

I’m a QA guy and I’ve already volunteered my help to him but my skills and knowledge are limited here. I’m not sure what the best solution is to fulfill Cory’s relatively benign desires. I suggested to him that rolling a custom build of Firefox is not ideal as you’d want anyone who downloads this to get normal security updates and the like, which presupposes a normal build.

What I suggested, off the top of my head, is that someone could write an installer that grabs the current build of Firefox and the current build of Vidalia, installs theme, and then grabs his theme and FoxyProxy, configuring Firefox to use them. Maybe a zipfile with all of these could work though but grabbing the most current builds would be best since, in the last month, I know that Tor has released at least two updates and Firefox releases one every two months or so on average. The risk of installing out of date software is there otherwise. This gets around the idea of creating a custom Firefox build.

I’m not sure if this is the best solution but it is what occurred to me. If anyone in the community is interested in helping with this installation/configuration problem or has a good solution, please e-mail me through my gmail account (albill@gmail.com).

Also, beyond this, if anyone would be interested in helping with making a theme based on the artwork for Tor Books’ (the publisher)  art department, that would be helpful and is a pretty self-contained issue.

September 10, 2007 01:58 AM

September 09, 2007

Samuel Sidler

Camino Meet-up Details

I’ve just updated the Camino wiki with the notes from our meet-up last June. I apologize for taking so long to get these up.

Those of you who were there can feel free to comment or make additions as necessary. Not everything is listed (hence the “abridged” version), nor does it need to be.

As always, everything on that page that looks toward the future is subject to change and, obviously, we didn't meet some of the goals we intended to. If you have ideas on new features or improvements we should be making project wide, feel free to comment in the newsgroup with your ideas or comments.

(And yes, we know there's a lot of spam in the newsgroup, sadly. The more you post, the less spam there will be! Percentage-wise, anyway.)

September 09, 2007 10:14 AM

Feeds: Atom, RSS 2.0, RSS 1.0
Subscription list: FOAF, OPML

Last update: September 15, 2007 08:03 AM
All times are UTC.

Gecko Tree Schedule

Note: These dates are scheduling estimates, and as in most software projects are subject to change. The current milestone is firm, the rest are preliminary and should be used for general guidance only.

Subscriptions

Adam Sacarny (feed)

Al Billings (feed)

Alan Starr (feed)

Alex Faaborg (feed)

Alex Fritze (feed)

Alex Polvi (feed)

Alex Vincent (feed)

Ali Ebrahim (feed)

AllPeers (feed)

Allan Beaufour (feed)

Andrew Stein (feed)

Andy Edmonds (feed)

Anthony Hughes (feed)

Axel Hecht (feed)

Bart Decrem (feed)

Ben Goodger (feed)

Benjamin Smedberg (feed)

Blake Ross (feed)

Blogzilla (feed)

Bob Clary (feed)

Boris Zbarsky (feed)

Brendan Eich - Roadmap (feed)

Brian Crowder (feed)

Brian King (feed)

Burning Edge - Firefox (feed)

Calendar (feed)

Cameron Roy (feed)

Camino Update (feed)

Cesar Oliveira (feed)

Chris Blizzard (feed)

Chris Cooper (feed)

Chris Crews (feed)

Chris Double (feed)

Chris Hofmann (feed)

Chris Ilias (feed)

Christopher Aillon (feed)

Christopher Beard (feed)

Colin Barrett (feed)

Dan Mills (feed)

Dan Mosedale (feed)

Daniel Glazman (feed)

Daniel Glazman (feed)

Daniel Glazman (feed)

Daniel Glazman (feed)

Daniel Glazman (feed)

Darin Fisher (feed)

Dave Townsend (feed)

David Bienvenu (feed)

David Bolter (feed)

David Boswell (feed)

David Boswell (feed)

David Humphrey (feed)

David Hyatt (feed)

David Liebreich (feed)

David Miller (feed)

David Miller (feed)

Deb Richardson (feed)

Dietrich Ayala (feed)

Doron Rosenberg (feed)

Doug Turner (feed)

Doug Warner (feed)

Eric Promislow (feed)

Eric Shepherd (feed)

Facebook-Firefox Blog (feed)

Firefox Metrics Project (feed)

Frank Hecker (feed)

Frederic Wenzel (feed)

Frédéric Buclin (feed)

Frédéric Buclin (feed)

Gen Kanai (feed)

Gervase Markham (feed)

Gijs Kruitbosch (feed)

Graydon Hoare (feed)

Grey Hodge (feed)

Henrik Gemal (feed)

Henrik Skupin (feed)

Ian Oeschger (feed)

J. Paul Reed (feed)

JT Batson (feed)

Jason Kersey (feed)

Jason Orendorff (feed)

Javier Pedemonte (feed)

Jesse Ruderman (feed)

John Lilly (feed)

John Resig (feed)

John Slater (feed)

Johnathan Nightingale (feed)

Johnny Stenback (feed)

Josh Aas (feed)

Justin Dolske (feed)

Justin Fitzhugh (feed)

Justin Scott (feed)

Kevin Gerich (feed)

L. David Baron (feed)

Li Gong (feed)

Marcia Knous (feed)

Mark Finkle (feed)

Mark Pilgrim (feed)

Matthew Willis (feed)

Max Kanat-Alexander (feed)

Melissa Shapiro (feed)

Michael Kaply (feed)

MicroB (feed)

Mike Beltzner (feed)

Mike Connor (feed)

Mike Morgan (feed)

Mike Pinkerton (feed)

Mike Schroepfer (feed)

Mike Shaver (feed)

Mitchell Baker (feed)

Mozilla Add-ons Blog (feed)

Mozilla Developer DevNews (feed)

Mozilla Developer Webwatch (feed)

Mozilla Digital Memory Bank (feed)

Mozilla IT (feed)

Mozilla Korea (feed)

Mozilla Labs (feed)

Mozilla Quality (feed)

Mozilla SVG Update (feed)

Mozilla Security (feed)

Mozilla Web Development (feed)

MozillaZine (feed)

Myk Melez (feed)

Nagappan (feed)

Neil Deakin (feed)

Pascal Chevrel (feed)

Paul Kim (feed)

Paul Rouget (feed)

Phil Ringnalda (feed)

Planet Mozilla Blog (feed)

QMO (feed)

Ray Kiddy (feed)

Rob Campbell (feed)

Robert Accettura (feed)

Robert Helmer (feed)

Robert Kaiser (feed)

Robert O'Callahan (feed)

Robert Sayre (feed)

Rumbling Edge - Thunderbird (feed)

Samuel Sidler (feed)

Scott MacGregor (feed)

SeaMonkey (feed)

SeaMonkey QA (feed)

Seth Bindernagel (feed)

Shane Caraveo (feed)

Shawn Wilsher (feed)

Songbird (feed)

Steve England (feed)

Steve Won (feed)

Stuart Parmenter (feed)

Taras Glek (feed)

The Mozilla Blog (feed)

Trent Mick (feed)

Tristan Nitot (feed)

Vladimir Vukicevic (feed)

Wil Clouser (feed)

Wladimir Palant (feed)

Zach Lipton (feed)

Zak Greant (feed)

matthew zeier (mrz) (feed)

Mozilla Foundation

MozillaZine.org

Get Involved!

Maintained by mozilla.org, powered by Planet Venus