Mozilla Nederland LogoDe Nederlandse

The Servo Blog: This Week In Servo 75

Mozilla planet - ma, 15/08/2016 - 02:30

In the last week, we landed 108 PRs in the Servo organization’s repositories.

Thanks to the community for their patience while our continuous integration services were were in a more manual mode as we adapted to some changes from Travis CI that complicated our autolander. Things should be fine now - please reach out in #servo if you see anything!

We are delighted to announce that long-time contributor Michael Howell (notriddle) has been made a reviewer! Thanks for all of your contributions and congratulations on your new role.

Planning and Status

Our overall roadmap is available online and now includes the initial Q3 plans. From now on, we plan to include the quarterly plan with a high-level breakdown in the roadmap page.

This week’s status updates are here.

Notable Additions
  • shinglyu fixed auto positioning on absolute flows
  • glennw implemented a slew of initial optimizations for the new WebRender
  • nox upgraded roughly half the Rust ecosystem to a new version of Euclid
  • notriddle added a flag to dump computed style values
  • ms2ger updated Glutin from upstream
  • paul updated browserhtml
  • vvuk continued his tear through the ecosystem, fixing everything to build cleanly on Windows with MSVC
  • simonsapin implemented ToCss for selector types
  • larsberg migrated our CI to check Travis status indirectly via GitHub
  • wafflespeanut added support for word-spacing for geckolib
  • anholt improved our WebGL support on Linux
  • msreckovic corrected inner radii for borders in WebRender
  • UK992 improved tidy’s license validation code
  • emilio fixed issues related to the client point with fixed positioned stacking contexts
  • paul added a Homebrew package for another path to the macOS nightly build
  • emilo redesigned the style sharing API
  • jennalee implemented the Request API
  • splav fixed a bug with the layout of inline pseudo elements
New Contributors

Interested in helping build a web browser? Take a look at our curated list of issues that are good for new contributors!


None this week.

Categorieën: Mozilla-nl planet

Karl Dubost: [worklog] Edition 031. Heat wave and cicadas falling

Mozilla planet - ma, 15/08/2016 - 01:59

Cicadas are an interesting insect. They live most of their time as a nymph under the ground in between 2 and 5 years, but some species live until 17 years before coming out and die six weeks after. What does it tell us about all the hidden work we put during our lifetime and blooms and shines for only a couple of hours.

Tune of the week: Ella Fitzgerald - Summertime (1968)

Webcompat Life

Progress this week:

Today: 2016-08-15T08:58:55.633182 298 open issues ---------------------- needsinfo 4 needsdiagnosis 80 needscontact 17 contactready 29 sitewait 158 ----------------------

You are welcome to participate

Webcompat issues

(a selection of some of the bugs worked on this week).

  • Gecko and Blink/WebKit have different default CSS border-width values for the input element. It breaks a site. If we decide to fix it in Gecko, do we break other sites relying on this default value?
  • Performance issues on a heavy map Web site, though I'm not sure it is really a Web compatibility issue. It looks like more of something related to Gecko.
  • Another issue related to layout with a content inside a form. I need to dig a bit more.
  • no tap on priceline
  • Use chrome only for transcribeme
  • When using element.removeEventListener('event', callback) never forgets the second argument because it fails in Firefox, though that seems to be working in Chrome.
  • mask, background and mask-image difference creates immaterial design. The most important now being to really find what is the source of the issue. dev
  • Is invalid always the right keyword for closing an issue? From our side (project owner) it is invalid because it is not in the scope of the project, or there isn't enough details to reproduce. But from the user's perspective who had genuinely an issue (whatever the issue is), it can be felt as a strong rejection along the lines of "We don't care about you". Maybe we should find a better way of closing issues when they are out of scope.
Reading List
  • More a quote of the day, but spot on: > Wondering how long it will take for publishers to realize it’s Medium that desperately needs them and not the other way around.
  • And another one from Adam. And I really wish we could do that in a cool way! > <adam_s> Almost at our 3000th bug on The lucky reporter who hits 3000 wins a broken light bulb
Follow Your Nose TODO
  • Document how to write tests on using test fixtures.
  • ToWrite: Amazon prefetching resources with <object> for Firefox only.


Categorieën: Mozilla-nl planet

Nick Desaulniers: Object Files and Symbols

Mozilla planet - zo, 14/08/2016 - 05:46

What was supposed to be one blog post about memory segmentation turned into what will be a series of posts. As the first in the series, we cover the extreme basics of object files and symbols. In follow up posts, I plan to talk about static libraries, dynamic libraries, dynamic linkage, memory segments, and finally memory usage accounting. I also cover command line tools for working with these notions, both in Linux and OSX.

A quick review of the compilation+execution pipeline (for terminology):

  1. Lexing produces tokens
  2. Parsing produces an abstract syntax tree
  3. Analysis produces a code flow graph
  4. Optimization produces a reduced code flow graph
  5. Code gen produces object code
  6. Linkage produces a complete executable
  7. Loader instructs the OS how to start running the executable

This series will focus on part #6.

Let’s say you have some amazing C/C++ code, but for separations of concerns, you want to start moving it out into separate source files. Whereas previously in one file you had:

1 2 3 4 5 6 7 8 // main.c #include <stdio.h> void helper () { puts("helper"); } int main () { helper(); }

You now have two source files and maybe a header:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // main.c #include "helper.h" int main () { helper(); } // helper.h void helper(); //helper.c #include <stdio.h> #include "helper.h" void helper () { puts("helper"); }

In the single source version, we would have compiled and linked that with clang main.c and had an executable file. In the multiple source version, we first compile our source files to object files, then link them altogether. That can be done separately:

1 2 3 $ clang -c helper.c # produces helper.o $ clang -c main.o # produces main.o $ clang main.o helper.o # produces a.out

We can also do the compilation and linkage in one step:

1 $ clang helper.c main.c # produces a.out

Nothing special thus far; C/C++ 101. In the first case of separate compilation and linkage steps, we were left with intermediate object files (.o). What exactly are these?

Object files are almost full executables. They contain machine code, but that code still requires a relocation step. It also contains metadata about the addresses of its variables and functions (called symbols) in an associative data structure called a symbol table. The addresses may not be the final address of the symbol in the final executable. They also contain some information for the loader and probably some other stuff.

Remember that if we fail to specify the helper object file, we’ll get an undefined symbol error.

1 2 3 4 5 6 $ clang main.c Undefined symbols for architecture x86_64: "_helper", referenced from: _main in main-459dde.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

The problem is main.o refers to some symbol called helper, but on it’s own doesn’t contain any more information about it. Let’s say we want to know what symbols an object file contains, or expects to find elsewhere. Let’s introduce our first tool, nm. nm will print the name list or symbol table for a given object or executable file. On OSX, these are prefixed with an underscore.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ nm helper.o 0000000000000000 T _helper U _puts $ nm main.o U _helper 0000000000000000 T _main $ nm a.out ... 0000000100000f50 T _helper 0000000100000f70 T _main U _puts ...

Let’s dissect what’s going on here. The output (as understood by man 1 nm) is a space separated list of address, type, and symbol name. We can see that the addresses are placeholders in object files, and final in executables. The name should make sense; it’s the name of the function or variable. While I’d love to get in depth on the various symbol types and talk about sections, I don’t think I could do as great a job as Peter Van Der Linden in his book “Expert C Programming: Deep C Secrets.”

For our case, we just care about whether the symbol in a given object file is defined or not. The type U (undefined) means that this symbol is referenced or used in this object code/executable, but it’s value wasn’t defined here. When we compiled main.c alone and got the undefined symbol error, it should now make sense why we got the undefined symbol error for helper. main.o contains a symbol for main, and references helper. helper.o contains a symbol for helper, and references to puts. The final executable contains symbols for main and helper and references to puts.

You might be wondering where puts comes from then, and why didn’t we get an undefined symbol error for puts like we did earlier for helper. The answer is the C runtime. libc is implicitly dynamically linked to all executables created by the C compiler. We’ll cover dynamic linkage in a later post in this series.

When the linker performs relocation on the object files, combining them into a final executable, it goes through placeholders of addresses and fills them in. We did this manually in our post on JIT compilers.

While nm gave us a look into our symbol table, two other tools I use frequently are objdump on Linux and otool on OSX. Both of these provide disassembled assembly instructions and their addresses. Note how the symbols for functions get translated into labels of the disassembled functions, and that their address points to the first instruction in that label. Since I’ve shown objdump numerous times in previous posts, here’s otool.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 $ otool -tV helper.o helper.o: (__TEXT,__text) section _helper: 0000000000000000 pushq %rbp 0000000000000001 movq %rsp, %rbp 0000000000000004 subq $0x10, %rsp 0000000000000008 leaq 0xe(%rip), %rdi ## literal pool for: "helper" 000000000000000f callq _puts 0000000000000014 movl %eax, -0x4(%rbp) 0000000000000017 addq $0x10, %rsp 000000000000001b popq %rbp 000000000000001c retq $ otool -tV main.o main.o: (__TEXT,__text) section _main: 0000000000000000 pushq %rbp 0000000000000001 movq %rsp, %rbp 0000000000000004 movb $0x0, %al 0000000000000006 callq _helper 000000000000000b xorl %eax, %eax 000000000000000d popq %rbp 000000000000000e retq $ otool -tV a.out a.out: (__TEXT,__text) section _helper: 0000000100000f50 pushq %rbp 0000000100000f51 movq %rsp, %rbp 0000000100000f54 subq $0x10, %rsp 0000000100000f58 leaq 0x43(%rip), %rdi ## literal pool for: "helper" 0000000100000f5f callq 0x100000f80 ## symbol stub for: _puts 0000000100000f64 movl %eax, -0x4(%rbp) 0000000100000f67 addq $0x10, %rsp 0000000100000f6b popq %rbp 0000000100000f6c retq 0000000100000f6d nop 0000000100000f6e nop 0000000100000f6f nop _main: 0000000100000f70 pushq %rbp 0000000100000f71 movq %rsp, %rbp 0000000100000f74 movb $0x0, %al 0000000100000f76 callq _helper 0000000100000f7b xorl %eax, %eax 0000000100000f7d popq %rbp 0000000100000f7e retq

readelf -s <object file> will give us a list of symbols on Linux. ELF is the file format used by the loader on Linux, while OSX uses Mach-O. Thus readelf and otool, respectively.

Also note that for static linkage, symbols need to be unique*, as they refer to memory locations to either read/write to in the case of variables or locations to jump to in the case of functions.

1 2 3 4 5 6 7 8 9 10 11 12 $ cat double_define.c void a () {} void a () {} int main () {} $ clang double_define.c double_define.c:2:6: error: redefinition of 'a' void a () {} ^ double_define.c:1:6: note: previous definition is here void a () {} ^ 1 error generated.

*: there’s a notion of weak symbols, and some special things for dynamic libraries we’ll see in a follow up post.

Languages like C++ that support function overloading (functions with the same name but different arguments, return types, namespaces, or class) must mangle their function names to make them unique.

Code like:

1 2 3 4 5 6 7 namespace util { class Widget { public: void doSomething (bool save); void doSomething (int n); }; }

Will produce symbols like:

1 2 3 4 5 $ clang class.cpp -std=c++11 $ nm a.out 0000000100000f70 T __ZN4util6Widget11doSomethingEb 0000000100000f60 T __ZN4util6Widget11doSomethingEi ...

Note: GNU nm on Linux distros will have a --demangle option:

1 2 3 4 5 $ nm --demangle a.out ... 00000000004006d0 T util::Widget::doSomething(bool) 00000000004006a0 T util::Widget::doSomething(int) ...

On OSX, we can pipe nm into c++filt:

1 2 3 4 $ nm a.out | c++filt 0000000100000f70 T util::Widget::doSomething(bool) 0000000100000f60 T util::Widget::doSomething(int) ...

Finally, if you don’t have an object file, but instead a backtrace that needs demangling, you can either invoke c++filt manually or use

Rust also mangles its function names. For FFI or interface with C functions, other languages usually have to look for or expose symbols in a manner suited to C, the lowest common denominator. C++ has extern "C" blocks and Rust has extern blocks.

We can use strip to remove symbols from a binary. This can slim down a binary at the cost of making stack traces unreadable. If you’re following along at home, try comparing the output from your disassembler and nm before and after running strip on the executable. Luckily, you can’t strip the symbols out of object files, otherwise they’d be useless as you’d no longer be able to link them.

If we compile with the -g flag, we can create a different kind of symbol; debug symbols. Depending on your compiler+host OS, you’ll get another file you can run through nm to see an entry per symbol. You’ll get more info by using dwarfdump on this file. Debug symbols will retain source information such as filename and line number for all symbols.

This post should have been a simple refresher of some of the basics of working with C code. Finding symbols to be placed into a final executable and relocating addresses are the main job of the linker, and will be the main theme of the posts in this series. Keep your eyes out for more in this series on memory segmentation.

Categorieën: Mozilla-nl planet

Rumbling Edge - Thunderbird: 2015-02-15 Calendar builds

Thunderbird - ma, 16/02/2015 - 08:22

Common (excluding Website bugs)-specific: (36)

  • Fixed: 603933 – outlook 2007 invitation reply wrong sender
  • Fixed: 1009894 – Update internal timezone database from version 2014b to version 2015a
  • Fixed: 1070491 – Today pane/sidebar: Month and year always “Jan 5555″ on startup
  • Fixed: 1070881 – Running xpcshell tests failing because Lightning directory missing from dist/bin/extensions/
  • Fixed: 1083374 – Calendar xpcshell and mozmill tests failing after OS X signing changes
  • Fixed: 1095119 – Remove Promise.defer usage
  • Fixed: 1101175 – Accepting inviations doesn’t work as expected (403 forbidden)
  • Fixed: 1110881 – Google login popup gives no context
  • Fixed: 1116227 – String shims are defined incorrectly
  • Fixed: 1116305 – Lightning 3.3.2 still speaks only English in TB 31.3.
  • Fixed: 1116882 – calRecurrenceRule tries to set a non-numeric BYMONTHDAY rule
  • Fixed: 1117339 – Thunderbird 24 doesn’t support using Promise as a constructor
  • Fixed: 1117340 – Task lists don’t work for calendar entries without a calendar
  • Fixed: 1117341 – Outdated client message shown when using obsolete token
  • Fixed: 1117540 – useDefault not correctly set if there are no default alarms
  • Fixed: 1117541 – Fix and run xpcshell tests for the provider
  • Fixed: 1120163 – Warning: Property contained reference to invalid variable
  • Fixed: 1120258 – Saving an item in the event dialog fails with MODIFICATION_FAILED if the item has been modified elsewhere
  • Fixed: 1120669 – Details button in imipBar is not always reset
  • Fixed: 1121156 – Converting to event broken for locales without an alphabet
  • Fixed: 1121373 – “Other month” day label in month view have a different color
  • Fixed: 1121415 – Replace timezones.sqlite with a non-binary format
  • Fixed: 1123088 – Label for calendar alarm preview button should be “play”
  • Fixed: 1123207 – Sea Monkey Calendar has disappeared
  • Fixed: 1124152 – Move shims from gdataUtils to shim/ subdirectory
  • Fixed: 1124154 – Wait for parsing to complete before completing synchronization
  • Fixed: 1124640 – Excessive drop-downs and other widths in Lightning’s options – Calendar pane tabs
  • Fixed: 1126338 – Cannot create Google event with addItem() with attendees and no organizer
  • Fixed: 1127247 – Typo in timezone JSON property
  • Fixed: 1128105 – Meeting Accept/Decline buttons not appearing on incoming meeting invitations
  • Fixed: 1128258 – Error in attendee invitation dialog
  • Fixed: 1128293 – TEST-UNEXPECTED-FAIL | xpcshell-icaljs.ini:calendar/test/unit/test_alarmservice.js | test_addItems – [test_addItems : 12] false == true
  • Fixed: 1129094 – [Error: ics-service doesn’t recognize own tzid: floating] [TypeError: aComponent is null] in calTimezoneService.js
  • Fixed: 1129857 – Update timezones to 2015a
  • Fixed: 1130841 – Fix the TodayLabel color for systemcolors
  • Fixed: 1130902 – Notifications are not sent when modifying events

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Categorieën: Mozilla-nl planet

Rumbling Edge - Thunderbird: 2015-02-15 Thunderbird comm-central builds

Thunderbird - ma, 16/02/2015 - 08:21

Thunderbird-specific: (27)

  • Fixed: 325458 – Recipient Autocomplete: Nickname does not get highest precedence for matching address book entries, for searchphrase==nickname [To, CC, addressing field/area, toplisted, priority, results]
  • Fixed: 526429 – Theme preview should be made branding-aware or branding-agnostic
  • Fixed: 588759 – Make sure status bar messages have proper punctuation
  • Fixed: 742248 – Cannot scroll message window from the input area
  • Fixed: 790539 – Participant list does not update properly while chat tab is inactive
  • Fixed: 926181 – Thunderbird 24 OSX freezes on startup with profile on network drive (AFP)
  • Fixed: 986978 – Add Data Choices Tab to preferences, with GUI option to enable/disable Crash Reporter
  • Fixed: 1084653 – Recipient autocomplete: Increase maximum default number of result entries immediately visible in dropdown from current limit of 4 contacts
  • Fixed: 1085382 – unable to create the phishing warden: [Exception… “Not enough arguments [nsIUrlListManager.registerTable]” nsresult: “0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)” location: “JS frame :: file:///REF-OBJ-DIR/objdir-tb3/dist/bin/components/nsPhishingProtec
  • Fixed: 1100330 – ReferenceError: reference to undefined property this._actualWorker in gloda/indexer.js
  • Fixed: 1108251 – Review styling for threadpane icons/columns on all platforms
  • Fixed: 1113863 – Windows 7 Debug failing all tests | Exception: Sorry, cannot connect to jsbridge extension, port 24242
  • Fixed: 1117060 – remove deprecated let expressions in comm-central
  • Fixed: 1117496 – The Chat toolbar don’t use the inverted icons on dark LW-themes
  • Fixed: 1117526 – Selected tab shows bottom border when using LW-theme
  • Fixed: 1118395 – “create filter from message” message header context menu for non-address should trigger only for right click
  • Fixed: 1120136 – C-C: mailnews/local/src/nsPop3Sink.{h,cpp} variable m_inboxOutputStream is no longer used.
  • Fixed: 1120179 – [in-content preferences] orange stripe is missing on main navigation
  • Fixed: 1120181 – [in-content preferences] jumping icon when switching preference category
  • Fixed: 1120183 – [in-content preferences] titles of subcategories are underlined, not in Firefox
  • Fixed: 1121107 – Consider patching mozmill to be able to run in the mozharness virtualenv
  • Fixed: 1121143 – onFolderRemovedFromQ “canceled” undefined (wrong scope)
  • Fixed: 1121566 – TEST-UNEXPECTED-FAIL | dom/presentation/tests/xpcshell/test_presentation_device_manager.js | xpcshell return code: 0
  • Fixed: 1124736 – Move PREF_JS_EXPORTS to in c-c
  • Fixed: 1126859 – comm-central compilation error: ‘PL_DHashTableLookup’ was not declared in this scope, etc.
  • Fixed: 1127199 – getValidRFC5322Date returns wrong date in some instances.
  • Fixed: 1133022 – Error: …\installer\package-manifest:151: Missing file(s): bin/components/imgicon.xpt

MailNews Core-specific: (22)

  • Fixed: 479823 – archive filter rules: when Archive function is used a special set of filters marked to activate at ‘Archive time’ should be invoked, not the built-in archive function
  • Fixed: 498814 – “Compact Folder” silently fails and deletes .msf, if mail folder file is opened by other software (in the worst case, generates null mail folder file or deletes mail folder file)
  • Fixed: 558659 – Support IMAP LIST SPECIAL-USE (RFC 6154) to autoconfigure Sent, Trash, Draft folders on IMAP servers
  • Fixed: 675448 – “Save as …” multiple mails fails because of long pathnames and doesn’t notice the user
  • Fixed: 771643 – deleting or moving messages doesn’t delete messages from the filesystem when using Maildir Lite(IMAP. No way to expunge/delete files under cur as offline-store file when maildirstore, because “Compact” is completely killed by maldirstore even though IMAP)
  • Fixed: 847183 – After new account has been added in the account manager, it doesn’t show up there until closing and reopening it, only directly visible in folder pane
  • Fixed: 854798 – Compacting Berkeley Mbox file changes messageKey (to new MsgOffset after compact), causing dataloss/privacy problems (bug 817245 / bug 799450, bug 766495) due to current design problem of MsgKey=MsgOffset (for Berkeley Mbox files)
  • Fixed: 894012 – convert expungedBytes to 64bit
  • Fixed: 912216 – Temporarily disable CONDSTORE support for many “GMail IMAP + Thunderbird/SeaMonkey” users
  • Fixed: 934170 – mozilla/mach xpcshell-test does not work for comm-central
  • Fixed: 964024 – mozTXTToHTMLConv should never convert content inside <style>, <script>, <head> tags
  • Fixed: 1113275 – Make tests dependent on imapPump work with maildir
  • Fixed: 1117199 – reset mailnews.send_default_charset and mailnews.view_default_charset if they had values no longer supported
  • Fixed: 1118027 – fix some compile warnings in compose/src/nsMsgSend.cpp
  • Fixed: 1120067 – RSS (2.0?) feeds not updating and not being added.
  • Fixed: 1121482 – Remove PL_DHashTableOperate from comm-central
  • Fixed: 1121488 – port changes from bug 1120476 and bug 1121304 to comm-central
  • Fixed: 1122346 – Check if draft message is in db before deleting
  • Fixed: 1123117 – fixIterator should support for-of iteration
  • Fixed: 1124118 – Follow up nsIProgressEventSink.onProgress and nsITransport.onTransportStatus changes by bug 1116867
  • Fixed: 1125672 – PROCESS-CRASH | mailnews/imap/test/unit/test_mailboxes.js | application crashed [@ nsWeakReference::Release()]
  • Fixed: 1132271 – Port bug 1001332 to comm-beta to allow xp to work in Thunderbird beta 36

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Categorieën: Mozilla-nl planet

Meeting Notes: Thunderbird: 2015-02-10

Thunderbird - wo, 11/02/2015 - 05:00

Thunderbird meeting notes 2015-02-10. Previous meetings:


aceman, cloep, florian, jcranmer, Jorg K, mkmelin, Paneglab, rkent, Roland, sshagarwal, wsmwk, MakeMyDay

Action items from last meetings
  • wsmwk to get in touch with Standard8 re: beta.
    • done – bkerensa and sylvestre are on it
  • rkent to work with Standard8 (and Fallen) on issues of of tracking flags and 2. pushing into aurora and beta for TB 38. (meeting generally agreed that mkmelin and rkent would be appropriate to manage pushing patches forward into aurora and beta).
Critical Issues

Critical bugs. Please leave these here until they’re confirmed fixed.

  • Auto-complete improvements – some of those could go into esr31

Release Issues

  • Current beta blocked due to Windows XP failures. rkent has try server configuration that can test a beta build, and will try Standard8’s suggestions.
  • Thunderbird 38 moves to Earlybird ~ February 24, 2015

We need people to commit to being mentors.

Lightning to Thunderbird Integration


  • As underpass has pointed out repeatedly (thanks for your patience!) , we need to rewrite / heavily modify the lightning articles on let me know irc: rolandtanglao on #tb-support-crew or rtanglao AT OR simply start editing the articles
Round Table JosiahOne
  • So I started a new job recently, but because of that plus school, my time for TB stuff is very, very low. I will continue doing ui-reviews and reviews, but implementing anything has pretty much come to an end until summer break.
  • release management
  • disable HWA for 38? it has been suggested by someone in support to disable because “3d acceleration … does little or nothing for Thunderbird but messes menus, font and causes crashes (the kind with no crash reporter reports).” bug 1131879
  • Hot bugs
    • bug 1125577 – startup crash in NSSCryptoContext_FindCertificateByEncodedCertificate (and similar bug 1128614)
    • bug 1124015 – Add UI to select maildir for storage when creating accounts
    • bug 1119529 – Sending message succeeds but Error “error while running message filters on it.”
  • Unfortunately a long review queue that I will be looking at for the next few days.
  • I now have access to Thunderbird ADI data. Our ADI reached a new peak last month (in spite of SlashDot assuming “Thunderbird usage is dropping”) and Japan has now surpassed US as #2 country (after Germany).
  • Hopefully going to work down my review queue by this weekend
  • Main jsmime perf regression fixes are r? rkent
  • I have a non-promisified version of OAuth2, but still no UI hookup
  • Mozharness-based mozmill tests: I’ve updated the runner, need to make updates to three or four repositories to make it work
    • Trying to get this in progress for Thunderbird 38, so we don’t need to maintain the old mozmill buildbot stuff for ESR
  • I’ve been doing some work with the emailjs team to add functionality to their SMTP libraries (specifically with regards to SASL) that we could share between TB/ email teams.
TheOne Jorg K

I have an XP machine (32 bit), I could run (not build) and debug (with WinDbg) the beta, if that’s of any help. I’d need to know where do download it … and the mentioned suggestions to try. (Contact via e-mail to start off).

  • autocomplete:
    • the critical regressions fixed
    • 3 prominent complaints still not done: the “tab too quickly doesn’t complete”, “show as red even if found”, “insert link missing paste url in context menu”
    • ordering: now landed on esr, some complaints still, need to investigate
Question Time

I’d like to know what happened to the “Thunderbird Discussions with Mozilla”, ie. the letter that was meant to be sent to the Mozilla management, re. funding, donations, staffing, etc. There was a lively discussion on the tb-planning mailing list in early January 2015.

  • won’t happen before 38 branching
Support team
  • As underpass has pointed out, we need to rewrite all the Lightning articles, they are out of date whether or not we finish the integration for TB 38. email me or irc roland or just edit the articles (see above under “Lightning to Thunderbird integration”. Tonnes do you have time to write some of these Lightning articles in English?
  • Note – meeting notes must be copied from etherpad to wiki before 5AM CET next day so that they will go public in the meeting notes blog.

(Extra) Meeting next Tuesday, Feb 17.

Action Items


Retrieved from “

Categorieën: Mozilla-nl planet

Bryan Clark: If writing is a muscle

Thunderbird - di, 10/02/2015 - 08:07

I haven’t been to the gym in a long time.

David Eaves, a person I have immense amounts of respect for, has been using a tag line related to this title/intro on his blog for quite a while, probably longer than I’ve known him.  And I honestly never gave much thought to the idea that writing really is a muscle until recently. I’ve taken a break from being a designer (or a programmer) to work as a product manager for over a year now. Designing and coding require a set of skills I’m very familiar with, code is an interpretive language that people use to communicate with each other about the details of commands they issue a computer. While design is a more visual language of storytelling, heavily using imagery and some text to convey the journey of a user to the team intent on correctly interacting with that user.  Both pursuits are about communication but each uses written language in a very different way.  As a product manager I’m forced to lean on my skills as a writer and I don’t think I had much in the way of skills previously but whatever bedridden muscles have been dormant are reawakening as I realize how young and foolish I really was to ignore this essential form of communication.

I’m hoping there is more to come, perhaps starting with some tech posts about recent projects while I try to grapple with this idea of writing more than a tweet.

Categorieën: Mozilla-nl planet