Reminder - no plan survives breakfast.
- Feel free to send pull requests to the repo!
- Here’s a contributing guide!
- Here’s the guide for creating pull requests that smurfd used and recommends!
Today
- Mozilla Connect
- First, let's see what it takes to not coalesce items in the Windows Task Tray
- Because ultimately, that might be the most sensible solution - each profile is mapped to a different spot on the tray.
- This appears to be how Chromium does it - they're setting a AppUserModelID per profile
- It turns out we've got a mechanism to do this already. It got added back in bug 577867 but it appears to only work for private browsing windows.
- mconley to talk to Priv/Sec teams to figure out what's going on with the AUMID stuff.
- Let's try to make the WindowsJumpList stuff happen off of the main thread! Exciting!
- This may or may not actually contribute to the permanent private browsing thing we've been looking at, but it's righteous work because of the placement it has in the hang stats list (currently #4!)
- Goal: I want the JumpListManager to only ever be accessed off of the main thread, so that the main thread in the parent process never has to await a lock.
- [x] Get rid of maxListItems, since it doesn't appear to be used
- [x] Get rid of isListCommitted
- [ ] Make .available return a Promise
- [ ] Make abortListBuild return a Promise
- [ ] Make SetAppUserModelId return a Promise
- [ ] Make addListToBuild return a Promise
- [ ] Make commitListBuild return a Promise instead of using that old callback mechanism
- [ ] Make deleteActiveList return a Promise
- [ ] Update all of the callers of the above methods!
- [ ] Remove locks and monitors
- [ ] Migrate off of dedicated lazy thread to background thread pool
- Goal: I want to make AddListToBuild do most of its work off of the main thread
Chat
- Join us in the Livehacking room on Mozilla’s Matrix instance! Here’s documentation on how to join. I’m only sorta monitoring the Twitch chat. A bot will try to bridge Matrix and Twitch (joc-bridgebot).
Links
- Felicia Bacon
- nbp hacks on the SpiderMonkey JS engine
- Alessandro Castellani has been streaming himself livehacking on Thunderbird
- emilio hacks on Firefox!
- Compiler Compiler - watch a Mozilla engineer hack on the SpiderMonkey JavaScript engine!
- How mconley uses Mercurial
- Andreas Kling hacks on a custom browser engine for a hand-rolled OS called SerenityOS
- The Joy of Coding: Community-Run Episode guide
- Feel free to send pull requests to the repo!
- Here’s the guide for creating pull requests that smurfd used and recommends!
- I've been mirroring the episodes to YouTube
- Code Therapy with Danny O’Brien
- Watch a developer put together a Windows game from scratch (no third-part engines) - really great explanations: https://handmadehero.org/
- /r/WatchPeopleCode for more livehacking!
Glossary
- BHR - “Background Hang Reporter”, a thing that records information about when Firefox performs poorly and sends it over Telemetry
- e10s ("ee ten ESS") - short for Electrolysis, which is the multi-process Firefox project
- CPOW ("ka-POW" or sometimes "SEE-pow") = Cross-Process Object Wrapper. See this blog post.
- Deserialize - "turn a serialized object back into the complex object”
- Serialize - "turn a complex object into something that can be represented as primitives, like strings, integers, etc
- Regression - something that made behaviour worse rather than better. Regress means to “go backward”, more or less.
- l10n - localization
- a11y - accessibility
- i18n - internationalization
- k8s - kubernetes
Feedback
- @mconley@mastodon.social on Mastodon
- @mike_conley on Twitter
- You can chat with me on Matrix at @mconley:mozilla.org
- mikeconley.ca/blog
- mconley at mozilla dot com