Firefox/Meeting/5-Nov-2019
Today’s meeting leader is: MattN
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 3.1 Accessibility
- 3.2 Add-ons / Web Extensions
- 3.3 Applications
- 3.4 Firefox Accounts
- 3.5 Sync and Storage
- 3.6 Push
- 3.7 Browser Architecture
- 3.8 Developer Tools
- 3.9 Fission
- 3.10 Lint
- 3.11 New Tab Page
- 3.12 Password Manager
- 3.13 Performance
- 3.14 Performance Tools
- 3.15 Picture-in-Picture
- 3.16 Privacy/Security
- 3.17 Search and Navigation
- 3.18 User Journey
- 3.19 This week I learned
General Topics / Roundtable
[mconley] Are you in one of the Mozilla offices? sccache distributed builds might be something you want to look at!
Run more of your build in parallel using the free cycles of build machines sitting in the office
In theory, this should work for Windows too
Also in theory, one might be able to set up a build cluster at a home office
Documentation, and helpful people like chmanchester in #sccache
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Fixed more than one bug
- Alex Vincent [:WeirdAl]
- Ben Campbell
- Christoph Walcher
- Chujun Lu
- Florens Verschelde :fvsch
- Itiel
- jaril
- Mustafa
- Tim Nguyen :ntim
New contributors (🌟 = first patch)
- 🌟 Alex J Garcia updated the DevTools Network Monitor so that the left and right cursor keys no longer change the request selection
- 🌟 bayyatej.dev, one of our MSU capstone students, updated our Picture-in-Picture code to use JSWindowActors rather than the message manager
- Christoph Walcher got rid of some dead code in our arrowscrollbox custom element implementation, as well as the MozTextLabel custom element
- 🌟 James Jahns, one of our MSU capstone students, made the Page Style menu Fission-compatible
Mustafa fixed 3 bugs in the DevTools Network Monitor:
Fixed a scrolling glitch when the pane is short
Fixed a bug where sometimes the JSON section of the Messages tab is empty when inspecting WebSocket traffic
Made it so that formatted content in the WebSocket message viewer is prioritized over raw content
- 🌟 Thomas Kosmas cleaned out some unnecessary code from the autocomplete popup custom element binding
- Zhao Gang fixed a regression where pretty-printing some source code in the JavaScript Debugger wouldn’t show any user feedback until the processing was complete
Project Updates
Accessibility
- High Contrast Mode’s readability “backplate” no longer backplates items with visibility:hidden. This fixes some sites where a backplate was obscuring content.
- Zoom buttons (+/-) and full-screen button should be labelled in hamburger menu. This fix makes those buttons screen reader accessible.
- "Use keyboard navigation" in system preferences does not register with Firefox in OSX Catalina. This was broken on macOS 10.15 and is now fixed.
Add-ons / Web Extensions
- Shane landed the first bits of the changes to the webextensions CSP (Bug 1581611, Bug 1587939, Bug 1581609, content script CSP is currently behind the “extensions.content_script_csp.enabled” and “extensions.content_script_csp.report_only“ prefs), and fixed a bug related to the behavior of the "private browsing" checkbox included in the post install notification (Bug 1581852).
- Tomislav fixed AddonManagerWebAPI::IsAPIEnabled in Fission out-of-process iframes (Bug 1591736)
- Mark Striemer moved the about:addons page header, page options, search addons field and global warnings from XUL to HTML (Bug 1545346)
- Andrea Marchesini is moving secure-proxy experimental APIs into mozilla-central (Bug 1592687, Bug 1592932), and added the third-party state to the request details provided by the webRequest and proxy API events (Bug 1591900)
- Gijs made sure that Firefox reuses an existing about:preferences tab when the user is opening it from the about:addons page (Bug 1592600)
- Matt Woodrow fixed webRequest API regression (Bug 1590898, recently regressed by Bug 1583700)
- Graham extended the browserAction/pageAction onClicked API event to allow extensions to receive "middle-button" mouse clicks and extended the onClicked event details to also include mouse buttons and keyboard modifiers states (Bug 1405031). Thanks Graham for contributing this enhancement!!!
- Itiel fixed the alignment of the warnings/errors messages part of the about:addons extensions shortcuts view when the RTL mode is enabled (Bug 1575472). Thanks Itiel for contributing this fix!
- Trishul fixed a webRequest bug triggered by webRequest API events received for tabs that are already closed (Bug 1447807). Thanks Trishul for looking into it and contributing a fix!
Applications
Firefox Accounts
- No updates
Sync and Storage
- No updates
Push
- No updates
Browser Architecture
- No updates
Developer Tools
Fission PSA: “Omniscient” (ability inspect/debug multiple processes) Browser Toolbox will be enabled by default the coming days
As a follow up, the Browser Content Toolbox (debugs the content process of for the current tab) will be no longer needed and removed.
- Console’s multi-line editor mode now has shortcuts for importing and saving your snippets back files: Ctrl/Cmd-O and Ctrl/Cmd-S . Bringing in another Scratchpad flow based on user feedback.
Debugger’s new Watchpoints, which let you pause on object property get/set, are on by default in Nightly and will ride to DevEdition for more QA and user feedback
Network’s new Request Blocking lets you block requests based on matches patterns – it is now enabled by default on Nightly and DevEdition
📯 Please try it out and provide feedback
- Contributor Sorin Davidoi optimized the Debugger to use less resources when the tab is in the background.
- Browser Toolbox’s --jsdebugger for can now be overridden with another Firefox executable that will be used for the Browser Toolbox, so you can run DevTools in an optimized build: ./mach run --jsdebugger $NIGHTLY
Fission
- M4 came and went with 130 or so tests still not enabled. Teams will continue to fix tests while making the fission enabled browser stable enough for daily use, which is our M5 target.
- Classified front end work for M5
Some work already finished:
Meta tag handling
Favicon support
MSU student Teja Bayya ported picture in picture to JSWindowActors
Gijs fixed Web Channels
Lint
- Nothing to report this week
New Tab Page
- Getting Discovery Stream working for de. (right now it’s just en-US and en-CA)
- Turning personalization back on for sponsored content.
- Some minor UI and UX fixes and some experiments.
Password Manager
about:logins
Minor fixes
Web compatibility
eTLD+1/subdomain login suggestions
autocomplete support has been polished with one remaining bug being tracked
Starting on accompanying context menu UI
Login save/capture improvements (in progress)
Performance
- Team is focused on investigating the impact of Fission on responsiveness and is working on finishing two meta bugs that track what Talos tests need adjustments and investigate regressions when fission is enabled
- dthayer is working on making tabswitch fission compatible and modifying the tabswitch test.
- emalysz made sure that windows do not animate upon restoring a session and has a patch up for review that relies on a cached policy for sandbox construction, which should improve process launch times
- Gijs limited the number of times certain prefs are accessed when fission is enabled, ensured a remote browser does not read plugin data on the main thread
- mconley is investigating fission’s impact on talos tests, such as an improvement in session restore when fission is enabled and a regression on tabpaint
Performance Tools
- The profile metadata panel now shows the settings that were used to capture the profile.
- There’s a new Track IPC feature (off by default) that can be enabled from the profiler’s capture panel to track async IPC.
Example profile of the IPC happening when opening new tabs.
Picture-in-Picture
- Now enabled by default on macOS and Linux on Nightly! Please test it out, and file bugs against this meta for us to triage.
- Release plan has changed somewhat - we’re now sufficiently confident in the implementation to let the feature ship to Windows in Firefox 71 without slow rollout
MSU student Teja Bayya ported the message manager implementation of Picture-in-Picture to JSWindowActors. This is a crucial step in adding Fission compatibility.
Not fully Fission compatible yet though. Here’s the meta bug for that work.
gl landed a patch to add mute / unmute capability to the player window
This is currently preffed off behind media.videocontrols.picture-in-picture.audio-toggle.enabled while we test it
- mstriemer fixed an issue where some event listeners weren’t getting cleaned up automatically
- mstriemer has patches in progress to resize the player window if the originating video resizes
mconley made the toggle and context menu hidden for videos displaying MediaStreams
This is a stopgap until this bug is fixed
- mconley made always-on-top, resizing and aspect ratio locking work for macOS
Privacy/Security
Search:
Search configuration modernization (Firefox 72)
Search service fixes and cleanups
Address Bar:
Regression fixes:
Fixed performance problems when specially crafted strings were typed in the address bar
Disabling bookmarks but not history in address bar preferences, caused bookmarked pages to not be autofilled anymore, even if visited. Now only unvisited bookmarks are ignored.
Fixed annoying bug where copying from the urlbar was failing (slow loading pages or canceled downloads)
Visual redesign (aka “megabar”, Firefox 73)
Temporarily disabled in Nightly, we are working on a new revision of the design, additional feedback on the old revision was not useful. Will re-enable once we are closer to MVP.
New one-off buttons flex behavior for small windows
Removed some more legacy urlbar code, especially from autocomplete
Search Interventions experiment (Firefox 72)
Experimental add-on is being worked on.
Search Nudges experiment (Firefox 72)
Project revised to use the Search Interventions API.
User Journey
Launched a couple of “Relationship” CFRs in nightly and beta, riding the trains to release
Recommend Send Tab when viewing an article or a recipes website
What’s New feature made it to the release channel
- Investigating user-agent attribution focusing on “Chrome switchers” to show contextual onboarding, e.g., dynamic first-run cards
- Potentially expanding new-user onboarding cards to show for pre-Skyline profiles with remote messages to current release users
This week I learned
- [mconley] draw.io is a free, open-source web application that is useful for drawing diagrams. No account necessary to get a drawing going. Also easy to install as an application if you happen to run a NextCloud instance.