Mozilla Nederland LogoDe Nederlandse

Abonneren op feed Thunderbird
Planet Thunderbird -
Bijgewerkt: 14 uur 18 min geleden

Mike Conley: The Joy of Coding (Ep. 11): Cleaning up the View Source Patch

za, 25/04/2015 - 23:22

For this episode, Richard Milewski and I figured out the syncing issue I’d been having in Episode 9, so I had my head floating in the bottom right corner while I hacked. Now you can see what I do with my face while hacking, if that’s a thing you had been interested in.

I’ve also started mirroring the episodes to YouTube, if YouTube is your choice platform for video consumption.

So, like last week, I was under a bit of time pressure because of a meeting scheduled for 2:30PM (actually the meeting I was supposed to have the week before – it just got postponed), so that gave me 1.5 hours to move forward with the View Source work we’d started back in Episode 8.

I started the episode by explaining that the cache key stuff we’d figured out in Episode 9 was really important, and that a bug had been filed by the Necko team to get the issue fixed. At the time of the video, there was a patch up for review in that bug, and when we applied it, we were able to retrieve source code out of the network cache after POST requests! Success!

Now that we had verified that our technique was going to work, I spent the rest of the episode cleaning up the patches we’d written. I started by doing a brief self-code-review to smoke out any glaring problems, and then started to fix those problems.

We got a good chunk of the way before I had to cut off the camera.

I know back when I started working on this particular bug, I had said that I wanted to take you through right to the end on camera – but the truth of the matter is, the priority of the bug went up, and I was moving too slowly on it, since I was restricting myself to a few hours on Wednesdays. So unfortunately, after my meeting, I went back to hacking on the bug off-camera, and yesterday I put up a patch for review. Here’s the review request, if you’re interested in seeing where I got to!

I felt good about the continuity experiment, and I think I’ll try it again for the next few episodes – but I think I’ll choose a lower-priority bug; that way, I think it’s more likely that I can keep the work contained within the episodes.

How did you feel about the continuity between episodes? Did it help to engage you, or did it not matter? I’d love to hear your comments!

Episode Agenda


Bug 1025146 – [e10s] Never load the source off of the network when viewing sourceNotes

Categorieën: Mozilla-nl planet

Meeting Notes: Thunderbird: 2015-04-21

wo, 22/04/2015 - 05:00

Thunderbird meeting notes 2015-04-21. NOON PT (Pacific). Check for meeting time conversion, previous meeting notes and call-in details


ATTENDEES – put your nick 1. below 2. in comments unless explicit under round table 3. top right of etherpad next to your color

mkmelin, rolandt, pegasus, makemyday jorgk, rkent, gneandr, aceman, merike, Paenglab, wsmwk

Action items from last meetings
  • (rkent, Fallen) AMO addon compat: TheOne said that this late it is probably not worth doing at all. WIth so many other things for me to do, that sounds like a plan.
Friends of the tree
  • glandium, for fixing the various packager bugs that will help package Lightning (nominated by Fallen, who won’t be at the meeting)
Critical Issues

Critical bugs. Leave these here until they’re confirmed fixed. If confirmed, then remove.

  • (rkent) I am enormously frustrated by the inability to get two critical features landed in tb 38: OAuth and Lightning integration. Can we please give this very high priority?
    • OAuth integration: partial landing for beta 2, really REALLY critical that we get this finished.
  • In general, the tracking-tb38 flag shows what are critical issues. In the next week or so, that list will be culled to only include true blockers for the Thunderbird 38 release. There will still be many.
  • I don’t think we have a reasonable chance of shipping a quality release on May 12. More realistic is June 2.
  • We need to decide on how to do release branching. I am uncertain whether Lightning integration requires this or not.
  • Auto-complete improvements – some could go into esr31 (bug 1042561 included in TB38)
  • Lightning integration (below) really REALLY critical that we get this finished.
  • maildir UI: nothing more to do for UI, still want to land a patch for letting IMAP set this.
  • gloda IM search regressions: mostly fixed, some db cleanup necessary for users of TB33+ that nhnt11 will hopefully have ready to land soon.
    • aleth landed a fix to stop duplicated entries from appearing, nhnt11 will take care of the cleaning up the databases of Aurora/Beta/Daily users this weekend and keep us updated
  • bug 1140884, might need late-l10n

removing from critical list/fixed:

  • ldap crash bug 1063829: a patch in beta 37, beta results are unclear – not seen in 38
  • bug 1064230 crashes during LDAP search made worse by Search All Addressbooks bug 170270, needs tracking 38+ and review?rkent/jcranmer – not seen in 38
  • everyone should probably skim version 31-38 regressions for items they can help fix or direct to the right people
  • Past
    • 31.6.0 shipped
    • 38.0b1 shipped 2015-04-03
    • 38.0b2 shipped 2015-04-20
  • Upcoming
    • 38.0b3 (when?)
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

Unfortunately not much progress because I was away. I hope to have the packaging bits done until the weekend. Glandium did a great job on the changes, hence I nominated him for Friends of the Tree. (fallen)

MakeMyDay should comment on the opt-out dialog, I think we should get it landed asap. bug 1130852 – Opt-Out dialog had some discussion on prefs

Round Table wsmwk
  • managed shipping of 31.6.0, 38.0b1, 38.0b2
Jorg K rkent
  • We have the beginnings of a business development group (rkent, wsmwk, magnus) that after signing NDAs will be given access to Thunderbird business documentation.
  • bug 1134986 autocomplete bug investigated and landed on trunk +++
aceman Question Time

— PLEASE INCLUDE YOUR NICK with your bullet item —

  • What happened to the Avocet branding? (Jorg K)
    • won’t be persued
  • Info about the meeting with Mitchell Baker on 20th March 2015, funding issues (Jorg K)
  • can we get hiro’s bugs reassigned so the patches contained can get landed, and not lost? (wsmwk)
  • It would be great if some jetpack add-on support were available in thunderbird to share functionality with firefox and fennec. See also bug 1100644. No useful jetpack add-ons seem to exist for thunderbird (earlybird would be fine to use jpm over cfx). Are there any jetpack add-ons available to prove me wrong?

(pegasus) Is it worth looking at going to a 6-week release schedule to avoid the conundrum with getting not-quite-ready features in vs delaying?

Support team
  • Reminder: Roland is leaving Thunderbird May 12, 2015 after the release of Thunderbird 38: working on Thunderbird 38 plan and finally kickstarting Thunderbird User Success Council
    • looking for 3 people: English KB Article Editor, L10N Coordinator and Forum Lead. Is that you we’re looking for? If so email rtanglao AT or ping  :rolandtanglao in #sumo or #tb-support-crew
  • 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.
Action Items
  • wsmwk to pat glandium
  • wsmwk to email hiro’s bug list to tb-planning
  • rkent to review tracking list
Retrieved from “

Categorieën: Mozilla-nl planet

Rumbling Edge - Thunderbird: 2015-04-20 Calendar builds

wo, 22/04/2015 - 04:17

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

  • Fixed: 1003196 – Add icons to more imip bar buttons
  • Fixed: 1137673 – extra divider in the options menu of new task dialog
  • Fixed: 1146500 – Wrong first occurrence for monthly recurrence with BYDAY and BYMONTHDAY
  • Fixed: 1150707 – Make use of tags for running only icaljs/libcal tests
  • Fixed: 1150882 – Lightning incorrectly unified after bug 1143163
  • Fixed: 1151404 – Nightly Windows x64 lightning hits 404 when updating

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-04-20 Thunderbird comm-central builds

wo, 22/04/2015 - 04:16

Thunderbird-specific: (27)

  • Fixed: 768480 – Mac OSX TB 13 crashes in nsMsgDBFolder::CreateFileForDB when going online. Caused by folder subscribed on server that no longer exists?
  • Fixed: 849540 – Log in to Gmail (IMAP/SMTP) using OAuth in backend
  • Fixed: 939462 – Feature to count and show number of unread e-mails in subfolders should be optional. (because enumeration is slow)
  • Fixed: 1054308 – Investigate switching Thunderbird comm-central MozMill tests to mozharness
  • Fixed: 1118263 – C-C TB: JavaScript 1.6’s for-each-in loops are deprecated in accountprovisioner and about-support
  • Fixed: 1130852 – Add opt-out notification for calendar integration
  • Fixed: 1134234 – resource://app/modules/gloda/mimemsg.js should be resource:///modules/gloda/mimemsg.js in /mail/test/mozmill/shared-modules/test-message-helpers.js
  • Fixed: 1134986 – Address autocomplete sorting wrong – appears to ignore recent use (popularityindex) information in 31.4.0+
  • Fixed: 1138478 – ‘Write’ toolbar button disabled/greyed out after opening the menus in the Saved Files tab
  • Fixed: 1139524 – Font indicator doesn’t update when cursor is placed in text with this font
  • Fixed: 1140720 – Error reading font prefs in the Slovenian locale
  • Fixed: 1145970 – Port Bug 1005105 to TB [Remove noise from tab textures]
  • Fixed: 1145974 – Move more styles to shared addressbook.css
  • Fixed: 1147006 – TB shows instructions with [File] – [Offline] – [Synchronize] instead of [Download/Sync Now]
  • Fixed: 1147526 – Port Bug 1147311: migrateUI() should migrate to a supported value
  • Fixed: 1148369 – “invalid ‘in’ operand colState” when switching folders
  • Fixed: 1148503 – TEST-UNEXPECTED-FAIL | toolkit/components/telemetry/tests/unit/test_TelemetryPing.js | xpcshell return code: 0
  • Fixed: 1149275 – Ensure newly opened conversations get focused
  • Fixed: 1150051 – C-C TB: EXCEPTION: formatted size is not numeric: ‘Read’
  • Fixed: 1150073 – C-C TB: Exception: Found visible column ‘correspondentCol’ but was expecting ‘recipientCol’!
  • Fixed: 1151223 – Reorder mail’s to minimize differences to browser’s version
  • Fixed: 1152045 – Email address missing from “From” field on emails sent through Thunderbird 38 if the identityName pref was set
  • Fixed: 1152852 – Notification sound for highlights in chats not played if chat tab is selected, even when Thunderbird is not the currently active/focused application (in background)
  • Fixed: 1153511 – TEST-UNEXPECTED_FAIL | | build file copies are not in sync: differing file: ./win32/mozconfig.vs2013-win64
  • Fixed: 1153551 – Priority button : description missing
  • Fixed: 1154799 – “this._browser.messageManager is undefined” error just by starting Thunderbird
  • Fixed: 1156049 – Port ‘Bug 1155476 – Update sccache to 155c926’ to fix failure.

MailNews Core-specific: (30)

  • Fixed: 306035 – mail server appended to usernames with “@” (Password dialog for IMAP says <alias>@<domain>@<mailserver> instead of <alias>@<domain> on(at/…) <mailserver>)
  • Fixed: 662907 – web site from RSS feed not rendered correctly (due to noscript tags)
  • Fixed: 810495 – Make the classes which use the XPCOM nsISupports implementation macros final, to avoid the warning about deleting using a pointer to a base class with virtual functions and no virtual dtor
  • Fixed: 1123124 – Remove use of expression closures in mailnews/
  • Fixed: 1126607 – Kill the LDAP build system
  • Fixed: 1132218 – Update comm-central for PLDHashTable changes in bug 1131901
  • Fixed: 1139167 – Some birthdays are off by one day in Thunderbird’s addressbook
  • Fixed: 1139965 – Implement function to export addressbook in vCard format
  • Fixed: 1140652 – deduplicate some JS code writing out a simple string to a file in profile
  • Fixed: 1140884 – An error occurred while sending mail garbled
  • Fixed: 1141735 – unaligned labels in the LDAP server Advanced properties tab
  • Fixed: 1144621 – mimemsg.cpp might leak memory in some instances
  • Fixed: 1144719 – Allow the user to decide whether or not to use libnotify for new-mail alerts on Linux
  • Fixed: 1148887 – Message string for SMTP server connection error is incorrect. File:, key: smtpSendRefused
  • Fixed: 1148888 – Message string for SMTP server connection error is incorrect. File:, key: smtpAuthNotSupported
  • Fixed: 1148957 – Port bug 1148463 by backing out bug 1144128: temporarily disable new performance tools for Aurora uplift
  • Fixed: 1149247 – remove deprecated for-each-in loops in the account manager and account wizard
  • Fixed: 1150176 – Remove nsMemory::Alloc/Free/Realloc from c-c following their removal in bug 1134920
  • Fixed: 1150967 – Port Bug 1147839 to comm-central – Fix building installer on mingw by only including helper.exe if mknsisu is used
  • Fixed: 1150981 – Port Bug 674779 to comm-central – Add per-compartment CPU accounting
  • Fixed: 1151002 – Port Bug 1120308 to comm-central – [Presentation WebAPI] control protocol establishment and offer-answer exchange
  • Fixed: 1151181 – uninitialized error string in mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
  • Fixed: 1152287 – TEST-UNEXPECTED-FAIL | crypto | Failed to find the appropraite data_path
  • Fixed: 1153187 – Build process is broken while reticulating splines “Variable SHARED_LIBRARY_LIBS” involved.
  • Fixed: 1153543 – when adding a new identity, the smtp server menulist is collapsed with no default item selected
  • Fixed: 1153557 – do away with preprocessing in am-identity-edit.js due to identity.autocompleteToMyDomain
  • Fixed: 1154468 – unused function getServerIdAndPageIdFromTree in am-identity-edit.xul
  • Fixed: 1155951 – Fix a non-array delete for scalars
  • Fixed: 1155953 – Remove Structurally dead code in nsNNTPProtocol.cpp
  • Fixed: 1155955 – remove a self assignment in nsImapUtils.cpp

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

Mike Conley: Things I’ve Learned This Week (April 13 – April 17, 2015)

zo, 19/04/2015 - 00:33
When you send a sync message from a frame script to the parent, the return value is always an array


// Some contrived code in the browser let browser = gBrowser.selectedBrowser; browser.messageManager.addMessageListener("GIMMEFUE,GIMMEFAI", function onMessage(message) { return "GIMMEDABAJABAZA"; }); // Frame script that runs in the browser let result = sendSendMessage("GIMMEFUE,GIMMEFAI"); console.log(result[0]); // Writes to the console: GIMMEDABAJABAZA

From the documentation:

Because a single message can be received by more than one listener, the return value of sendSyncMessage() is an array of all the values returned from every listener, even if it only contains a single value.

I don’t use sync messages from frame scripts a lot, so this was news to me.

You can use [cocoaEvent hasPreciciseScrollingDeltas] to differentiate between scrollWheel events from a mouse and a trackpad

scrollWheel events can come from a standard mouse or a trackpad1. According to this Stack Overflow post, one potential way of differentiating between the scrollWheel events coming from a mouse, and the scrollWheel events coming from a trackpad is by calling:

bool isTrackpad = [theEvent hasPreciseScrollingDeltas];

since mouse scrollWheel is usually line-scroll, whereas trackpads (and Magic Mouse) are pixel scroll.

The srcdoc attribute for iframes lets you easily load content into an iframe via a string

It’s been a while since I’ve done web development, so I hadn’t heard of srcdoc before. It was introduced as part of the HTML5 standard, and is defined as:

The content of the page that the embedded context is to contain. This attribute is expected to be used together with the sandbox and seamless attributes. If a browser supports the srcdoc attribute, it will override the content specified in the src attribute (if present). If a browser does NOT support the srcdoc attribute, it will show the file specified in the src attribute instead (if present).

So that’s an easy way to inject some string-ified HTML content into an iframe.

Primitives on IPDL structs are not initialized automatically

I believe this is true for structs in C and C++ (and probably some other languages) in general, but primitives on IPDL structs do not get initialized automatically when the struct is instantiated. That means that things like booleans carry random memory values in them until they’re set. Having spent most of my time in JavaScript, I found that a bit surprising, but I’ve gotten used to it. I’m slowly getting more comfortable working lower-level.

This was the ultimate cause of this crasher bug that dbaron was running into while exercising the e10s printing code on a debug Nightly build on Linux.

This bug was opened to investigate initializing the primitives on IPDL structs automatically.

Networking is ultimately done in the parent process in multi-process Firefox

All network requests are proxied to the parent, which serializes the results back down to the child. Here’s the IPDL protocol for the proxy.

On bi-directional text and RTL

gw280 and I noticed that in single-process Firefox, a <select> dropdown set with dir=”rtl”, containing an <option> with the value “A)” would render the option as “(A”.

If the value was “A) Something else”, the string would come out unchanged.

We were curious to know why this flipping around was happening. It turned out that this is called “BiDi”, and some documentation for it is here.

If you want to see an interesting demonstration of BiDi, click this link, and then resize the browser window to reflow the text. Interesting to see where the period on that last line goes, no?

It might look strange to someone coming from a LTR language, but apparently it makes sense if you’re used to RTL.

I had not known that.

Some terminal spew Some terminal spew

Now what’s all this?

My friend and colleague Mike Hoye showed me the above screenshot upon coming into work earlier this week. He had apparently launched Nightly from the terminal, and at some point, all that stuff just showed up.

“What is all of that?”, he had asked me.

I hadn’t the foggiest idea – but a quick DXR showed inside Breakpad, the tool used to generate crash reports when things go wrong.

I referred him to bsmedberg, since that fellow knows tons about crash reporting.

Later that day, mhoye got back to me, and told me that apparently this was output spew from Firefox’s plugin hang detection code. Mystery solved!

So if you’re running Firefox from the terminal, and suddenly see some stuff show up… a plugin you’re running probably locked up, and Firefox shanked it.

  1. And probably a bunch of other peripherals as well 

Categorieën: Mozilla-nl planet

Mike Conley: The Joy of Coding (Ep. 10): The Mystery of the Cache Key

za, 18/04/2015 - 23:40

In this episode, I kept my camera off, since I was having some audio-sync issues1.

I was also under some time-pressure, because I had a meeting scheduled for 2:30 ET2, giving me exactly 1.5 hours to do what I needed to do.

And what did I need to do?

I needed to figure out why an nsISHEntry, when passed to nsIWebPageDescriptor’s loadPage, was not enough to get the document out from the HTTP cache in some cases. 1.5 hours to figure it out – the pressure was on!

I don’t recall writing a single line of code. Instead, I spent most of my time inside XCode, walking through various scenarios in the debugger, trying to figure out what was going on. And I eventually figured it out! Read this footnote for the TL;DR:3

Episode Agenda


Bug 1025146 – [e10s] Never load the source off of the network when viewing sourceNotes

  1. I should have those resolved for Episode 11! 

  2. And when the stream finished, I found out the meeting had been postponed to next week, meaning that next week will also be a short episode. :( 

  3. Basically, the nsIChannel used to retrieve data over the network is implemented by HttpChannelChild in the content process. HttpChannelChild is really just a proxy to a proper nsIChannel on the parent-side. On the child side, HttpChannelChild does not implement nsICachingChannel, which means we cannot get a cache key from it when creating a session history entry. With no cache key, comes no ability to retrieve the document from the network cache via nsIWebDescriptor’s loadPage. 

Categorieën: Mozilla-nl planet

Mike Conley: Things I’ve Learned This Week (April 6 – April 10, 2015)

zo, 12/04/2015 - 16:50
It’s possible to synthesize native Cocoa events and dispatch them to your own app

For example, here is where we synthesize native mouse events for OS X. I think this is mostly used for testing when we want to simulate mouse activity.

Note that if you attempt to replay a queue of synthesized (or cached) native Cocoa events to trackSwipeEventWithOptions, those events might get coalesced and not behave the way you want. mstange and I ran into this while working on this bug to get some basic gesture support working with Nightly+e10s (Specifically, the history swiping gesture on OS X).

We were able to determine that OS X was coalescing the events because we grabbed the section of code that implements trackSwipeEventWithOptions, and used the Hopper Disassembler to decompile the assembly into some pseudocode. After reading it through, we found some logging messages in there referring to coalescing. We noticed that those log messages were only sent when NSDebugSwipeTrackingLogic was set to true, we executed this:

defaults write org.mozilla.nightlydebug NSDebugSwipeTrackingLogic -bool YES

In the console, and then re-ran our swiping test in a debug build of Nightly to see what messages came out. Sure enough, this is what we saw:

2015-04-09 15:11:55.395 firefox[5203:707] ___trackSwipeWithScrollEvent_block_invoke_0 coalescing scrollevents 2015-04-09 15:11:55.395 firefox[5203:707] ___trackSwipeWithScrollEvent_block_invoke_0 cumulativeDelta:-2.000 progress:-0.002 2015-04-09 15:11:55.395 firefox[5203:707] ___trackSwipeWithScrollEvent_block_invoke_0 cumulativeDelta:-2.000 progress:-0.002 adjusted:-0.002 2015-04-09 15:11:55.396 firefox[5203:707] ___trackSwipeWithScrollEvent_block_invoke_0 call trackingHandler(NSEventPhaseChanged, gestureAmount:-0.002)

This coalescing means that trackSwipeEventWithOptions is only getting a subset of the events that we’re sending, which is not what we had intended. It’s still not clear what triggers the coalescing – I suspect it might have to do with how rapidly we flush our native event queue, but mstange suspects it might be more sophisticated than that. Unfortunately, the pseudocode doesn’t make it too clear.

String templates and toSource might run the risk of higher memory use?

I’m not sure I “learned” this so much, but I saw it in passing this week in this bug. Apparently, there was some section of the Marionette testing framework that was doing request / response logging with toSource and some string templates, and this caused a 20MB regression on AWSY. Doing away with those in favour of old-school string concatenation and JSON.stringify seems to have addressed the issue.

When you change the remote attribute on a <xul:browser> you need to re-add the <xul:browser> to the DOM tree

I think I knew this a while back, but I’d forgotten it. I actually re-figured it out during the last episode of The Joy of Coding. When you change the remoteness of a <xul:browser>, you can’t just flip the remote attribute and call it a day. You actually have to remove it from the DOM and re-add it in order for the change to manifest properly.

You also have to re-add any frame scripts you had specially loaded into the previous incarnation of the browser before you flipped the remoteness attribute.1

Using Mercurial, and want to re-land a patch that got backed out? hg graft is your friend!

Suppose you got backed out, and want to reland your patch(es) with some small changes. Try this:

hg update -r tip hg graft --force BASEREV:ENDREV

This will re-land your changes on top of tip. Note that you need –force, otherwise Mercurial will skip over changes it notices have already landed in the commit ancestry.

These re-landed changes are in the draft stage, so you can update to them, and assuming you are using the evolve extension2, and commit –amend them before pushing. Voila!

Here’s the documentation for hg graft.

  1. We sidestep this with browser tabs by putting those browsers into “groups”, and having any new browsers, remote or otherwise, immediately load a particular set of framescripts. 

  2. And if you’re using Mercurial, you probably should be. 

Categorieën: Mozilla-nl planet

Mike Conley: The Joy of Coding (Ep. 9): More View Source Hacking!

vr, 10/04/2015 - 19:00

In this episode1, I continued the work we had started in Episode 8, by trying to make it so that we don’t hit the network when viewing the source of a page in multi-process Firefox.

It was a little bit of a slog – after some thinking, I decided to undo some of the work we had done in the previous episode, and then I set up the messaging infrastructure for talking to the remote browser in the view source window.

I also rebased and landed a patch that we had written in the previous episode, after fixing up some nits2.

Then, I (re)-learned that flipping the “remote” attribute of a browser is not enough in order for it to run out-of-process; I have to remove it from the DOM, and then re-add it. And once it’s been re-added, I have to reload any frame scripts that I had loaded in the previous incarnation of the browser.

Anyhow, by the end of the episode, we were able to view the source from a remote browser inside a remote view source browser!3 That’s a pretty big deal!

Episode Agenda


Bug 1025146 – [e10s] Never load the source off of the network when viewing sourceNotes

  1. A note that I also tried an experiment where I keep my camera running during the entire session, and place the feed into the bottom right-hand corner of the recording. It looks like there were some synchronization issues between audio and video, which are a bit irritating. Sorry about that! I’ll see what I can do about that. 

  2. and dropping a nit having conversed with :gabor about it 

  3. We were still loading it off the network though, so I need to figure out what’s going on there in the next episode. 

Categorieën: Mozilla-nl planet

Mike Conley: Things I’ve Learned This Week (March 30 – April 3, 2015)

za, 04/04/2015 - 18:00

This is my second post in a weekly series, where I attempt to distill my week down into some lessons or facts that I’ve picked up. Let’s get to it!

ES6 – what’s safe to use in browser development?

As of March 27, 2015, ES6 classes are still not yet safe for use in production browser code. There’s code to support them in Firefox, but they’re Nightly-only behind a build-time pref.

Array.prototype.includes and ArrayBuffer.transfer are also Nightly only at this time.

However, any of the rest of the ES6 Harmony work currently implemented by Nightly is fair-game for use, according to jorendorff. The JS team is also working on a Wiki page to tell us Firefox developers what ES6 stuff is safe for use and what is not.

Getting a profile from a hung process

According to mstange, it is possible to get profiles from hung Firefox processes using lldb1.

  1. After the process has hung, attach lldb.
  2. Type in2, : p (void)mozilla_sampler_save_profile_to_file("somepath/profile.txt")
  3. Clone mstange’s handy profile analysis repository.
  4. Run: python somepath/profile.txt

    To graft symbols into the profile. mstange’s scripts do some fairly clever things to get those symbols – if your Firefox was built by Mozilla, then it will retrieve the symbols from the Mozilla symbol server. If you built Firefox yourself, it will attempt to use some cleverness3 to grab the symbols from your binary.

    Your profile will now, hopefully, be updated with symbols.

    Then, load up Cleopatra, and upload the profile.

    I haven’t yet had the opportunity to try this, but I hope to next week. I’d be eager to hear people’s experience giving this a go – it might be a great tool in determining what’s going on in Firefox when it’s hung4!

Parameter vs. Argument

I noticed that when I talked about “things that I passed to functions5”, I would use “arguments” and “parameters” interchangeably. I recently learned that there is more to those terms than I had originally thought.

According to this MSDN article, an argument is what is passed in to a function by a caller. To the function, it has received parameters. It’s like two sides of a coin. Or, as the article puts it, like cars and parking spaces:

You can think of the parameter as a parking space and the argument as an automobile. Just as different automobiles can park in a parking space at different times, the calling code can pass a different argument to the same parameter every time that it calls the procedure.6

Not that it really makes much difference, but I like knowing the details.

  1. Unfortunately, this technique will not work for Windows. :(  

  2. Assuming you’re running a build after this revision landed. 

  3. A binary called dump_syms_mac in mstange’s toolkit, and nm on Linux 

  4. I’m particularly interested in knowing if we can get Javascript stacks via this technique – I can see that being particularly useful with hung content processes. 

  5. Or methods. 

  6. Source 

Categorieën: Mozilla-nl planet

Thunderbird Blog: Thunderbird 38 goes to beta!

vr, 03/04/2015 - 11:13

The next major release of Thunderbird, version 38, is now in beta and available for testing. You may download Thunderbird 38.0b1 here.

This version of Thunderbird is the first that is mostly managed by volunteer community members rather than by Mozilla staff. We have many new features, including:

  • Message filtering when a message is sent or archived
  • File-per-message local storage available for new accounts (maildir)
  • Contact search over multiple address books
  • Internationalized domain names for RSS feeds
  • Allow expanded columns to the folder pane for folder size and counts

Release notes are available here.

There are still a couple of features missing from this beta that we hope to ship in the final version of Thunderbird 38. Those are:

  • Ship Lightning calendar addon with Thunderbird with an opt-out dialog
  • Use OAUTH authentication with Gmail IMAP accounts


Categorieën: Mozilla-nl planet

Mike Conley: The Joy of Coding (Ep. 8): View Source Hacking

vr, 03/04/2015 - 04:17

In this episode, I again started with some code review. I reviewed this patch for this bug by fellow Firefox hacker Gijs, and refreshed my memory on var hoisting. I’ve been using let for so long that it was really, really weird to see how var worked.

After that, I quickly gave an update on my plugin crash UI bug I had been working on the last episode – the patches are up, and are currently undergoing review, so there wasn’t much to do there.

Next, I started on a brand new bug1, explained the bug2, and then laid out my plan for attacking it.

Specifically, I’m going to try an experiment: I will only be working on that bug during Joy of Coding sessions. That way, there is continuity from video to video, and you won’t miss any of the development that goes on between episodes.

We sliced off a chunk to get done, and hit some minor roadblocks (as expected). The View Source code is old and crufty, and I have to do my best to make sure I don’t break any of the other applications that depend on it (like Thunderbird and SeaMonkey).

So that was the name of the game – looking to see how other applications use View Source, and trying to come up with a plan for making sure we don’t break them, while at the same time refactoring View Source to be easier to code against (and work with a frame script and messages).

It was a long slog3, but we got to a good point by the end. Let’s see how far we get next week!

Episode Agenda


Bug 1148807 – Method moveToAlertPosition in dialog.xml should check if opener is not null

Bug 1110887 – With e10s, plugin crash submit UI is brokenNotes

Bug 1025146 – [e10s] Never load the source off of the network when viewing sourceNotes

  1. I say brand new, except that, as I explain in the video, I had already attacked this bug early on in my e10s work, and had only recently come back to it. 

  2. The View Source tool sometimes re-retrieves the source off of the network when opened from an e10s-browser 

  3. My longest episode ever, clocking in at over 2.5 hours. 

Categorieën: Mozilla-nl planet

Joshua Cranmer: Breaking news

wo, 01/04/2015 - 09:00
It was brought to my attention recently by reputable sources that the recent announcement of increased usage in recent years produced an internal firestorm within Mozilla. Key figures raised alarm that some of the tech press had interpreted the blog post as a sign that Thunderbird was not, in fact, dead. As a result, they asked Thunderbird community members to make corrections to emphasize that Mozilla was trying to kill Thunderbird.

The primary fear, it seems, is that knowledge that the largest open-source email client was still receiving regular updates would impel its userbase to agitate for increased funding and maintenance of the client to help forestall potential threats to the open nature of email as well as to innovate in the space of providing usable and private communication channels. Such funding, however, would be an unaffordable luxury and would only distract Mozilla from its central goal of building developer productivity tooling. Persistent rumors that Mozilla would be willing to fund Thunderbird were it renamed Firefox Email were finally addressed with the comment, "such a renaming would violate our current policy that all projects be named Persona."

Categorieën: Mozilla-nl planet

Rumbling Edge - Thunderbird: 2015-03-28 Calendar builds

zo, 29/03/2015 - 17:58

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

  • Fixed: 351499 – Sort out “delete calendar” vs. “unsubscribe” UI hilarity
  • Fixed: 396515 – ICS provider should use Accept: text/calendar on GET
  • Fixed: 419490 – NS_ERROR_OUT_OF_MEMORY exception when creating certain monthly repeating events
  • Fixed: 455542 – Make configuration of Today Pane “Soon” duration available in preference dialog too
  • Fixed: 756783 – Cannot delete event using keyboard or toolbar
  • Fixed: 823498 – Missing Message-ID header in invitation email
  • Fixed: 842383 – text and icon in attendees dialog need more spacing
  • Fixed: 958974 – Monthly rules with more BYDAYs are not always displayed correctly in the first month
  • Fixed: 1002597 – Consider using <html:input type=color> as a color picker instead of <xul:colorpicker>
  • Fixed: 1022342 – Make use of Assert.jsm in xpcshell tests
  • Fixed: 1108640 – Error: TypeError: this.mQueuedQueries.pop(…)[Symbol.iterator] is not a function
  • Fixed: 1120258 – Saving an item in the event dialog fails with MODIFICATION_FAILED if the item has been modified elsewhere
  • Fixed: 1128070 – Fix packaging for timezones extension
  • Fixed: 1133139 – Show a warning when the binary component cannot be loaded
  • Fixed: 1133663 – Calendar display and calendar pane broken in Lightning 3.8b1, due to incomplete localizations
  • Fixed: 1133667 – Attendees Dialog: Autocomplete deforms addresses with e-mail as Display Name
  • Fixed: 1135840 – Add Romansh (rm) to all-locales for calendar
  • Fixed: 1137455 – Error: TypeError: this.mDeferred is null in gdataRequest.jsm
  • Fixed: 1137672 – Lightning fails to send email for event replies
  • Fixed: 1138093 – Fix in-tree consumers that use non-standard flag argument of String.prototype.{search,match,replace} in calendar/.
  • Fixed: 1138125 – this.tree.view is undefined when first opening calendar view
  • Fixed: 1139345 – Check of last tasks update time faulty
  • Fixed: 1139679 – Make use of BUG_COMPONENT metadata
  • Fixed: 1140802 – Deleting an event in the view after opening the event dialog via double-click causes a MODIFICATION_FAILED error
  • Fixed: 1140840 – Icon for New Event/Task in Write button drop down menu do not match Lightning theme
  • Fixed: 1141854 – Fix packager to upload to the right directory
  • Fixed: 1142261 – Don’t split interfaces between libical and ical.js
  • Fixed: 1142707 – Converting into event disabled in context menu when no messages are selected
  • Fixed: 1143163 – Rename icaljs/libical manifest files to fool the packager

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-03-28 Thunderbird comm-central builds

zo, 29/03/2015 - 17:57

Thunderbird-specific: (67)

  • Fixed: 36489 – Combined To/From column in thread pane
  • Fixed: 464973 – “Expanded Columns” in the folder pane are no longer available to select columns for display for message total count and folder size
  • Fixed: 760762 – Add reading position marker line to conversations
  • Fixed: 787608 – Address autocomplete should be smarter with leading spaces entered into composition’s recipient pane
  • Fixed: 923656 – Global search box dropdown options: Having “Search Bing for: foo” web search between local searches is “surprising” (violating Mozilla’s Privacy Principles?)
  • Fixed: 953135 – convertTo(“vcard”) method of nsIAbCard does not export e-mail address
  • Fixed: 966294 – Make web search configurable from Options
  • Fixed: 1003105 – Clicking on an IM search result brings up the findbar with incorrect content
  • Fixed: 1044336 – Insert Link by context menu does not work in Thunderbird 31.0 – doesn’t show a Paste menu item (paste using ctrl+v works fine)
  • Fixed: 1048791 – Mail account wizard (autoconfig) cannot be completed
  • Fixed: 1055326 – [meta] Thunderbird support for OS X Codesign V2 signatures.
  • Fixed: 1069845 – Viewing logs from faceted search results is broken
  • Fixed: 1071337 – Chat history of closed contacts only shows one entry for Today
  • Fixed: 1083877 – Port Bug 1074896 [Include a “donate” link in the About Firefox dialog] to TB
  • Fixed: 1087233 – Create about:downloads to migrate to Downloads.jsm
  • Fixed: 1092526 – about:downloads needs CSS styles on each platforms
  • Fixed: 1095229 – Use parseDecodedHeader in displayNameUtils
  • Fixed: 1096119 – Refresh the code in nsContextMenu a little bit
  • Fixed: 1100380 – [10.10] Use vibrancy in the tabbar and address tabbar styling issues in Yosemite.
  • Fixed: 1103647 – Chat logs no longer being indexed by gloda
  • Fixed: 1105196 – Port recent changes to Help > About Firefox to Thunderbird (aboutDialog.*)
  • Fixed: 1115358 – Including Upper Sorbian (hsb) and Lower Sorbian (dsb) locales on Thunderbird
  • Fixed: 1117714 – Add cy (Welsh) to mail/locales/all-locales and calendar/locales/all-locales
  • Fixed: 1120777 – Make OpenSearch queries open in the user’s default browser
  • Fixed: 1125577 – startup crash in NSSCryptoContext_FindCertificateByEncodedCertificate
  • Fixed: 1126268 – crash in mozilla::ipc::MessageChannel::CxxStackFrame::CxxStackFrame(mozilla::ipc::MessageChannel&, mozilla::ipc::Direction, IPC::Message const*)
  • Fixed: 1127802 – Multiple directed chat messages should show as single bundled notification
  • Fixed: 1128872 – When adding an account, the outgoing server login is overwritten with the incoming server login
  • Fixed: 1129605 – Fix consumers in /mail and /mailnews that call Map/Set/WeakMap constructors without “new”
  • Fixed: 1133265 – Enable mail.tabs.drawInTitlebar by default on OSX
  • Fixed: 1133957 – TEST-UNEXPECTED-FAIL | /builds/slave/talos-slave/test/build/mozmill/folder-display/test-message-commands-on-msgstore.js | test-message-commands-on-msgstore.js::test_mark_messages_forwarded
  • Fixed: 1134237 – Port bug 1022581 to TB [Category icons in about:preferences aren’t legible when using black-on-white High Contrast mode]
  • Fixed: 1134239 – InContent Prefs – Port recent changes to TB (bug 1128237, bug 1036434 and bug 1044597)
  • Fixed: 1134867 – mdimporter plugin is missing its MacOS folder since version 36
  • Fixed: 1134905 – Port improved tab completion from Instantbird
  • Fixed: 1135085 – After bug 1022600 no icon in tab for inContent prefs
  • Fixed: 1135294 – Contents of tabs at Preferences->Advanced are shifted
  • Fixed: 1135297 – Remove unused chat-messenger-overlay.js::_showLog path parameter
  • Fixed: 1135353 – Remove references to nsIGnomeVFSService from Thunderbird
  • Fixed: 1135536 – Improve behaviour of columns in the folder pane which has come back by bug 464973
  • Fixed: 1135610 – Changing identity does not change From: name and address in actual e-mail
  • Fixed: 1135630 – about:support / Troubleshooting Information: Javascript, Accessibility and Library Versions empty/broken due to change in Graphics failure management
  • Fixed: 1135665 – Port Bug 701948 – Rename nsIGfxInfo::FEATURE_NO_INFO to nsIGfxInfo::FEATURE_STATUS_OK for about:support
  • Fixed: 1135720 – open email in a new window – Go > Folder functionality
  • Fixed: 1135892 – Port bug 1035400 – “restart to update” button not working
  • Fixed: 1136326 – Style the LDAP info page in address book
  • Fixed: 1136359 – Backout Array.includes and String.includes usage in tab completion code
  • Fixed: 1137406 – TEST-UNEXPECTED-FAIL | | build file copies are not in sync: differing file: ./mozconfig.automation
  • Fixed: 1137412 – TEST-UNEXPECTED-FAIL | toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js | xpcshell return code: 0
  • Fixed: 1137492 – cleanup obsolete “for each” loops in /mail/base/content/gloda*
  • Fixed: 1138095 – Fix in-tree consumers that use non-standard flag argument of String.prototype.{search,match,replace} in mail/.
  • Fixed: 1138464 – ‘Learn More’ links for Telemetry and Crash Reporter in Settings’/Options’ Data Choices tab open twice (as tab and in browser)
  • Fixed: 1139817 – TypeError: imgs is undefined in TypeError: imgs is undefined
  • Fixed: 1140110 – Fix typos in ignoreincolumnpicker attribute in Thunderbird IM
  • Fixed: 1140368 – UI bug for “Display Attachments Inline” (MenuBar and App Menu independently updates Checked/Unchecked mark of “Display Attachments Inline”)
  • Fixed: 1140687 – “Remove Attachment” over a currently-uploading Filelink doesn’t cancel the upload.
  • Fixed: 1140768 – Typo of “gShowAbColumnInComposeSidbar” in abContactsPanel.js
  • Fixed: 1141066 – Fix a memory leak in mailnews/addrbook/src/nsAbCardProperty.cpp
  • Fixed: 1141932 – Chat sound preview doesn’t work for default system sound on Mac OS
  • Fixed: 1141991 – Account creation system does not auto-update port when changing SSL status using keyboard
  • Fixed: 1142335 – Port mozconfig changes from Bug 1141534 to c-c
  • Fixed: 1143808 – ‘New contact’ button for adding new card still grayed/greyed out/disabled after selecting an addressbook (works after second selection)
  • Fixed: 1144256 – Thunderbird preferences chat.js uses preprocessor macros but isn’t marked for preprocessing
  • Fixed: 1144269 – Style version information in About Thunderbird window bold – port bug 1139509
  • Fixed: 1144289 – In-content preferences: treecols are jumping when clicked
  • Fixed: 1145147 – move thunderbird tests to run on MacOSX 10.10 hosts
  • Fixed: 1145972 – Port bugs 1044600, 1055973 and 1128175 to Thunderbird (in-content subdialog changes)

MailNews Core-specific: (54)

  • Fixed: 170270 – Enable search in multiple/all address books
  • Fixed: 550411 – “Type” of prefs entry of true/false at Config Editor which is defined in chrome://messenger/locale/ is “string” instead of “boolean”
  • Fixed: 816304 – Filters that copy messages crash with maildir [@ mozalloc_abort | mozalloc_handle_oom | moz_xrealloc | nsTArray_base<nsTArrayDefaultAllocator>::EnsureCapacity | nsTArray<void*, nsTArrayDefaultAllocator>::AppendElements<void*> | nsPresArena::State::Free ]
  • Fixed: 840418 – replied/forwarded icons disappear after folder repair, detach/delete (“Internally set message flag” icluding “READ flag by Mark Folder Read” is not written to X-Mozilla-Status: until “manually changeable message flag” is changed manually)
  • Fixed: 854172 – Add a missing check of the return value of MoveIncorporatedMessage, and the failure to log such filter failure.
  • Fixed: 854791 – Free disk space size has to be checked before start Compact of Berkley Mbox file, to reduce “Disk Full while Compact” as many as possible
  • Fixed: 855954 – Mail data is truncated by copy mail from IMAP Offline-Use=On folder of maildirstore to Mbox of non-IMAP/maildirstore, because size of “From -“, “X-Mozilla-Status:/-Status2:” is not added to messageSize
  • Fixed: 856532 – Mail Move from maildirstore/IMAP/Offline-Use=On to maildirstore/Local Folders doesn’t issue “uid xx store +Flags \Deleted” at Move Source folder and doesn’t show with strike-thru line even though “Just mark it as deleted”
  • Fixed: 872869 – nsMsgDatabase::ListAllKeys() very slow with high CPU downloading messages into large folder. Backout of patch for Bug 764306 is mandatory.
  • Fixed: 914517 – Attachments “Save as…” does not create an entry in “Saved Files” list aka Download Manager window
  • Fixed: 952493 – should used string based identifiers rather than numbers.
  • Fixed: 1011399 – [meta] [GSoC 2014] Make xpcshell tests pass with maildir as default mailbox format
  • Fixed: 1017028 – inbox at 4GB – error message about disk space but there IS enough free disk space
  • Fixed: 1063829 – crash in ldap_get_lderrno. frequently 0x5a5a5b2a
  • Fixed: 1064230 – Thunderbird with auto configuration crashes during LDAP search
  • Fixed: 1089298 – Stop mime decoding to UTF-8 only to convert to UTF-16
  • Fixed: 1089301 – Investigating cheating on matching address headers to improve search/filter speed
  • Fixed: 1096127 – MsgHdrToMimeMessage, when used in conjunction with IMAP parts on demand, returns wildly incorrect results starting with Thunderbird 31
  • Fixed: 1111668 – msgSynchronize.js -> onSynchronizeClick() -> folder is undefined
  • Fixed: 1119529 – Sending message succeeds but Error “error while running message filters on it.”, when “Keep messages for this account on this computer” or “Select this folder for offline use” are disabled.
  • Fixed: 1124015 – Add UI to select maildir for storage when creating accounts
  • Fixed: 1124948 – Search folders dont work on maildir (SearchFolder is normally created under Maildir and is usable, but it’s deleted by restart and garbled SearchFolder.msf is kept)
  • Fixed: 1126509 – Throw if fixIterator got an unknown object
  • Fixed: 1127307 – Always use inheritance rather than composition for PLDHashTable entries
  • Fixed: 1132339 – Thunderbird 38 crash in NS_CycleCollectorSuspect3 and nsXPCWrappedJS::Release()
  • Fixed: 1133009 – filterlog.html shows error console message (first open of empty log)
  • Fixed: 1133581 – “childrenNode is null” error when creating new account from Account central and skipping Account provisioner
  • Fixed: 1134944 – Move getSummaryFile to folder so that maildir can be selected in imap mail setup
  • Fixed: 1135310 – closing idle folder databases potentially broken
  • Fixed: 1135336 – convert makefile rules in MailNews with to use GENERATED_FILES
  • Fixed: 1136792 – “Advanced Address Book Search” in “All Address Books” affects/filters main AB contacts list pane
  • Fixed: 1136798 – “Advanced Address Book Search” lacks label for “All Address Books” in AB selector dropdown
  • Fixed: 1136801 – “Advanced Address Book Search” lacks column for containing “Address Book” (shown by default, but optional)
  • Fixed: 1137054 – fix mailnews bustage due to changes from bug 1136388
  • Fixed: 1137662 – There’s a spurious “to” in the mail/ version of smtpAuthChangeEncryptToPlainSsl
  • Fixed: 1138096 – Fix in-tree consumers that use non-standard flag argument of String.prototype.{search,match,replace} in mailnews/db/.
  • Fixed: 1138097 – Fix in-tree consumers that use non-standard flag argument of String.prototype.{search,match,replace} in mailnews/mime/.
  • Fixed: 1138098 – Fix in-tree consumers that use non-standard flag argument of String.prototype.{search,match,replace} in mailnews/test/.
  • Fixed: 1138172 – Three strings about SMTP errors tell user to change connection/password/authentication method in Account settings > Server settings, but should be in Outgoing server (SMTP)
  • Fixed: 1138964 – Daily and SM busted due bug 951695
  • Fixed: 1140712 – Clean up “SyntaxError: test for equality (==) mistyped as assignment (=)” in messenger/content/addressbook/abResultsPane.js
  • Fixed: 1141548 – Port Bug 868814 to comm-central – Fold mozalloc into mozglue
  • Fixed: 1141848 – Port Bug 1129650 – Touching navigator.mozId causes an error NS_ERROR_FACTORY_NOT_REGISTERED
  • Fixed: 1143065 – TEST-UNEXPECTED-FAIL | mailnews/news/test/unit/test_internalUris.js | xpcshell return code: 0
  • Fixed: 1143105 – remove unnecessary nsISSLErrorListener implementations in comm-central
  • Fixed: 1143233 – Rename mbox message storage label from “One large file (mbox)” to “File per folder (mbox)”
  • Fixed: 1143313 – nsMsgCompUtils.cpp & nsAbLDIFService.cpp: Same code in different branch
  • Fixed: 1143474 – Remove some dead code in nsMsgSearchNews.cpp
  • Fixed: 1144128 – TEST-UNEXPECTED-FAIL | | build file copies are not in sync (difference in mozconfig.common after bug 1123815 landed)
  • Fixed: 1144645 – Port Bug 1142853 to comm-central – SelectionCaret image handles do not show on nightly browser
  • Fixed: 1146042 – Port Bug 1137000 to comm-central – Move sdk building to moz-automation
  • Fixed: 1146094 – Stop using MOZ_OVERRIDE and MOZ_FINAL in comm-central. Instead use the override and final keywords.
  • Fixed: 1146198 – incorrect compile warnings about errorStringNameForErrorCode() being unused
  • Fixed: 1147803 – Fix indentation mismatches in lines touched by bug 1146094

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

Mike Conley: Things I’ve Learned This Week (March 23 – 27, 2015)

vr, 27/03/2015 - 16:15

“Things I learned this week” is my favorite section of our weekly team meeting.

— Margaret Leibovic (@mleibovic) March 20, 2015

This is the first post in a weekly series, where I’m going to attempt to distill down my week into some lessons or facts I’ve picked up. Maybe they’ll be interesting to others. We’ll see.

  1.  Gecko Media Plugins are used both for WebRTC (the Open H.264 encoding stuff runs inside a GMP), and is also going to be used to hold CDM’s for EME’s. That’s a lot of TLA’s!1
  2. This little notch I saw on the caret on my development build was because I had bidi.browser.ui set to true for some reason. It’s the “bidi caret”:
    Bidi Caret
  3. People hacking on platform are supposed to avoid using the NS_ENSURE_* macros, according to this.2 I originally learned this by reading cpearce’s review of a patch.

So let’s see if I can keep this up for a few weeks. Maybe I’ll get a collection of useful stuff by the end of the experiment!

  1. Three Letter Acronyms 

  2. It says:

    Previously the NS_ENSURE_* macros were used for this purpose, but those macros hide return statements and should not be used in new code.


Categorieën: Mozilla-nl planet

Mike Conley: The Joy of Coding (Episode 7): Code review, and a Regression

vr, 27/03/2015 - 16:03

In this episode, I started with some code review. I was reviewing a patch to make the Findbar (particularly, the Find As You Type feature) e10s-friendly.

With that review out of the way, I had to swap a bunch of information about the plugin crash UI for e10s in my head – and in particular, some non-determinism that we have to handle. I explained that stuff (and hopefully didn’t spend too much time on it).

Then, I showed how far I’d gotten with the plugin crash UI for e10s. I was able to submit a crash report, but I found I wasn’t able to type into the comment text area.

After a while, I noticed that I couldn’t type into the comment text area on Nightly, even without my patch. And then I reproduced it in Aurora. And then in Beta. Luckily, I couldn’t reproduce it in Release – but with Beta transitioning to Release in only a few days, I didn’t have a lot of time to get a bug on file to shine some light on it.

Luckily, our brilliant Steven Michaud was on the case, and has just landed a patch to fix this. Talk about fast work!

Episode Agenda

Bug 1133981 – [e10s] Stop sending unsafe CPOWs after the findbar has been closed in a remote browser

Bug 1110887 – With e10s, plugin crash submit UI is brokenNotes

Bug 1147521 – Cannot type into comment area of plugin crash UI

Categorieën: Mozilla-nl planet

Mike Conley: The Joy of Coding (Episode 6): Plugins!

do, 19/03/2015 - 16:13

In this episode, I took the feedback of my audience, and did a bit of code review, but also a little bit of work on a bug. Specifically, I was figuring out the relationship between NPAPI plugins and Gecko Media Plugins, and how to crash the latter type (which is necessary for me in order to work on the crash report submission UI).

A minor goof – for the first few minutes, I forgot to switch my camera to my desktop, so you get prolonged exposure to my mug as I figure out how I’m going to review a patch. I eventually figured it out though. Phew!

Episode Agenda

Bug 1134222 – [e10s] “Save Link As…”/”Bookmark This Link” in remote browser causes unsafe CPOW usage warning

Bug 1110887 – With e10s, plugin crash submit UI is brokenNotes

Categorieën: Mozilla-nl planet

Mike Conley: The Joy of Coding (Episode 4)

do, 05/03/2015 - 16:19

The fourth episode is up! Richard Milewski and I found the right settings to get OBS working properly on my machine, so this weeks episode is super-readable! If you’ve been annoyed with the poor resolution for past episodes, rejoice!

In this fourth episode, I solve a few things – I clean up a busted rebase, I figure out how I’d accidentally broken Linux printing, I think through a patch to make sure it does what I need it to do, and I review some code!

Episode Agenda

Bug 1136855 – Print settings are not saved from print job to print job

Bug 1088070 – Instantiate print settings from the content process instead of the parent

Bug 1090448 – Make e10s printing work on Linux

Bug 1133577 – [e10s] “Open Link in New Tab” in remote browser causes unsafe CPOW usage warning

Bug 1133981 – [e10s] Stop sending unsafe CPOWs after the findbar has been closed in a remote browser

Categorieën: Mozilla-nl planet

Calendar: We are now on Twitter

di, 03/03/2015 - 01:39

In the spirit of Twitter I will keep this blog post down to 140 characters. Check out @mozcalendar for more frequent updates on the project.

Categorieën: Mozilla-nl planet