Firefox/Meeting/24-Oct-2017
Today’s meeting leader is: MattN
General Topics / Roundtable
- [MattN] Change in the way e10s and multi are enabled on Nightly
- [Mak] waitForCondition() has been moved to TestUtils.jsm. BrowserTestUtils.jsm contains a temporary forwarder, but please use TestUtils.waitForCondition() from now on (Commented in the existing cleanup bug about converting the existing consumers)
- [Georg] Firefox data preference changes
Friends of the Firefox team
(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)
Resolved bugs (excluding employees): https://mzl.la/2yIrr8z
More than one bug fixed:
- :prathiksha
- Ian Moody [:Kwan]
- Masatoshi Kimura [:emk]
- Sebastian Hengst [:aryx][:archaeopteryx]
New contributors (🌟 = First Patch!)
- 🌟Adam Morris cleaned up an unused probe for about:newtab
- 🌟anting004 added a tooltip to devices listed in Send Tab to Device to show the last sync time
- hardik tyagi [:hrdktg] fixed how we display download dates for certain locales
- 🌟Kevin Pellet (Ilphrin) made some Sync code more efficient by avoiding a linear look-up in an Array, and using a Set instead.
- Joshua Longhi got rid of the toolkit.telemetry.enabled preference checkbox in about:preferences
- 🌟 Leonel Jara reorganized some Places tests
- 🌟 Fernando refactored a chunk of our Telemetry code to do locking differently
- 🌟 nikshepsvn got rid of some obsolete functions that were only sticking around for legacy add-on compat
- Philippe Normand [:philn] fixed a non-Unified build problem
- 🌟 Simon Van Accoleyen removed the last vestiges of the SocialAPI
Project Updates
Add-ons
- webRequest.onBeforeRequest listeners can now receive ancestors URLs information.
- Tests will now fail if a browser.test.onMessage handler throws an error in tests.
- The downloads API now uses Firefox’s Save As preference as a default.
- Confirm/alert/prompt dialogs now work from options_ui with OOP enabled.
- history.search and history.getVisits now return hidden entries, such as redirects.
- tabs.create can now create tabs which open URLS in reader mode.
- It is now possible to create locked-down APIs that are only available to Mozilla-signed extensions.
- Extensions can now control the privacy.firstparty.isolate pref.
- Content Script sandboxes now have a sandboxName set on them.
Activity Stream
Shifted focus for Firefox 58 to measuring and addressing performance in particular perceived performance on startup
- Working with UR/UX/Performance on appropriate perceived performance measuring, reporting and visualizing
- Please read our plans for removing XBL.
- Richard has been thinking about syncing. ☜(゚ヮ゚☜)
Electrolysis (e10s)
- The e10s rollout system add-on has been removed as of Firefox 58, and the way we control how e10s is enabled or disabled in prefs will be (from 58 forward) the same across Nightly all the way to Release. Relevant mailing list post.
- OS PIDs were missing from tab tooltips, but this has recently been fixed.
- The menu items for opening e10s and non-e10s windows have been removed. If you desperately need to open a non-e10s window, pop open the Browser Console, and use: OpenBrowserWindow({remote: false})
- Resume support landed in the stub installer in 58.
- Installer assets were low DPI, now fixed in 57.
Everything else is unchanged since last meeting:
Landing CFI support for stackwalking (for 58, hopefully) ((then Fennec))
Update Agent (for 59)
Jumping into Chrome Migration work with onboarding (version TBD)
Policy engine & API (for 59, hopefully)
MVP
The gradual rollout of address autofill has started on Fx56 (1%)
Tuned compatible issues of the targeting websites
Improved heuristics algorithm about "cc-exp*" and "tel-national"
Polished UI
Credit card number deduplication in progress
V2
Enable localization on mozilla-central - Almost done (one bug left)
Clear button in the autocomplete dropdown - Patch ready
Section (multiple forms in one page) support - Discussed architecture
Additional country support - Discussed architecture
Lint
- Now enabled on xpcom/ and ipc/, with chrome/ coming soon
- Trying to use getService for a service that’s in Services.jsm will now throw a lint error for browser/components. More coverage coming soon.
- ESLint now defaults to ignoring all /crashtest/** directories
Photon
Performance
Tab warming patches are up for review. This will land disabled to stabilize, and a follow-up bug will be filed to enable warming.
Once this is enabled, mconley will start filing bugs for more places where it makes sense to warm tabs (eg. selecting Switch To Tab from the AwesomeBar)
- Weighing / reviewing a patch from jaws that will switch to APNG tab throbbers in the event that the system is under very heavy load.
Working on a patch to fix a tab scrolling velocity regression
This will likely introduce a new “scrollend” chrome-only event, which we might find handy in other places as well. Follow the bug for details.
- Please read Naveed’s e-mail about performance bugs! We’re really just getting started with performance work, so strap in.
Structure
- Overflow panel layout fixes in Customize Mode and when dealing with flexible spaces.
- The Panels have received love, notably WebExtension panels and the Forget button panel look better. Also scroll state fixes happened.
- The sidebar button state is now persisted between different windows properly.
- ‘Send to Device’ page action has an updated icon.
Animation
- Got a spec from UX for adding an animation to our panel-multi-views to hopefully make it more obvious that users need to click on an item to see a subview (not hover)
- Working with UX to come up with a workable design for animating the sidebar opening/closing
Visuals
- Nihanth optimized bookmark and history sidebar spacing for touch mode.
- Stephen Pohl fixed the tab strip choppiness when going into fullscreen mode on OSX.
- Johann updated the accent color of the Web Browser Renaissance theme.
- Mostly fixing a lot of polish bugs.
Onboarding
Preferences
Platform Audibles
- Retained display lists landed very recently, preffed off behind layout.display-list.retain. Here’s that mailing list post about it again, just in case you forgot.
Privacy/Security
- Prathiksha moved the pop-up blocked icon/menu from the urlbar to the identity block/identity pop-up (the notification bar for blocked popups is still there).
- We fixed a nasty bug that caused all containers to be removed when upgrading a container extension in Beta.
Address Bar & Search
Address Bar results are now constrained to the input field width to look more balanced
The results mixture (showing Search Suggestions first) has been reverted for now. We’ll proceed differently, experimenting at first with new profiles who get a unified Address Bar experience by default
The follow-on search add-on was updated to 0.9.6 for FF 56 users
Places
Hi-res Favicons project is considered complete, from now on bugs will be tracked as single issues
- Favicons in Places views now use the best icon size available and do better picks from the db
- Old favicon tables and indices have been removed
- The mysterious case of favicons intermittently not being shown on tabs was due to a bug in Network Tailing
Bookmarks HTML import/export code has been converted to the Async Bookmarks API
Async Places Transactions got a green light from QE to be released in Firefox 58
- Some minor regressions have been fixed
- Some perf improvement (still working on perf)
Fixed a case where on schema migration places.sqlite could be marked as corrupt when it’s not
More
Properly fixed idle-daily so that it doesn’t run during mochitests.
Fixed a Mac specific bug with “View Full Screen” being shown twice in the view menu for the Library window (and other windows).
Sync / Firefox Accounts
- Bookmark validation and repair are moving to a system add-on.
- The device list in Synced Tabs and Send Tab now match the FxA devices view.
- The buttons in the Synced Tabs view now match the Photon style guide, and we no longer show duplicate separators in the context menu for image links.
- Saved passwords with dubious timestamps no longer cause syncs to fail on Android.
- Landed Places maintenance tasks to fix up bookmarks with missing and invalid GUIDs, missing dates, invalid Place GUIDs, and clean up tombstones for undeleted bookmarks.
Lockbox (password mgmt) experiment targeting Q4
More on lockbox: product slides, development info on github
More experiments coming in Q1: tab split, voice assistant, theming
Experiment pipeline in trello: https://trello.com/b/0kxTOKPU/test-pilot-experiment-status
- Send us your feature ideas! You can use the web form or just drop by #testpilot
Screenshots
The story so far:
- Page Shot got lots of usage + interest in Test Pilot
- Work to graduate into Firefox started in 54 timeframe
- First WebExtension system addon
- Shipped to release in 56 (rollout Sept 28)
Since release:
- 11 million shots, 5 million unique users
- Downloads slightly outpacing uploads:
- ** *** 456x155px
- SHIELD worked well for rollout:
- ** *** 440x216px
(Check out our metrics and retention data on Data Studio)
What’s next?
- Q4: Build more features (Firefox Accounts, annotations) to ship in 58; run A/B tests on the site; perf optimization; user surveys; figure out how best to interact with the rest of Firefox
Open questions:
- What’s a good user retention percentage?
- Do Screenshots users have higher MAU/DAU?
How best to manage Github vs Bugzilla for bugs, reviews, code?
Every system addon does this differently right now
Interested in this? Let us know on #screenshots
- Evaluating UI tools/frameworks (e.g. Custom Elements, React, Redux, hyperHTML) for the frontend
This week I learned
[kitcambridge] I was curious how xpcshell shows JavaScript strict warnings without setting the “javascript.options.strict” pref. This line turns them on.
These warnings are stricter than “use strict”. For example, xpcshell will warn if you access an undefined property, but “use strict” won’t warn or throw in that case.