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
- Q: "What is easiest way to succeed with applying an old patch, bump it to tip and deal with merge conflicts? To handle review feedback. Is it best to apply somewhere close in the Mercurial tree where it was committed?"
- A: It's best if you can take advantage of the VCS's smarts when reviving an old patch.
moz-phab patch XYZ --apply-to here
just uses thepatch
command under the hood to apply the patch directly. Rebase the old patch from where it was onto the tip. That will take advantage of what the VCS knows about what has happened since that commit was made.
- A: It's best if you can take advantage of the VCS's smarts when reviving an old patch.
- Reviewing a patch at https://bugzilla.mozilla.org/show_bug.cgi?id=1316727 for Danny Colin!
Still hacking on WindowsJumpLists!
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
- [x] Make .available return a Promise
- [x] Make abortListBuild return a Promise
- [x] Make deleteActiveList return a Promise
- [x] Make SetAppUserModelId return a Promise
- [x] Add WebIDL for JumpListShortcutDescription and add populateJumpList method to JumpListBuilder.
- [x] Custom List (this is the Frequently Visited stuff) - Frequent is ENABLED by default - Recent is DISABLED by default - Don't need separators
- [x] Tasks
- [ ] Update methods so that tasks and custom lists are added in the same method call. So a single populate method that takes something like...
(taskDescriptions, customTitle, customListDescriptions)
- [ ] Finish the URL removal thing. Basically, if an item was removed via the shell, the next call to AppendCategory cannot include that item with the same display name - the next call needs to display something else entirely.
- [ ] Figure out how to make the above testable. Then write tests.
- [x] Implement clearJumpList (it's called deleteActiveList)
- [ ] See if the above works. If it does, get rid of old changes that we don't need and merge patches down
- [ ] Update WindowsJumpList.jsm to use the new API instead of the old one.
- [ ] Update WindowsJumpList.jsm to be simpler so that it doesn't try to do so much lazy stuff since now it's all off of the main thread
- [ ] Remove the old implementation! Hooray!
- [ ] Migrate off of dedicated lazy thread to background thread pool
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@fosstodon.org 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