Firefox/Meeting/26-Feb-2019
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 4 This week I learned
General Topics / Roundtable
- [meta] New instructions for posting screenshots!
- [meta] Now that we have These Weeks in Firefox, should we retire the wiki?
- [MattN] If they had the same content then I would say âyesâ but IIUC, some content isnât posted on the blog.
- [mconley] Correct - mostly internal stuff (e.g.: âHereâs a thing we can do with JSMs nowâ) end up going âbelow the foldâ, and donât get posted to the blog. I wager this bullet will also not be posted to the blog.
- Oh, so itâs still part of the emails, just not the blog?
- [mconley] Correct - mostly internal stuff (e.g.: âHereâs a thing we can do with JSMs nowâ) end up going âbelow the foldâ, and donât get posted to the blog. I wager this bullet will also not be posted to the blog.
- [MattN] If they had the same content then I would say âyesâ but IIUC, some content isnât posted on the blog.
Friends of the Firefox team
Introductions
- None
Resolved bugs (excluding employees)
Fixed more than one bug
- Hemakshi Sachdev [:hemakshis]
- Manish [:manishkk]
- Oriol Brufau [:Oriol]
- Rainier Go [:rfgo]
- Tim Nguyen :ntim
- Trishul
New contributors (đ = first patch)
- đ Adam Czyzewski updated a sync tooltip to make its purpose clearer
- đ Tony Ross [:antross] made one of our DevTools WebExtension APIs more consistent with Chromeâs implementation, making it easier to port add-ons over
The following new contributors switched us from hand-rolled promiseWaitForCondition methods to TestUtils.waitForCondition
- đ Carolina Jimenez Gomez for one of our WebRTC tests
- đ Neha for one of our browser UI tests
- chengy12, one of our MSU students, ported a bunch of printing-related strings to Fluent
- freychr3, another of our MSU students, ported the Page Info dialog to Fluent
- đ Ivan Yung made it so that about:policies shows a message when there are no active policies
- Martin Koroknay fixed a âFailed prop typeâ error in the DevTools Console
- đ l.khadka de-duplicated some code for about:telemetry
- đ msfr-develop fixed a bug where the DevTools inspector wouldnât scroll to an already-selected element when clicking on its closing tag.
- đ Maximilian SchĂźtte fixed a 12 year old SessionStore bug, where minimized windows wouldnât have their un-minimized sizemodes recorded!
Rainier Go [:rfgo]
- Fixed a bug where the DevTools Storage Inspector sometimes didnât show items after clearing local storage
- Added a tooltip for the âRefreshâ button in the DevTools Storage Inspector
- Removed some unneeded prefs
- đ Sonia fleshed out the DevTools contributor documentation with a paragraph on what to do if things go wrong with ./mach bootstrap.
Project Updates
Activity Stream
- Landed and uplifted MVP for experiments, Beta smoke test started Monday.
- Preparing to run 16 layout experiments in Release 66 cycle for better engagement, e.g., large Hero articles vs List of articles
- The team is helping Pocket engineers transition to increase ownership of new tab
CFR for Pinned Tabs will be our next recommendation experiment!
- First experiment recommends add-ons, e.g., Facebook Container, Google Translate
- Current experiment will suggest pinning tabs, e.g., Gmail, productivity / messaging sites
- Future experiments for new types of recommendations for features (that already exist but might be hard to discover) that increase user retention -- suggestions welcome!
Add-ons / Web Extensions
Work continues on long-term projects:
- Supporting migration of search engines to WebExtensions
- Handling extensions in private browsing windows
- Rewriting about:addons in HTML
- Rob fixed a bug in which optional permissions were not cleared when an extension was uninstalled.
- Luca got rid of a synchronous reflow in extension popups. đđđ
Applications
Screenshots
Latest server release is on stage environment for testing prior to release (Changelog)
- We have now exposed server shutdown strings to web localizers. In case anyone asks, Screenshots is not being removed from Firefox, just the ability to upload shots.
- This upcoming server release will include tools to help users download their saved shots
Lockbox
- [not for the blog, please] We hope to have our pre-alpha webextension ready for internal folks to test out soon. Iâll announce here when weâre ready for volunteers :-)
This past sprint continued the focus on foundational work:
- Our work is tracked as the âdesktopâ repository within the Lockbox waffle board
- We donât yet have any good-first-bugs filed, but swing by #lockbox if you want to contribute ^_^
Services (Firefox Accounts / Sync / Push)
Firefox Account discoverability
- Firefox Account is experimenting with putting an avatar next to the hamburger menu. It will give users visibility on their account, sync status as well as links to manage the account. Targeting landing & beta uplift this week. (Bug 1524665)
- 237x275px247x206px
- Screenshots
- Patch (Thanks vbudhram for working on this, and gijs, eoger, flod, ntim for reviews!)
New FxA device pairing flow landed in Nightly, but prefâd off for now. Youâll soon be able to sign in to FxA on Android and iOS by scanning a QR code, instead of typing your password!
- Check out this Lucidchart sketch to see the flow, or the design doc if youâre curious to learn more!
Browser Architecture
- No updates this week.
Developer Tools
Debugger
XHR breakpoint type (ANY, GET, PUT, POST, etc.) can be now specified through new UI. Done by a contributor: Jaril
- Log points UX has been improved (including syntax highlighting, context menu and markers) Done by a contributor: Bomsy & Florens
Log points are different from breakpoints - they donât break JS execution, they just create a log when hit.
Network
- Resizeable Columns - Our Outreachy #17 intern Lenka Pelechova is finishing support for resizeable Columns in the Network panel. Currently focusing on Performance (bug)
Layout Tools
- Our UX Designer Victoria Wang published survey for CSS Layout Debugging. You can help us build better CSS debugging tools (quick single-page survey)
It is now possible to copy all collected CSS changes done through DevTools UI. Thanks to Razvan Caliman.
Auto discovery of layout CSS properties (done by contributor: Micah Tigley). Hold shift and mouse over any defined property in the box-model widget (in the Layout sidebar) ==> this will highlight the corresponding CSS property in the rule-view.
Technical debt
Firefox 67 will soon display a removal notice (in the Options panel) about the Shader Editor, Canvas and Web Audio panels, which are going to be removed in 68. Work done by Yulia Startsev. Until the MDN page is up, you can look at the intent to unship post in the mailing list.
Remote Debugging
Showing backward compatibility warnings in about:debugging (bug)
Added a checkbox to enable local addon debugging (bug)
Open the Profiler for remote runtimes in about:debugging (bug)
Fission
- MattNâs work to lazy load FormAutofillContent and convert them to actors landed and resulted in a 2.19% base JS memory improvement \o/
M1 is on track, with just a couple of remaining bugs
- M1âs main focus is displaying (layout) content in out-of-process
Lint
- modules/, widget/ and dom/notification all now have ESLint enabled.
NodeJS
Password Manager
Started on our H1 Backlog that was made in cooperation with Lockbox. Focus areas are:
- Support Lockbox on Desktop (P1)
- Management view
- Firefox Integration Support
- Improve Discoverability of Saved Logins (P1)
- New management entry points
- Fix existing discoverability features
- Improve Reliability (P1)
- Prompt to save logins from fields inside <form> but not using a âsubmitâ event
- Reduced duplicate logins saved due to logins shared between related origins
- Reduced number of munged usernames/passwords saved (bug 1427624)
- Reduced number of prompts to save when a user isnât submitting a login/registration/change form
- Reduced number of times we autofill in fields expecting new passwords (e.g. registration)
- Improved detection of whether a field is a username or password field (P2)
- Support Lockbox on Desktop (P1)
Resolved bug highlights
- Selection of previously entered form history data broken in Nightly when Form Autofill is enabled
- Logins imported from Chrome (on Windows) have the wrong character encoding
- Clean up various issues with the OSCrypto_win.js code
- [Fission Extend ActorChild for formSubmitListener.js]
- LoginHelper.createLogger is watching and overwriting the same prefs multiple times
- Don't load FormAutofillContent and FormValidationChild until they're needed
- Add a "View Saved Logins" footer to the password manager autocomplete popup (off until the follow-up is resolved)
253x200px
Performance
- Firefox Front-end Performance Update #13 posted
dthayer
- Rounding out the end of WebRender document splitting work
- Reduced how much we paint when restoring sessions with pinned tabs (Backing out for session restore problems)
- Adding Telemetry for startup cache hits and misses
felipe
- New tab animations (still off by default) have surfaced at least one serious bug, but otherwise all quiet.
- Reminder: You can test this out by setting browser.tabs.newanimations to true
- UX has gotten back with some feedback, which will be addressed soon
- Working on making the Hidden Window lazier for a start-up win on Windows and Linux
- Improving ContentSearch performance, which sends data from the Search service to about:newtab in the content process
- New tab animations (still off by default) have surfaced at least one serious bug, but otherwise all quiet.
Gijs
- Latest browser adjustment patch was tested by vchinâs team, and found to actually slow perceived page load, since frames were painted later.
- We might have stumbled on an interesting way of saving battery power though
- vchinâs team is now testing the original patch, which lowered frame rate globally for low-end hardware
- Making newtab preloading occur on idle
- Latest browser adjustment patch was tested by vchinâs team, and found to actually slow perceived page load, since frames were painted later.
mconley
- Landed a new Talos test to measure time to initial about:home paint
- Filed a bug to make PageStyleChild lazier / inert for the about:home case
- Locally prototyped a patch to launch content process sooner, but no wins yet
Performance tools
- Perf-html.io moved to profiler.firefox.com and perf.html is now called âFirefox Profilerâ.
I/O markers are now visible in the timeline. I/O marker stacks are visible when hovering them, and in lots of cases the path of the file that was touched is shown.
- When capturing a profile, to have I/O markers, you need to check the âMain Thread IOâ checkbox in the Gecko profiler add-on, or enable the âmainthreadioâ feature using the MOZ_PROFILER_STARTUP_FEATURES environment variable when profiling startup.
- We are investigating optionally collecting markers for off-main thread I/O, and enabling main thread I/O markers by default.
338x368px
A FileIO marker with operation, source, filename and stack information
- We have markers for <script>s and privileged js files now.
602x152px
A Script marker with name information
602x135px
A script marker and other SubScript markers that it triggers
602x158px
A âNotifyObserversâ marker with âprofile-before-changeâ name
- We improved shutdown profiling: itâs now compatible with mainthreadio markers, and shows content process shutdowns. Hereâs a profile with startup + shutdown, on a fresh profile, with I/O markers: https://perfht.ml/2TCu6NU
Policy Engine
Legacy Browser Support requires other features
- chrome.storage.managed which requires
- Added Custom support menu in help menu
- Continued work on xpinstall whitelisting
Privacy/Security
- We have added support for blocking known fingerprinters and cryptominers with content blocking!
Still experimental, may break sites.
- Intermediate Preloading has landed and is coming to a Nightly near you soon!
- Tim Huang and Tom Ritter added letterboxing (an anti-fingerprinting technique) to Firefox
401x286px Note the gray margin in the content area
Weâre shipping the new certificate error pages including the new clock skew and AV MitM warnings in 66 release
- Still need to improve accuracy of the AV MitM warning
- Weâre putting web notifications behind secure context
- Bug 377496 - 'Authentication Required' dialogue being application modal produces a vector for attack was fixed
Search:
- switching built-in search engines to WebExtensions is undergoing some additional but necessary work
Quantum Bar:
- Tons of bugs fixed, list too long. QE starting.
- Almost all of the bugs blocking a Nightly experiment have been fixed.
- Features ported: one-off buttons, full keyboard navigation, telemetry, @ token aliases, DragânâDrop, IME.
- Being worked on yet: accessibility, smoothness, tests. See the release tracking bug for a complete list.
User Experience
- Itâs got its own section above, but the UX team is pretty excited about the Quantum Bar work, and the possible future directions it could take!
- Weâve also been doing some Picture in Picture prototyping and user testing. Results coming soon-ish.
This week I learned
[mkaply] Visual Studio Code imports our eslint configuration so linting errors show up in the editor.
- [johannh] Iâm using Syntastic for Vim and it works well, sort of automagically
- Most editors have plugins available even if it isn't automatically installed. See https://eslint.org/docs/user-guide/integrations for more info.
- đ¨đ˛đ
- [johannh] Ever wanted to have your own certificates in tests? This is how to do it.
- [johannh] Apparently we can replace Console.jsm usage with the console API. Example