Firefox/Meeting/21-May-2019
Today’s meeting leader is: mconley
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 3.1 Activity Stream
- 3.2 Add-ons / Web Extensions
- 3.3 Applications
- 3.4 Screenshots
- 3.5 Lockwise
- 3.6 Firefox Accounts
- 3.7 Sync and Storage
- 3.8 Push
- 3.9 Browser Architecture
- 3.10 Developer Tools
- 3.11 Layout Tools
- 3.12 Console
- 3.13 Debugger
- 3.14 Remote Debugging
- 3.15 Fission
- 3.16 Lint
- 3.17 Password Manager
- 3.18 Performance
- 3.19 Performance tools
- 3.20 Picture-in-Picture
- 3.21 Policy Engine
- 3.22 Privacy/Security
- 3.23 Search and Navigation
- 3.24 User Experience
- 4 This week I learned
General Topics / Roundtable
None
Friends of the Firefox team
Introductions/Shout-Outs
New interns!
Mandy Cheang (@mcheang, mandy__)
- Working on improving start-up performance
Abdoulaye Ly (@Abdoulaye O. Ly, abdoulaye)
- Working on Fission
Resolved bugs (excluding employees)
Fixed more than one bug
- Florens Verschelde :fvsch
- Ian Moody [:Kwan]
- jaril
- Kestrel
- Monika Maheshwari [:MonikaMaheshwari]
- Tim Nguyen :ntim
New contributors (🌟 = first patch)
- Miriam made our column breakpoint UI less ambiguous
- Christoph Walcher made it so that network requests can be re-sent via the context menu in the Web Console
- Chujun Lu made it so that double-clicking on a logpoint entry in the side panel of the Debugger allows for quick editing
- clement.allain made it so that about:telemetry shows you the data collected from all process types by default! Here’s a mailing list post about that.
- jaril fixed some cases where the Debugger variable preview panel wouldn’t appear at all
- matthewacha moved some context menu tests into their own folder, cleaning up the junk-drawer that is the “general” test directory
- 🌟 Megan Bailey made some of our Responsive Design Mode UI more readable
- Mrigank Krishan fixed a bug where sometimes the Request URL in the Network Monitor wouldn’t show the entire URL
- Myeongjun Go fixed a bug where a the WebExtension Cookie API would throw if attempting to set a cookie on an IP address rather than a domain name.
- Derek updated some of the maximum pane sizes in the Debugger
Project Updates
Activity Stream
The new Pocket Newtab is on track for 68 with performance parity
Slight regression with our usage of -webkit-line-clamp (thanks heycam for platform implementation!) and fixing with requestAnimationFrame (thanks performance best practices doc)
We’ve made some progress on migrating our build process into Firefox / making it easier to develop on Activity Stream features
Documentation in regular source tree docs!
Ongoing work in this meta bug
- Introducing our new intern: Emily (:emcminn)!
Add-ons / Web Extensions
- Integrated add-on abuse reporting is in FF68
- Discopane is now part of about:addons (rather than served from AMO), also in FF68
- ….and with those, about:addons is (mostly) in HTML in FF68
- ... and it supports dark theme
- ... and the detail view of an extension shows release notes in a tab
- ... and a tab that shows the extension’s permissions (and a link to learn what they mean on SUMO)
- As part of the deprecation, we’ve replaced proxy.register in docs with proxy.onRequest
- Fixed a bug in proxy.onRequest where it was only matching http/https
- Exposed captive portal status
- Fixed a bug wherein when chrome_settings_overrides are added to an extension via an upgrade, the extension would ... stop working (+67)
- Fix to send allow enabling of extensions at startup (when something is, say, disabled and expecting startup)
Applications
Screenshots
- No updates this week.
Lockwise
Work on the Lockwise addon is complete
Final release waiting on localizers to translate strings
- Future Lockwise work will happen in tree as part of Password Manager
- Removing this Lockwise item after this meeting
Firefox Accounts
Sync and Storage
Push
Browser Architecture
Developer Tools
Layout Tools
- Inactive CSS landed! It's currently only ON by default in nightly (since 68) but will ship to everyone with Firefox 69. Bug 1306054.
We will be adding a larger collection of warnings very soon too, to warn users about more tricky CSS cases.
462x192px
(link: https://pbs.twimg.com/media/D6XaDGBXoAAjCSi.jpg:large, alt: tooltip shown on css properties that have no effect on the current element in the inspector. This one shows a justify-content property on a non-flex element).
- Expandable CSS warnings also landed (shipping with 68).
This allows jumping directly from a CSS warning displayed in the console to a node in the inspector when the warning occurred inside a CSS rule. Bug 1093953.
548x54px
(link: https://pbs.twimg.com/media/D6njCxKW0AAKMrY.jpg:large, alt: CSS warnings in the web console, with one of them being expanded, and revealing a list of DOM nodes that the warning applies to).
- CSS Grid level 2 (subgrid) is close to shipping in Firefox. We're getting the tooling for it ready in Firefox 69 so it's easy to see the relationship between a grid and a subgrid.
- We're continuing to prototype on WebCompat awareness tools. Our latest prototype is an addon that displays CSS compatibility information about a page from the Firefox toolbar. It now allows to jump from a warning into the Style Editor, and to open other browsers where issues occur. GitHub repo for the addon
(link: https://snag.gy/cZzjSn.jpg, alt: GIF demonstrating the doorhanger menu added by this extension, which contains the list of CSS compat problems detected on the page).
- We're also focusing on fixing the last few remaining issues preventing to support the <meta viewport> tag in RDM, and therefore simulate mobile devices better.
- The color-picker just got a bit of a re-design. Bug 1478152. Thanks Maliha Islam [:maliha] for pushing this over the edge.
(link: https://bug1478152.bmoattachments.org/attachment.cgi?id=9066397, alt: The new color-picker in the inspector panel).
Console
- We now have borders between messages to make them easier to read. Bug 1519904. Thanks Florens Verschelde :fvsch for your keen eye for details.
(link: https://pbs.twimg.com/media/D6lePqmWAAA9AbZ.jpg:large, alt: Screenshot of the console in firefox 68 with borders between each console log message).
- It is possible to resend network requests that were logged in the console. Bug 1530138. Thank you Christoph Walcher.
503x383px
(link: https://pbs.twimg.com/media/D6l5reIWkAAA8ws.jpg, alt: screenshot of the context menu in the web console, showing the new "resend request" feature for network requests).
Debugger
- Column breakpoints are stable now and we’re super happy with it.
- Event breakpoints making good progress. The UI is ready and we'll be landing the feature very soon. Bug 1526082.
(link: https://snag.gy/Viuv8h.jpg, alt: a preview of the soon to come event breakpoints panel in the debugger, allowing you to set breakpoints on all event types).
- Workers are now displayed in the source tree along all the other sources.
(link: https://snag.gy/Irq0AO.jpg, alt: the source tree in the debugger, now showing all workers, alongside normal sources).
- The new logpoint feature is now even better with dedicated icons in the web console.
(link: https://snag.gy/esnXN8.jpg, alt: the new "add log" menu item in the debugger context menu, allowing you to log an expression when a certain line of code is executed).
Remote Debugging
The new about:debugging page will ride the trains with Firefox 69. A final QA testing phase will happen in beta 69 in a few weeks. The main implementation phase is over and the final few fixes have happened:
Stay on the same page when reloading about:debugging (reconnects to remote runtimes automatically) (bug)
Remember last temporary addon install directory (bug)
Disable temporary addon installation if xpinstall.enabled is false (bug)
Updated error message colors and borders
New "Remote Debugging" menu item in the Web Developer menu
Update for Fenix/Firefox Preview (name, icon and version) (bug)
454x118px
Fission
- Abdoulaye has an initial version of the <select> dropdown working with Fission
- Neil has a version of drag and drop working with Fission! \o/
- mconley has a patch that makes PermitUnload work with Fission, but is blocked on some DOM work
- mconley is starting efforts to make the context menu work with Fission
Lint
- Have been investigating ESLint 6 and various issues
Password Manager
Work on the new login manager UI is progressing well
To see it go to about:config and set signon.management.page.enabled=true
Then load about:logins (will need to set the pref before loading the page)
In progress are:
- Re-auth master password with notification bar
- Creating new logins
- Initial support for modal prompts
- Sorting the logins
- New pref (signon.showAutoCompleteOrigins) to show login origins in autocomplete has landed. This will be enabled after subdomain autocomplete support lands.
Initial password generation code has landed
WIP UI that only works on autocomplete=”new-password” fields
- This is very early in the project so there is no additional attempt to save the generated password.
- www.facebook.com is a good test page.
Enable both prefs to test the feature:
- `signon.generation.enabled` is the user pref to enable/disable the feature from about:preferences (UI not implemented yet).
- `signon.generation.available` controls whether the feature is available for users (e.g. if the about:preferences UI should show in the future).
- Telemetry to keep track of which entry point is used to open Saved Logins
- Chrome passwords with a NULL `action_uri` aren't imported
Performance
Startup main thread I/O test has landed.
It is disabled on debug builds, on Windows Arm64, on beta(including devedition) and release.
When this test fails, it uploads a profile of what happened as an artifact of the test job.
userChrome / userContent
mconley landed this bug in preparation for Mandy’s first project (to disable loading userChrome.css / userContent.css by default)
Doug is looking into optimizing omni.ja compression with lz4
LZ4 startupCache numbers looking quite good (session restore and startup_about_home_paint - I think the others are just other things)
LZ4 omni.ja numbers are fairly *meh* on talos - still trying to work out the systemic (build-based) noise on local reference hardware.
- Doug is also figuring out if we can improve ordering within ordering within libxul to load it more efficiently
- [mconley] Is removing stat calls in the startup cache code: https://bugzilla.mozilla.org/show_bug.cgi?id=1544037
- [gijs] removed useless chrome.manifest reads in https://bugzilla.mozilla.org/show_bug.cgi?id=1543761
Performance tools
- Properly updating the URL state after publishing now.
- Improved algorithm to find idle threads at load time.
- Firefox Profiler now supports SimplePerf output format.
- Added more relevant information to window title to improve the searchability of tabs. Thanks to our GSoC student Raj!602x74px
Title of Firefox Profiler tab
- Transforms are usable inside stack chart via context menu now.
New context menu inside stack chart tab
Picture-in-Picture
- Dave Justice is about to get a patch landed that decorates the tab that a Picture-in-Picture video is coming from
- Keyboard access and RTL support for Picture-in-Picture is still underway
- The tentative plan is to let this ship to Beta / Dev Edition and get feedback from our users and web developers
Policy Engine
- ExtensionSettings policy finally landed (bug 1522823)
- Added a number of preferences to the new Preferences policy (bug 1545539)
- Download related policies (bug 1546973)
- Activity Stream policies (bug 1548080)
Legacy Browser Support
EXE built
Able to test extension
Working on IE BHO
- Investigating multiple intermittents on policy that have been around a while (Any advice?)
Privacy/Security
- Nihanth landed initial code for protections panel, content will land in the coming weeks
- Erica working on about:protections for the Protection Report - fighting some tests, should land soon
- Johann working on restricting back/forward UI to pages with user interaction 🎉
- Service workers will now be deleted by “Forget About This Site”
- There’s now a message shown in the identity popup when the site is verified by an imported root certificate
Search:
- Working on a few regressions found while improving test coverage
Quantum Bar:
- Bugs and cleanup work
- Active in Beta, no critical regressions reported so far
- Nightly XUL/Html experiment didn’t show any fallbacks
- Adding core support for the WebExtension APIs that will be driving our future experiments
User Experience
This week I learned
- [jaws] `composed: true` with shadow DOM
- [jaws] script type=module can now be used from privileged about pages
- [MattN] `./mach mozregression` exists, no need to `pip install` yourself
[MattN] How to check from the parent which principal a subframe has loaded in a Fission-compatible way
Content: Get `docShell.browsingContext.id` from the subframe and send that along with your message to the parent
Parent: `BrowsingContext.get(msg.data.browsingContextId).currentWindowGlobal.documentPrincipal`