- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 4 This week I learned
General Topics / Roundtable
- [mconley] Seen a bugfix land that’ll likely impact Firefox performance in a positive way? Help me let the world know!
- [mconley] Want to add a ChromeOnly WebIDL binding? Good news! As of this bug and this bug, you don’t need DOM peer approval anymore! Ongoing discussion in dev-platform about the implications.
- [mconley] Help Ehsan eliminate annoying in-content popups by installing this add-on and reporting when pages display something like this.
Friends of the Firefox team
- :Prathiksha got her Level 3 contributor access last week!
- Mike Kaply joined the Firefox team
- Resolved bugs (excluding employees): https://mzl.la/2DlmYcH
- More than one bug fixed:
- Dhi Aurrahman
- Tim Nguyen :ntim
New contributors (🌟 = First Patch!)
- 🌟 Adam Kasztenny got rid of a bunch of dead code from the old about:newtab page
- 🌟 Amy switched some tests from using a hand-rolled promiseTopicObserved to using TestUtils.topicObserved
- 🌟 Aleksandr got rid of some dead code in the browser/modules directory
- Arthur Deschamps made sure that we send the user to about:privatebrowsing in private browsing windows at the right times
- 🌟 Omar got rid of the unused gBrowser.tabContextMenu property
- 🌟 Raymond converted some hardcoded colours in about:addons to CSS variables instead
- Daniel Marshall (:starsandspirals) renamed the “profileStorage” Form Auto-fill singleton to “formAutofillStorage” to make its purpose more clear
- 🌟 gregorywlodarek changed the label for a button in about:preferences so that it makes more sense
- 🌟 kanika16047 switched a test from using a hand-rolled promiseWaitForCondition to using TestUtils.waitForCondition instead
- 🌟 Michael Webster added support for showing download progress in the taskbar on Linux Mint
- 🌟 Olivier Tilloy updated how we detect and set Firefox as the default browser on Linux when installed as a Snap package
- 🌟 Videet Singhai removed the unused MEMORY_HEAP_COMMITTED_UNUSED Telemetry probe
- Including an embedded experiment in a WebExtension no longer breaks browserAction (uplifted to 59).
- Tab hiding shutdown now happens even if the API is unused, removing the possibility of hidden tabs staying erroneously hidden (fixed in 60).
- tabs.query() returns highlighted tabs when querying… highlighted tabs (fixed in 60).
- Dev tools panel drop downs expand as they should (fixed in 60).
- Async proxy.onRequest API (fixed in 60).
- ...and DNS resolve API added (also in 60).
- Improved information on where errors triggered by async APIs came from (in 60).
- Fixed an issue where extension sidebars reload unnecessarily (fixed in 60).
- (Never know if I should mention security bugs in here, but let’s just say that two of those have been fixed in 60.)
- You can now set the active tab line color (in 60).
- You can now change the background color of the selected tab (in 60).
- Narrowly avoided releasingtab_background_textmisnamed which would’ve been bad for migrations of Chrome extensions (uplifted to 59 -- thank you, ntim).
- Landed section context menu to help users manage the sections, such as remove section, collapse section, and other section specific options
- Landed section reordering, which allows users to change the layout of AS.
- Various fixes for bookmarks (Bug1444518, Bug1442383) and snippets (Bug1438368)
- Dashboard for Activity Stream Metrics Summary, Search, and User Preferences
- Move AS settings to about:preferenceswill be landed in 61 other than 60
- Only 5 XUL overlays left!
- XUL menu replacement planning.
- Working out naming for custom elements in chrome.
- No updates this week
- Administrative templates being created to set policies through Windows GPO
- See how it looks: (screenshot removed because I didn’t create it, I picked the one from ghacks just to show it in the meeting)
- Press picking it up
- Documentation on MDN
- Big marketing push for Firefox Quantum for ESR (aka Firefox 60) starting (probably) today, which will be talking about this feature
- Send feedback our way
- YUKI “Piro” (from Tree Style Tab) contributing
- See any issues with it? Please file bugs and mark them blocking this bug
- mconley is getting rid of some sync reflows
- dthayer is moving ContentPrefService database queries off of the main thread
- dthayer also landed some probes to help shed more light on where tab switch spinners are coming from (they’re likely from bugs in the async tab switcher!)
- Gijs got rid of some unneeded code from the old about:newtab page that was running during start-up
- Gijs is also making us way lazier at getting and parsing the blocklist, which should help reduce the amount of stuff we’re doing at start-up
- florian is working on making our performance tests more comprehensive and easier to write
- Reminder: Please queue Firefox front-endy bugs for triage with the [fxperf] whiteboard tag
- We are deprecating and removing the proprietary storage option for indexedDB.open() to get rid of the “indexedDB” permission mess.
- Intent: https://groups.google.com/forum/#!topic/mozilla.dev.platform/3b700_oeAzo
- Compat Note: https://www.fxsitecompat.com/en-CA/docs/2018/storage-option-for-indexeddb-open-has-been-deprecated/
- We disabled the devicelight, deviceproximity and userproximity events.
- We’re starting a quest to rid Firefox code of innerHTML and as a priority unsafeSetInnerHTML.
- You can use .textContent = “” instead of innerHTML = “”
- Tim added permission prompts for Web Authentication direct attestation (in which websites are asking for the non-anonymized token certificate).
- Chris Kerschbaumer changed the way chrome and about pages can communicate.
Address Bar & Search
- New switch-to-tab behavior for the autofill match was confusing users, now we will instead provide both the autofill match and a switch-to-tab one. (will be uplifted to 60)
- Landed a telemetry probe to better understand how users cycle through address bar matches with the keyboard
- A last minute backout happened for Firefox 59. The original scope was to put search suggestions first for new Quantum profiles with a unified urlbar, but it ended up applying to any unified urlbar profile. We’re sorry about that and will do a post-mortem analysis of this mistake. A better fix is being worked on for Firefox 60. Note that there’s a Shield Study that could end up doing the same change, you can verify if you’re involved in about:studies.
- Drew Willcoxon (:adw) is the new triage owner of Firefox :: Search. Gratz!
- Fixed some regressions:
- the bookmarks dialog didn’t save keywords anymore
- Misbehaving Drag&Drop in menu views
- open bookmarks in a new tab from the sidebar was broken
- It’s no more possible to create third-party roots in Places. We’ll shortly remove anything that is not part of one of the official roots (menu, toolbar, unsorted, tags, mobile)
- Updated the Favicons for the default bookmarks
- Controller.js is now a lazy loaded script, rather than being loaded on each window opening. Additionally Bdahl is removing placesOverlay.xul!
- Bookmark tags autocomplete should not assert/crash anymore in debug builds
- Our Sqlite implementation now uses unique temporary file names (prefixed with “mz_”), to avoid confusing our temporary files I/O with other running apps
- Thom landed a patch to reuse transaction timeout timers in Sqlite.jsm ⏰.
- Kit changed Places to use immediate transactions by default. This fixes a storage thread hang with a cloned Places connection in the new bookmarks mirror.
Sync / Firefox Accounts
- Ed has a proposal for a way to detect copied and moved profiles 🚚.
- Ed is working on a client for Pushbox, a new service to store and fetch push payloads for the new “Send Tab” 📦, and also submitted a fix tohide Sync prefs when disabled 🙈, fixed a frequently-failing test caused by spurious syncs ⛔️, landed a patch to write weakly uploaded records back to the bookmarks mirror 🏋️♀️, fixed event telemetry views for Android 📅, and radically simplified Sync error handling ⚠️.
- Thom improved tree logging for the bookmarks mirror 🌲, improved deduping for automatically restored bookmarks ✨, fixed a login check and cascading cleanup failures in TPS 📝, added a test for duplicate synced passwords 🔑, and removed an old ‘n busted test 🏚.
- Mark is working on adding Web Push encryption to Firefox 🔒, removed remaining event loop spinning from Sync 🌀, made the bookmarks mirror handle item type changes gracefully ♻️, fixed tag handling in the mirror 🏷, analyzed several mirror bugs 🐞, and filed a meta bug for Pushbox work!
- Kit moved Sync metadata for bookmarks and history into Places 🗺, and fixed and optimized deduping in the mirror 📚. Working on a blog post for dogfooding!
- has sweet new new textures
- Launch dates are still TBD
- Technical blog post from Les: https://medium.com/firefox-test-pilot/fun-with-themes-in-firefox-54a3180f16e4
- Screenshots updates:
- Annotations launched! You can now crop, highlight, or draw on uploaded screenshots.
- Blog post on the way (pending legal approval)
- Find it on the Test Pilot medium: https://medium.com/firefox-test-pilot
- Upcoming: Firefox Accounts integration, porting the WebExtension to Chrome
- Blog post looking at our usage data: https://firstname.lastname@example.org/f0fbb5e9351f
- Only four remaining milestone 1 bugs!
- hsivonen is now working on DOM bugs!
- Don't dispatch shipping*change events if requestShipping is false
- Implement the payerName/payerEmail/payerPhone contact picker
- Success/failure screens
- Implement the "failure" screen for when the merchant rejects the payment and doesn't request retrying
- Implement the "success" screen for when the merchant accepts the payment
- Use keydown instead of keypress to trigger display of the debugging panel
- Forgot to call `sendMessageToContent` helper in "paymentDialogWrapper.js"
- Document the need to have e10s enabled for Web Payments
- Add error option to the PaymentRequest debug panel
- Success/failure screens
- Implement the "unknown"/timeout screen for when the merchant rejects the payment and doesn't request retrying
- response.complete() does not make the completeStatus available to the payment UI service
- Require non-Cancel address-related user interaction on the payment sheet before firing shippingaddresschange
- PaymentRequest.show() must only be triggered by user activation
This week I learned
- [mconley] about:devtools-toolbox?type=process
- It’s like the Browser Toolbox, but it’s in the parent process in a content area. Handy for theme tweaking!
- [MattN] Following-up on a previous This Week I Learned… colored mochitest output is now enabled by default (for `mach test` and `mach mochitest`)!