Skip to content

{ Category Archives } Mozilla

Mozilla related things, most likely Thunderbird.

Documentation for complex things (you don’t basically already understand)

The Problem One of my focuses at MoMo is to improve the plight of Thunderbird extension developers.  An important aspect of this is improving the platform they are exposed to.  Any platform usually entails a fair amount of complexity.  The trick is that you only pay for the things that are new-to-you, learning-wise. The ‘web’ [...]

Tagged , , ,

understanding where layout goes wrong with gecko reflow debug logs (Part 1)

HTML and CSS provide awesome layout potential, but harnessing that potential to do your bidding can sometimes be problematic.  I suspect all people who have written HTML documents have been in a situation where they have randomly permuted the document structure and CSS of something that should work in the hopes of evolving it into [...]

Tagged ,

Thunderbird Quick Filter Bar extensions, they’re a thing!

The previously discussed Quick Filter Bar interface landed in time for Thunderbird (Lanikai) 3.1 beta 2 (whose release is real-soon-now).  Although the Quick Filter Bar already contains dangerously high levels of awesome, we made sure to make it extensible so you can cram even more awesome in. As an example, I have created an extension [...]

Tagged , ,

work-in-progress tooling: feeding GWT SpeedTracer systemtapped mozilla performance data

Now that Thunderbird 3.1 is string/feature-frozen it’s time to focus on performance.  This post is just to make sure that people who are also working on similar things know what I’m up to.  For example, there’s some very exciting work going on involving adding a startup timeline to mozilla-central that everyone keeping up-to-date with mozilla [...]

Tagged , ,

a systemtap script to attribute JS string memory costs to the creating JS functions

—– js_GC data pages: 96731 total vm pages: 234849 ### KiB 11376 839 BF_format log4moz.j:487 15906 725 mime_emitter_writeBody jsmimeemitter.j:381 148 576 MimeMessage_coerceBodyToPlaintext mimemsg.j:341 4460 492 gloda_ds_queryFromQuery datastore.j:2988 9655 387 <MYSTERIOUS> <BEYOND THE VEIL>:0 911 237 gloda_content_quoted connotent.j:267 1723 144 gloda_indexMessage index_msg.j:2597 187 141 gloda_content_content connotent.j:290 170 108 gloda_content_getContent connotent.j:166 1917 73 gloda_identity_toString datamodel.j:785 1775 69 [...]

Tagged

performance annotated SQLite EXPLAINation visualizations using systemtap

For the Thunderbird 3.1 release cycle we are not just fixing UX problems but also resolving various performance issues.  The key to defeating performance problems, like the key to defeating bad guys in movies, is to make sure they are dead.  If you want to fight the bad guy again, you can just assume that [...]

Tagged , , , ,

who is starring Firefox tinderbox failures and how long before they do?

Using the accumulated data in my CouchDB instance about the Firefox tinderbox and Protovis, we can see how long it takes before a testfailed/busted build gets starred and who stars it.  The horizontal axis is the number of minutes between the end of the build and when it gets starred.  If someone stars the build [...]

Tagged , ,

more systemtap mozilla event loop awareness

====================                                             ms    # —– Event Loop: nsInputStreamReadyEvent                                      7119   11 —– Input Events: nsInputStreamPump                                            7119   11 —– Pump Events: thunk:nsNNTPProtocol::QueryInterface(…)                    7119   11 ====================                                             ms    # —– Event Loop: nsInputStreamReadyEvent                                      6284   15 nsTimerEvent                                                  242  123 —– Timers: nsUITimerCallback                                             121    2 —– Input Events: nsInputStreamPump                                            6284   15 —– Pump Events: thunk:nsNNTPProtocol::QueryInterface(…)                    6283   15 As of late, I’ve noticed [...]

Tagged ,

Thunderbird ĝLȬdÅ full text search tokenizer now supports accent folding, non-ASCII case-folding, and more!

Thanks to the efforts of Makoto Kato (jp-blog en-blog twitter) whom you may remember as the bringer of CJK bi-gram tokenization, I have just pushed tokenizer support for case-folding, accent-folding, and voiced sound mark magic to comm-central.  The net result is that searches for “ĝLȬdÅ” will now find “gloda” and vice versa.  Less crazy searches [...]

Tagged , ,

partial: posting pymake data/results to a couch

What it does: Adds a “–couch-json” option to bsmedberg‘s pymake that takes a URL that crams the state of (global, non-rule associated) variables into a couch document for each makefile context executed.  Variables are grouped by general origin as well as specific Makefile origin where relevant.  The code as it stands only tells you about [...]

Tagged ,