Firefox/Meeting/08-May-2018
From MozillaWiki
Today’s meeting leader is: RyanVM
Contents
General Topics / Roundtable
- New --temp-profile argument for `mach run`
- [MattN] test-verify jobs are on trychooser now making for easier try requests from MozReview UI.
- [Ryan] Release schedule update
- [Ryan] Visual Studio 2017 15.7 released yesterday - AVOID
- [Ryan] Mercurial 4.6 released recently - AVOID
- ./mach bootstrap will auto-update to 4.6 when it runs. If you need to downgrade, you can do so by running pip install mercurial==4.5.3.
- [Ryan] MozillaBuild 3.2 released last week - DON’T AVOID 😀
- [felipe] Lightweight JSONSchemaValidator.jsm available for use
- [paolo] The browser-chrome suite wasn’t reporting full async stacks for failures in some cases. Fix now in review.
- [paolo] CustomizableUITestUtils.jsm now exists. Consider gradually moving helper functions there so they’re usable across the tree. Arai just added helpers to add/remove the searchbar.
Friends of the Firefox team
Introductions
- :Prathiksha Guruprasad will be working on the PaymentRequest MVP during her internship.
- Jay Lim (:imjching) will be working on Activity Stream performance bugs for the Performance team
- Emily Hou will be working on the Firefox Send experiment on the Test Pilot team this summer.
- Shruti Singh will be working on the Firefox Color experiment on the Test Pilot team this summer.
Resolved bugs (excluding employees)
- More than one bug fixed:
- Aditya Bharti [:adbugger]
- Issei Horie
- Oriol Brufau [:Oriol]
- Tim Nguyen :ntim
- New contributors (🌟 = First Patch!)
- Maxim Kupfer made it so that the Form Auto-fill doorhanger can send you to the right place in about:preferences via the “Spotlight” feature
- Vidit23 removed the unused “unread” attribute from tabs
- Jose Choy removed the console.log.bind pattern from Screenshots
Project Updates
Add-ons / Web Extensions
- Themes: ntim added default_locale support to theme manifests.
- Out of process: the URLbar gets focus in fullscreen, now that OOP is pref’d on in Mac by default (in 61).
- Tabs: mstriemer made it so we show a doorhanger the first time an extension hides a tab and fixed unhiding so that an audio tab now won't disappear the audio icon when the formerly-hid tab is unhid. Clear? Good.
- Oh, and the tab hiding API is now enabled (in 61, even). 🎉🎉🎉
- Performance: there was a performance issue in web extensions storage, fixed upstream in kinto 11.1.2 and fixed in 61.
- Langpacks: gandalf/zibi fixed a bug in langpacks version support.
- Security: jkt fixed bug in webextension experiments so that system add-ons are now correctly identified as privileged.
- Proxy: mixedpuppy fixed it so that proxy extensions can now start before requests bypass them.
- Random: last but not least, there was some cleanup and a regression fix from mixedpuppy, and three test fixes from jorgk, kmag, and one we’ll credit to aswan.
Activity Stream
- Activity Stream Router (snippets and onboarding notification replacement) has started to land various pieces
- Preparing to move strings from activity-stream-l10n to l10n-central
Browser Architecture
- A preference landed to allow opening the browser console as a top-level html document. Still some things to fix.
- Landed our first XBL -> custom element conversion. May be backed out :(
- Overlay code removal is ready to go
- RKV proof of concept for XULStore is almost complete
Lint
- ESLint has been enabled on testing/mochitest
- Node/npm minimum version requirement bumps have landed on autoland.
Fluent
- Continuous migration of Preferences .properties to Fluent
- nsIDocument patch in works by :mossop
- Expose Fluent in all UI
Performance
- Intent to Ship in 61
- Early blank first paint (Windows only - Linux held to early beta for feedback)
- UR is doing a sanity-check study on Beta to ensure this improves perceived start-up performance for our Windows users. elan is coordinating this.
- Tab warming (Windows and Linux)
- Early blank first paint (Windows only - Linux held to early beta for feedback)
- Gijs has made all exposed blocklist APIs async! 🎉
- Following up by switching us over to indexeddb to get away from the awful giant-XML-file parsing backend we have now (which is slow).
- The overflowing customizable toolbar no longer causes sync layout flushes! 😎
- dthayer got the ContentPrefService to init off of the main thread! 🥂
- Coming up next
- felipe is working on a framework to make it easier to load frame scripts lazily
- dthayer:
- is working on an LRU cache for tab layers to try to further improve tab switch performance
- is also working on reducing flicker when restoring a session with pinned tabs
- is looking to remove the old chromehangs thread that nobody seems to need anymore (because we have BHR instead)
- is starting to dig into a macOS graphics optimization that should improve performance sending things to the GPU
- Gijs is looking to improve the layout and rendering performance of the AwesomeBar
- mconley is kicking off a study to determine if lower fps tab throbbers can result in faster page loads for some users. Study is being reviewed this Wednesday.
Policy Engine
- No code updates. Getting marketing ready for launch. 👏
- Outreachy intern starting next week to work on new policies.
Privacy/Security
- We had a great work week in Berlin, lots of projects in planning and coming up.
- Christoph is continuing to explore different ways to make our front-end communication between chrome and content scripts more predictable, consistent and secure. We are now looking into using RemotePageManager instead of AboutCapabilities for this.
- Vinoth is working on applying CSPs to content privileged about: pages.
Address Bar & Search
- Improved autofill algorithm is about to land:
- It is no more based on the flaky “typed visit” concept, but rather uses a frecency threshold (more adaptive)
- Fills origins (included port) rather than just hosts
- Improved the Wikipedia search plugin icon
- Fixed One-Click search engine to properly use POST, when requested, the first time after each browser start.
Places
- Kit Cambridge fixed a case where old profiles could be missing dateAdded/lastModified of bookmarks (breaking some WebExtension API assumptions)
- Yury Khan is making browser.tabs.loadBookmarksInTabs reuse current tab if it is blank
- Bringing the Async History API project to completion:
- Removed the PlacesUtils.asyncHistory accessor (use PlacesUtils.history instead)
- [WIP] Removing history.hasHistoryEntries
- [WIP] Removing nsIBrowserHistory
- [WIP] Adjusting the arguments of history.removeByFilter
- [WIP] Fixing a patch contributed by :jakhem converting calls to nsIBrowserHistory
Sync / Firefox Accounts
- No updates this week. New shiny Sync in Rust for mobile coming soon, more to share in two weeks! 🦀
Test Pilot
- New experiments launching June 5th!
- Interns starting later this month!
- Screenshots product updates:
- Annotation tools coming soon: undo, redo, and text/emoji
- We’re thinking about what a mobile flow would feel like for Screenshots; PRD in flight. Ping jgruen with all your feature requests.
- Screenshots engineering:
- Bug fix release 32.1.0 landed recently (bug 1454029)
- A security fix regressed Screenshots working on PDF pages. This is being tracked for Firefox 60 in bug 1456485.
- We have a working Chrome add-on with a few substantial bugs. Work is continuing.
- We would like to take over the Ctrl + Shift + S keyboard shortcut from devtools. They will be investigating usage frequency of this and other shortcuts in bug 1456984.
Web Payments
- Team has completed 66% of the Milestone 1 - 3 Backlog.
- Planning telemetry requirements
- Code moved to browser/ and component moved to Firefox (from Toolkit)
- Can now add and edit shipping addresses from the PaymentRequest dialog
- Jared is working on adding/editing billing addresses
- Sam is working on support for one-time-use addresses
- Matt is working with UX on options for rich dropdown menus
This week I learned
- Easily track your own try pushes without having to find the push links with a pinned tab or bookmark: https://treeherder.mozilla.org/#/jobs?repo=try&author={commit_email@example.com}
- You can get here by clicking on your email address from TreeHerder when looking at a push of yours
- [johannh] Today I got reminded that Promise.all() rejects as soon as any of its promises rejects. This is a great gotcha to keep in mind when reviewing code.
- [mconley] Time travel JS debugging is still being worked on